SoarQubeMyBatis插件
MyBatisSoarQubePlugi:自定义规则用于检查MyBatisMapperXML文件中的风险SQL。
什么是风险SQL?风险SQL是指在mybatismapper文件中,有一些动态SQL,例如 <iftest=""></if> 元素,如果MapperXML中的SQL语句中的所有参数为ull,那么SQL会有比较大的风险。
示例如下:
DELETEFROMtable_ameWHERE1=1<iftest="startTime!=ull">ANDstart_time<![CDATA[=]]>#{startTime}</if><iftest="edTime!=ull">ANDed_time<![CDATA[=]]>#{edTime}</if>MyBatis规则有7个内置的规则,select语句有3个规则,update以及delete语句分别有2个规则。
如何安装?在SoarQube中安装插件有两种选择:
应用市场(Marketplace)-自动从SoarQubeUI安装插件。手动安装-如果您的SoarQube实例无法访问互联网,请将使用此方法。应用市场(Marketplace)如果您能够访问互联网,并且您的用户具有全局权限“管理系统”的权限,则可以访问"配置>应用市场"。
通过搜索 mybatis 找到该插件点击安装然后等待下载完成下载完成后,将使用“重启”按钮重新启动SoarQube实例。
手动安装该插件可以从 githubrelease 下载。
将下载的jar放到 $SONARQUBE_HOME/extesios/plugis 目录,并移除该插件的旧版本。
一旦完成,您将需要重新启动SoarQube服务器。
如何使用?使用mave构建命令的示例如下:
mvcleacompile-U-Dmave.test.skip=true-Dmave.javadoc.skip=truesoar:soar-Dsoar.host.url=https://127.0.0.1:9000/-Dsoar.projectKey=demo-Dsoar.projectName=demo-Dsoar.sourceEcodig=UTF-8-Dsoar.sources=.-Dsoar.iclusios=src/mai/**-Dsoar.exclusios==src/mai/webapp/**要想分析mybatismapper文件, src/mai/resources 目录必须在 soar.sources 中。
支持全局StmtID排除列表对于一些特殊语句的问题,要想忽略它们,可以将附带amespace的statemetid放入全局stmtid排除列表。
跳过MyBatis扫描如果有时候想要跳过MyBatis扫描,你可以修改全局属性 soar.mybatis.skip 为 true 或者在命令行中添加参数:-Dsoar.mybatis.skip=true 。
贡献可以在 https://github.com/dohui/soar-mybatis/issues 提交bug和新功能请求。
或者可以提交pullrequests用于修复bug或提交新功能,欢迎任何形式的贡献。









评论