Fortify SCA使用maven插件排除多个目录/文件

时间:2015-09-16 18:51:50

标签: fortify

对于看似重复的问题感到抱歉,但其他Fortify解决方案似乎不适合我的情况。我正在通过maven sca插件进行扫描/上传

<plugin>
   <groupId>com.fortify.ps.maven.plugin</groupId>
   <artifactId>sca-maven-plugin</artifactId>
   <version>4.20</version><!--$NO-MVN-MAN-VER$-->
       <configuration>
          <projectName>sample</projectName>
          <projectVersion>${appVersion}</projectVersion>
          <exclude>**/*.(LOCAL|INT).*</exclude>
       </configuration>
</plugin>

并且有效

这会排除扫描所有LOCAL和INT(集成测试)属性文件。此外,我还希望将已存档的xsds排除在扫描之外:

<exclude>**/(*.(LOCAL|INT).*)|(xsd/archive/*)</exclude>

但这不起作用。事实上,甚至找不到原始的工作模式。有任何想法吗?

4 个答案:

答案 0 :(得分:1)

我将分享我的解决方案,尽管需要您访问HP fortify安装的一些工作:

我已经厌倦了整整一天这样做,所以我做了唯一明智的事情并重新写了一部分强化maven插件!我喜欢分隔符;所以我更改了TranslateMojo.java文件夹下的mavin-plugin文件,如下所示,然后重新部署了fortify插件:

OLD Line:

addOptionValuePair("-exclude", exclude);

NEW Line:

if(exclude != null && exclude.length() > 0){
   String[] excludeList = exclude.split(";");
   for(int i = 0; i < excludeList.length; i++){
      addOptionValuePair("-exclude", excludeList[i].trim());
   }
}

现在我的项目.pomsca-maven-plugin定义:

<plugin>
  <groupId>com.fortify.ps.maven.plugin</groupId>
  <artifactId>sca-maven-plugin</artifactId>
  <version>4.20</version>
     <configuration>
      <projectName>sample</projectName>
      <projectVersion>${appVersion}</projectVersion>
      <exclude>**/*.(LOCAL|INT).*;**/xsd/archive/*</exclude>
   </configuration>
</plugin>

Maven生成并用作翻译步骤的sca-translate-war.txt文件现在为每个提供的模式都有一个-exclude:

"-exclude" "**/*.(LOCAL|INT).*" "-exclude" "**/xsd/archive/*"

这对我有用,希望可以节省几个小时的挣扎。

答案 1 :(得分:0)

如果您查看SCA用户指南的Appendix F: Maven Integration部分,在Excluding Files from the Scan标题下,它会向您显示如何排除文件。它告诉您为属性使用单独的文件并设置com.fortify.sca.exclude。我会尝试使用分号来分隔您的两种排除模式。

答案 2 :(得分:0)

对于无法获得多个排除功能并考虑修补插件的任何人,请先检查您是否使用了正确的分隔符。它必须是Windows上的分号或Linux上的冒号。

答案 3 :(得分:0)

实际上,您可以通过这种方式破解源代码,而不是调整源代码:

<plugin>
  <groupId>com.fortify.ps.maven.plugin</groupId>
  <artifactId>sca-maven-plugin</artifactId>
  <version>4.20</version>
     <configuration>
      <projectName>sample</projectName>
      <projectVersion>${appVersion}</projectVersion>
      <exclude>**/*.(LOCAL|INT).*" -exclude "**/xsd/archive/*</exclude>
   </configuration>
</plugin>

请注意“ - exclude”里面的排除标记! ;)