2015-10-22 4 views
3

Я запускаю проверку фортификации некоторых компонентов Java. Ниже приведены общие шаги, а затем: Для Java проекта:Укреплять плагин для градиента

  • МВН com.fortify.ps.maven.plugin: SCA-Maven-плагин: 4,30: чистый
  • МВН установить -DskipTests -DSTABILITY_ID = 1 - DRELEASE_NUMBER = 0 -DBUID_ID = 1
  • mvn -Dfortify.sca.debug = true -Dfortify.sca.Xmx = 1800M -Dfortify.sca.Xss = 5M -DSTABILITY_ID = 2 -DRELEASE_NUMBER = 2 пакет com.fortify.ps. maven.plugin: sca-maven-plugin: 4.30: translate
  • sourceanalyzer -b build_id -Xmx1800M -Xss4M -scan -f build_id_results.fpr -logfile scan.log -clobber-log -debug-verbose

После этого файлы fpr генерируются и загружаются на сервер.

Теперь я должен сделать то же самое для компонента, используя град. Какие команды я буду использовать для генерации файлов fpr.

ответ

1

Мне нужно удалить двуличие, немного улучшить и, возможно, создать плагин, но в основном попробуйте следующий фрагмент.

/* 
* Performs the Fortify security scan. 
* 
* 1) Runs source code translation. 
* 2) Creates the export session file. 
* 3) Submits the export session file for processing through the scp. 
* 
* Credentials and url for the scp are obtained from the gradle.properties file 
* (or can be passed from the command line through the -P switch). 
* <ul> 
*  <li>fortifyUploadUsername</li> 
*  <li>fortifyUploadPassword</li> 
*  <li>fortifyUploadUrl</li> 
* </ul> 
*/ 
task fortify(group: 'fortify', description: 'Security analysis by HP Fortify') << { 

    def fortifyBuildId = 'myProjectId' 

    logger.debug "Running command: sourceanalyzer -b $fortifyBuildId -clean" 
    exec { 
     commandLine 'sourceanalyzer', '-b', fortifyBuildId, '-clean' 
    } 

    def classpath = configurations.runtime.asPath 
    logger.debug "Running command: sourceanalyzer -b ${fortifyBuildId} -source ${sourceCompatibility} -cp $classpath src/**/*.java" 

    exec { 
     commandLine 'sourceanalyzer', '-b', fortifyBuildId, '-source', sourceCompatibility, '-cp', classpath, 'src/**/*.java' 
    } 

    def fortifyBuildFolder = 'build/fortify' 
    new File(fortifyBuildFolder).mkdirs() 
    def fortifyArtifactFileName = "[email protected]${project.version}.mbs" 
    def fortifyArtifact = "$fortifyBuildFolder/$fortifyArtifactFileName" 

    logger.debug "Running command: sourceanalyzer -b ${fortifyBuildId} -build-label ${project.version} -export-build-session $fortifyArtifact" 

    exec { 
     commandLine 'sourceanalyzer', '-b', fortifyBuildId, '-build-label', project.version, '-export-build-session', "$fortifyArtifact" 
    } 

    logger.debug "Running command: sshpass -p <password> scp $fortifyArtifact <user>@$fortifyUploadUrl:$fortifyArtifactFileName" 

    exec { 
     commandLine 'sshpass', '-p', fortifyUploadPassword, 'scp', "$fortifyArtifact", "[email protected]$fortifyUploadUrl:$fortifyArtifactFileName" 
    } 

} 
Смежные вопросы