2015-01-29 5 views
0

У меня проблема с запуском сканирования с исключением файлов xsd в fortify SCA. Я использую maven (with fortify plugin) + jenkins. Мой pom.xml используется Дженкинс:Fortify + maven exclude xsd files

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>pl.bluecode</groupId> 
<artifactId>bc</artifactId> 
<version>1.0</version> 
<packaging>pom</packaging> 
<properties> 

</properties> 
<scm> 
    <connection>scm:svn:https://subversion......</connection> 
    <developerConnection>scm:svn:https://subversion.....</developerConnection> 
    <tag>HEAD</tag> 
    <url>https://subversion......</url> 
</scm> 
<profiles> 
    <profile> 
     <id>common</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
      <property> 
       <name>!skipCommonProfile</name> 
      </property> 
     </activation> 
     <modules> 
      <module>Project1</module> 
      <module>Project2</module> 
     </modules> 
    </profile> 
    <profile> 
     <id>profile1</id> 
     <modules> 
      <module>Project3</module> 
      <module>Project4</module> 
     </modules> 
    </profile> 
</profiles> 

<build> 
    <sourceDirectory>${basedir}/src</sourceDirectory> 
    <finalName>${project.artifactId}</finalName> 
    <resources> 
     <resource> 
      <directory>${basedir}/src</directory> 
      <includes> 
       <include>**/*.properties</include> 
      </includes> 
     </resource> 
     <resource> 
      <directory>${basedir}/src</directory> 
     </resource> 
    </resources> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>com.fortify.ps.maven.plugin</groupId> 
       <artifactId>maven-sca-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <source>1.5</source> 
        <failOnSCAError>true</failOnSCAError> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

цели Мои Дженкинс Maven выглядит следующим образом: 1 гол: com.fortify.ps.maven.plugin: Maven-плагин-Sca: 2.6: чистый -Pprofile1

второй гол: com.fortify.ps.maven.plugin: Maven-SCA-плагин: 2,6: перевести -Pprofile1

третья цель: com.fortify.ps.maven.plugin: MAVE n-sca-plugin: 2.6: scan -Pprofile1

К сожалению, я не могу прикрепить изображение.

Надстройка работает как ожидалось до сих пор.
Теперь я хотел бы исключить все файлы XSD из сканирования.

Как это сделать? Я пытался добавить -exclude запись ".xsd" в целях Maven: com.fortify.ps.maven.plugin: Maven-SCA-плагин: 2.6: сканирование -Pprofile -exclude " .xsd"

но это не сработает.

Если кто-то может нам помочь, я был бы благодарен.

Спасибо.

ответ

1

Теория Fortify Maven поддерживает исключение файлов, но не всегда работает так, как ожидалось.

Теперь, как говорится, вы не вызывая исключение правильно. Где вы построили плагин Fortify Maven, найдите документацию для цели translate, например. для меня: /Samples/advanced/maven-plugin/target/site/translate-mojo.html#exclude.

Здесь вы можете найти правильный способ вызвать исключение. В командной строке:

"-Dfortify.sca.exclude=*.xsd" 

или в POM (если настроить Fortify перевести работу там)

<exclude> 
*.xsd 
</exclude> 

Теперь вернемся к моей первой точки. Иногда исключить труднее, чем просто установить значение как расширение. Вам также может потребоваться указать каталог, поэтому, если вышеуказанное не работает, попробуйте также параметр Fortify special glob «**», что означает соответствие любого рекурсивного подкаталога. А именно:

"-Dfortify.sca.exclude=**/*.xsd" 

или

<exclude> 
**/*.xsd 
</exclude> 

Если ни один из вышеупомянутых работ, то обратитесь в службу технической поддержки подкрепиться.

Pro совет: вы также можете установить это значение в ядро ​​/ Config/fortify-sca.properties, где он будет влиять на каждый вызов sourceanalyzer в системе. Это включает вызовы через плагин maven.

+0

Несчастливо это решение не работает. Я попробовал com.fortify.ps.maven.plugin: maven-sca-plugin: 2.6: translate -Pprofile1 -Dfortify.sca.exclude = *. Xsd и com.fortify.ps.maven.plugin: maven-sca-plugin: 2.6: translate -Pprofile1 -Dfortify.sca.exclude = **/*. Xsd –

+0

Hi Dariusz, В зависимости от того, как вы запускаете эту команду, я считаю, что эти символы '*' будут интерпретироваться вашей оболочкой и сделать беспорядок ваших параметров. (Если файлы в вашем каталоге - 'a.txt, b.txt' и' c.txt', то '-Dfortify.sca.exclude = *. Xsd' становится' -Dfortify.sca.exclude = a.txt b. txt c.txt.xsd'. Ключом является обертывание параметров в двойных кавычках. Например, 'com.fortify.ps.maven.plugin: maven-sca-plugin: 2.6: translate -Pprofile1" -Dfortify .sca.exclude = **/*. xsd "' –

+0

Другим совершенно другим решением, которое вы можете попробовать, является удаление 'xsd' из строки' com.fortify.sca.DefaultFileTypes' в 'Core/config/fortify-sca. свойства. Если это работает, сообщите мне, и я полностью обновлю свой ответ. К сожалению, это исключение не является функциональностью, которая реализована последовательно. –