Skip to content

Commit bd1a8bd

Browse files
committed
Updated README.md
1 parent b57ee5d commit bd1a8bd

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed

README.md

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
# Fortify SSC Parser Plugin for OWASP Dependency Check
2+
3+
This Fortify SSC parser plugin allows for importing scan results from OWASP Dependency Check.
4+
5+
### Related Links
6+
7+
* **Branches**: https://github.com/fortify-ps/fortify-ssc-parser-owasp-dependency-check/branches
8+
Current development is usually done on latest snapshot branch, which may not be the default branch
9+
* **Automated builds**: https://travis-ci.com/fortify-ps/fortify-ssc-parser-owasp-dependency-check
10+
* **Binaries**: https://bintray.com/beta/#/fortify-ps/binaries/fortify-ssc-parser-owasp-dependency-check?tab=files
11+
Sort by `Updated` column to find latest
12+
* **Sample inputs**:
13+
* <src/test/resources/dependency-check-report-java.json>
14+
* <src/test/resources/dependency-check-report-php.json>
15+
* **OWASP Dependency Check resources**:
16+
* https://owasp.org/www-project-dependency-check/
17+
18+
19+
## Usage
20+
21+
The following sections describe how to install and use the plugin. For generic information
22+
about how to install and use SSC parser plugins, please see the Fortify SSC documentation.
23+
24+
### Plugin Install & Upgrade
25+
26+
* Obtain the plugin binary jar file
27+
* Either download from Bintray (see [Related Links](#related-links))
28+
* Or by building yourself (see [Information for plugin developers](#information-for-plugin-developers))
29+
* If you already have another version of the plugin installed, first uninstall the plugin by following the steps in [Plugin Uninstall](#plugin-uninstall)
30+
* In Fortify Software Security Center:
31+
* Navigate to Administration->Plugins->Parsers
32+
* Click the `NEW` button
33+
* Accept the warning
34+
* Upload the plugin jar file
35+
* Enable the plugin by clicking the `ENABLE` button
36+
37+
### Plugin Uninstall
38+
39+
* In Fortify Software Security Center:
40+
* Navigate to Administration->Plugins->Parsers
41+
* Select the parser plugin that you want to uninstall
42+
* Click the `DISABLE` button
43+
* Click the `REMOVE` button
44+
45+
### Obtain results
46+
47+
Please see the OWASP Dependency Check documentation for details on scanning applications and
48+
generating reports. Note that the SSC parser plugin requires the uploaded reports to be in JSON
49+
format.
50+
51+
### Upload results
52+
53+
SSC web interface (manual upload):
54+
55+
* Navigate to the Artifacts tab of your application version
56+
* Click the `UPLOAD` button
57+
* Click the `ADD FILES` button, and select the JSON file to upload
58+
* Enable the `3rd party results` check box
59+
* Select the `OWASP_DEPCHECK` type
60+
61+
SSC clients (FortifyClient, Maven plugin, ...):
62+
63+
* Generate a scan.info file containing a single line as follows:
64+
`engineType=OWASP_DEPCHECK`
65+
* Generate a zip file containing the following:
66+
* The scan.info file generated in the previous step
67+
* The JSON file containing scan results
68+
* Upload the zip file generated in the previous step to SSC
69+
* Using any SSC client, for example FortifyClient
70+
* Similar to how you would upload an FPR file
71+
72+
73+
74+
## Information for plugin developers
75+
76+
The following sections provide information that may be useful for developers of this
77+
parser plugin.
78+
79+
### IDE's
80+
81+
This project uses Lombok. In order to have your IDE compile this project without errors,
82+
you may need to add Lombok support to your IDE. Please see https://projectlombok.org/setup/overview
83+
for more information.
84+
85+
### Gradle
86+
87+
It is strongly recommended to build this project using the included Gradle Wrapper
88+
scripts; using other Gradle versions may result in build errors and other issues.
89+
90+
The Gradle build uses various helper scripts from https://github.com/fortify-ps/gradle-helpers;
91+
please refer to the documentation and comments in included scripts for more information.
92+
93+
### Commonly used commands
94+
95+
All commands listed below use Linux/bash notation; adjust accordingly if you
96+
are running on a different platform. All commands are to be executed from
97+
the main project directory.
98+
99+
* `./gradlew tasks --all`: List all available tasks
100+
* Build: (plugin binary will be stored in `build/libs`)
101+
* `./gradlew clean build`: Clean and build the project
102+
* `./gradlew build`: Build the project without cleaning
103+
* Version management:
104+
* `./gradlew printProjectVersion`: Print the current version
105+
* `./gradlew startSnapshotBranch -PnextVersion=2.0`: Start a new snapshot branch for an upcoming `2.0` version
106+
* `./gradlew releaseSnapshot`: Merge the changes from the current branch to the master branch, and create release tag
107+
* `./fortify-scan.sh`: Run a Fortify scan; requires Fortify SCA to be installed
108+
109+
Note that the version management tasks operate only on the local repository; you will need to manually
110+
push any changes (including tags and branches) to the remote repository.
111+
112+
### Versioning
113+
114+
The various version-related Gradle tasks assume the following versioning methodology:
115+
116+
* The `master` branch is only used for creating tagged release versions
117+
* A branch named `<version>-SNAPSHOT` contains the current snapshot state for the upcoming release
118+
* Optionally, other branches can be used to develop individual features, perform bug fixes, ...
119+
* However, note that the Gradle build may be unable to identify a correct version number for the project
120+
* As such, only builds from tagged versions or from a `<version>-SNAPSHOT` branch should be published to a Maven repository
121+
122+
### Automated Builds & publishing
123+
124+
Travis-CI builds are automatically triggered when there is any change in the project repository,
125+
for example due to pushing changes, or creating tags or branches. If applicable, binaries and related
126+
artifacts are automatically published to Bintray using the `bintrayUpload` task:
127+
128+
* Building a tagged version will result in corresponding release version artifacts to be published
129+
* Building a branch named `<version>-SNAPSHOT` will result in corresponding beta version artifacts to be published
130+
* No artifacts will be deployed for any other build, for example when Travis-CI builds the `master` branch
131+
132+
See the [Related Links](#related-links) section for the relevant Travis-CI and Bintray links.
133+
134+
135+
# Licensing
136+
See [LICENSE.TXT](LICENSE.TXT)
137+

0 commit comments

Comments
 (0)