Compare commits

..

3417 Commits

Author SHA1 Message Date
Jeremy Long
8722eae766 version 1.3.6 2016-04-10 07:06:07 -04:00
Jeremy Long
53776936ca fix FP per issue #469 2016-04-09 11:27:08 -04:00
Jeremy Long
dca465b801 fixed minor warning about file encoding during build 2016-04-09 07:31:40 -04:00
Jeremy Long
43cd115dc7 Merge pull request #482 from awhitford/DepUpg-160406
Dependency Updates
2016-04-09 06:59:29 -04:00
Jeremy Long
e7ba08e52c updated log message to assist in debugging an issue 2016-04-09 06:51:00 -04:00
Jeremy Long
9df12e6ff2 updated log message to assist in debugging an issue 2016-04-09 06:49:44 -04:00
Jeremy Long
b5c7fb747c updated log message to assist in debugging an issue 2016-04-09 06:38:37 -04:00
Anthony Whitford
a40a4afe80 SLF4J 1.7.21 released; commons-compress 1.11 released. 2016-04-06 21:39:27 -07:00
Jeremy Long
d4a6c58cc8 upgrade the transitive dependency commons-collections 2016-04-05 12:08:16 -04:00
Jeremy Long
d644431a4e Merge pull request #479 from awhitford/SLF4J1720LB117
SLF4J 1.7.20 and Logback 1.1.7 released.
2016-04-03 07:41:54 -04:00
Anthony Whitford
f4df263dfe SLF4J 1.7.20 and Logback 1.1.7 released. 2016-03-30 21:03:51 -07:00
Jeremy Long
0b699d45bf Merge pull request #467 from colezlaw/python-init
Patch for jeremylong/DependencyCheck/#466
2016-03-25 19:35:06 -04:00
Jeremy Long
54beafa262 Merge pull request #475 from biancajiang/master
Fix test to skip the proper test case when bundle-audit is not available
2016-03-25 19:34:34 -04:00
Jeremy Long
531d4923eb Merge pull request #470 from MrBerg/suppress-osvdb
Make it possible to suppress vulnerabilities from OSVDB
2016-03-25 19:33:43 -04:00
Jeremy Long
b160a4d1dd Merge pull request #478 from swapnilsm/master
Added primary key to "software" table
2016-03-25 19:32:45 -04:00
Swapnil S. Mahajan
ca54daf456 Added primary key to "software" table
"software" is a bridge table so there should always be only one record for a pair of cpeEntryId and cveid.
2016-03-25 16:55:53 +05:30
bjiang
a22fc550b3 #472 fix test to only skip the proper test case. 2016-03-21 11:38:52 -04:00
Jeremy Long
0650d93953 Merge pull request #474 from awhitford/SLF4J1719
SLF4J 1.7.19 released.
2016-03-21 08:18:41 -04:00
Jeremy Long
5633258fa7 Update README.md 2016-03-21 08:16:06 -04:00
Jeremy Long
12278cda58 Update README.md
Fixed broken link to documentation.
2016-03-21 08:12:39 -04:00
Jeremy Long
84d1f08fda updated documentation for NVD urls to match what is hosted by NIST 2016-03-21 07:58:02 -04:00
Jeremy Long
c184292a57 Merge pull request #473 from biancajiang/master
Handle bundle-audit not available case and fix RubyBundleAuditAnalyzer test cases
2016-03-21 07:52:17 -04:00
Anthony Whitford
4cdfcb9f9d SLF4J 1.7.19 released. 2016-03-20 20:47:07 -04:00
bjiang
343a78917c Fixed #472. Disable RubyBundleAuditAnalyzer if exception during initialize.
changes:
1. disable self during initialize before bubbling exception
2. new test case RubyBundleAuditAnalyzerTest#testMissingBundleAudit()
2016-03-20 17:06:03 -04:00
bjiang
ff7d0fdb9d #472 first fix and improve RubyBundleAuditAnalyzerTest.java
Test were failing b/c Gemfile.lock and Gemfile were missing.
The files were missing b/c parent .gitignore them.
Changes:
1. Force added new test files, and updated test with more result
validation.
2. Added error logging from bundle-audit.
3. place holder for bundle-audit install directory in test
dependencycheck.properties.
2016-03-20 15:54:24 -04:00
Jonas Berg
db26b46be0 Make it possible to suppress vulnerabilities from OSVDB 2016-03-16 13:59:23 +02:00
Will Stranathan
d77a70c360 Patch for jeremylong/DependencyCheck/#466
This does two things:
1) Updates the PythonPackageAnalyzer to HIGH evidence for __init__.py
2) Removes evidence from the FileNameAnalyzer for __init__.py[co]?

TODO: Need for the PythonPackageAnalyzer to still add evidence for
__init__.py[co] even though it won't be able to analyze the contents of
it. Also, need to work up the tree for __init__.py files to get the
parent folders (not sure why subfolders are not being inspected).
2016-03-12 15:09:43 -05:00
Jeremy Long
42f4ae65d1 Merge pull request #463 from chadjvw/master
Updated Oracle init script
2016-03-07 20:43:05 -05:00
Chad Van Wyhe
88daac31d2 Merge pull request #1 from chadjvw/oracle-init-fix
fixed trigger compilation and added version number
2016-03-07 12:59:02 -06:00
Chad Van Wyhe
ac04c173a8 fixed trigger compilation and added version number 2016-03-07 12:55:18 -06:00
Jeremy Long
8401494fbc Merge pull request #462 from thc202/issues-page-gradle-purge
Fix issues in Gradle's dependencyCheckPurge task site page
2016-03-06 18:54:03 -05:00
Jeremy Long
97af118cb9 Merge pull request #461 from thc202/broken-link-readme
Fix broken link in README.md file... Thanks!
2016-03-06 18:53:12 -05:00
thc202
091e6026bc Fix issues in Gradle's dependencyCheckPurge task site page
Fix broken link to dependencyCheckUpdate task page, remove repeated
closing character ']'.
Replace $H with # in the heading of the example.
2016-03-06 23:46:12 +00:00
thc202
c798ede7bf Fix broken link in README.md file
Correct the link to NOTICE.txt file, change from NOTICES.txt to
NOTICE.txt.
2016-03-06 23:46:04 +00:00
Jeremy Long
225851f067 Merge pull request #460 from awhitford/DepUpg160306
Dependency Upgrades
2016-03-06 18:01:03 -05:00
Jeremy Long
9dd65ecf70 Merge pull request #459 from awhitford/MPIR29
maven-project-info-reports-plugin 2.9 released.
2016-03-06 18:00:48 -05:00
Jeremy Long
1a9cc4b6be snapshot 2016-03-06 17:42:18 -05:00
Jeremy Long
a612f206bf version 1.3.5.1 2016-03-06 17:30:37 -05:00
Jeremy Long
e51031c62a fix bug in getLastProject for non-site executions 2016-03-06 17:28:40 -05:00
Anthony Whitford
e30c29ef50 SLF4J 1.7.18 released; Logback 1.1.6 released; jMockit 1.22 released. 2016-03-06 08:53:58 -08:00
Anthony Whitford
91ddcadbcd Removed maven-site-plugin from dependencyManagement. 2016-03-06 08:51:04 -08:00
Anthony Whitford
8c145860e5 maven-project-info-reports-plugin 2.9 released. 2016-03-06 08:35:09 -08:00
Jeremy Long
a19dd7687e v 1.3.6-SNAPSHOT 2016-03-05 16:13:29 -05:00
Jeremy Long
550d6ca083 v1.3.5 2016-03-05 16:08:59 -05:00
Jeremy Long
b425411357 doclint fixes 2016-03-05 13:18:42 -05:00
Jeremy Long
a1f0cf749d doclint fixes 2016-03-05 13:18:38 -05:00
Jeremy Long
22e0d1c74e doclint fixes 2016-03-05 13:18:37 -05:00
Jeremy Long
cdc07047aa doclint fixes 2016-03-05 13:18:37 -05:00
Jeremy Long
c832c2da28 doclint fixes 2016-03-05 13:18:37 -05:00
Jeremy Long
8daa713639 doclint fixes 2016-03-05 13:18:36 -05:00
Jeremy Long
e0a2966706 doclint fixes 2016-03-05 13:18:36 -05:00
Jeremy Long
354bfa14f9 doclint fixes 2016-03-05 13:18:35 -05:00
Jeremy Long
46b91702ba doclint fixes 2016-03-05 13:18:35 -05:00
Jeremy Long
de9516e368 doclint fixes 2016-03-05 13:18:35 -05:00
Jeremy Long
3924e07e5c doclint fixes 2016-03-05 13:18:34 -05:00
Jeremy Long
76bcbb5a7e doclint fixes 2016-03-05 13:18:34 -05:00
Jeremy Long
8022381d1c doclint fixes 2016-03-05 13:18:33 -05:00
Jeremy Long
feb1233081 doclint fixes 2016-03-05 13:18:33 -05:00
Jeremy Long
36eefd0836 doclint fixes 2016-03-05 13:18:32 -05:00
Jeremy Long
0e31e59759 doclint fixes 2016-03-05 13:18:32 -05:00
Jeremy Long
4a4c1e75da doclint fixes 2016-03-05 13:18:32 -05:00
Jeremy Long
b0bfd2292a doclint fixes 2016-03-05 13:18:31 -05:00
Jeremy Long
7214b24357 doclint fixes 2016-03-05 13:18:31 -05:00
Jeremy Long
24637f496f doclint fixes 2016-03-05 13:18:30 -05:00
Jeremy Long
d8ecde5265 doclint fixes 2016-03-05 13:18:30 -05:00
Jeremy Long
28840c6209 doclint fixes 2016-03-05 13:18:29 -05:00
Jeremy Long
1696213406 doclint fixes 2016-03-05 13:18:29 -05:00
Jeremy Long
6f315ac765 doclint fixes 2016-03-05 13:18:28 -05:00
Jeremy Long
a485307d92 doclint fixes 2016-03-05 13:18:28 -05:00
Jeremy Long
3d3b861ba0 doclint fixes 2016-03-05 13:18:28 -05:00
Jeremy Long
4b33ed25d5 doclint fixes 2016-03-05 13:18:27 -05:00
Jeremy Long
e264880c7b doclint fixes 2016-03-05 13:18:27 -05:00
Jeremy Long
ef8212701f doclint fixes 2016-03-05 13:18:26 -05:00
Jeremy Long
492157a502 doclint fixes 2016-03-05 13:18:26 -05:00
Jeremy Long
2605bc182e doclint fixes 2016-03-05 13:18:25 -05:00
Jeremy Long
fe8dfdd804 doclint fixes 2016-03-05 13:18:25 -05:00
Jeremy Long
bd917bc990 doclint fixes 2016-03-05 13:18:24 -05:00
Jeremy Long
c5c32f683f doclint fixes 2016-03-05 13:18:24 -05:00
Jeremy Long
5506e58c98 doclint fixes 2016-03-05 13:18:23 -05:00
Jeremy Long
5af2d49b18 doclint fixes 2016-03-05 13:18:23 -05:00
Jeremy Long
0fd35a4925 doclint fixes 2016-03-05 13:18:23 -05:00
Jeremy Long
7ed20b1244 doclint fixes 2016-03-05 13:18:22 -05:00
Jeremy Long
efa6a78255 doclint fixes 2016-03-05 13:18:22 -05:00
Jeremy Long
8b58df3b34 checkstyle/pmd/findbugs corrections 2016-03-05 07:07:53 -05:00
Jeremy Long
0d2a090e1f Merge pull request #456 from awhitford/Site35
Upgrade for Maven Site Plugin 3.5
2016-03-04 17:42:14 -05:00
Jeremy Long
7860d635a9 ensured deserialization is secure 2016-03-04 17:38:48 -05:00
Anthony Whitford
ba91c9fa9b Upgraded maven site plugin to 3.5, and doxia markdown module to 1.7. 2016-02-28 09:34:19 -08:00
Anthony Whitford
b3630e0d5e Upgraded the Fluido 1.5 skin and had to update site head for maven site plugin 3.5. See http://maven.apache.org/plugins/maven-site-plugin/examples/sitedescriptor.html#Inject_xhtml_into_head 2016-02-28 09:33:54 -08:00
Jeremy Long
f752285912 added test for parse manifest per issue #455 2016-02-27 07:14:27 -05:00
Jeremy Long
5a150d9b0e parsed additional entries in the manifest per issue #455 2016-02-27 07:13:57 -05:00
Jeremy Long
f0aa185832 added test dependency per issue #455 2016-02-27 07:12:30 -05:00
Jeremy Long
9592f058d4 add more false positives to the suppression list 2016-02-25 18:01:21 -05:00
Jeremy Long
f630794e22 added warning about site:stage with regards to the aggregate goal 2016-02-24 17:00:31 -05:00
Jeremy Long
93636e89c5 fixed broken hyperlinks 2016-02-23 20:54:24 -05:00
Jeremy Long
585002c25c resolution for issue #386 fixed the conditional so that execution occured on the last non-skipped project in the reactor 2016-02-23 20:42:10 -05:00
Jeremy Long
412ccc1be1 per issue #429 updates will only occur if the database schema and expected schema match exactly 2016-02-21 08:38:29 -05:00
Jeremy Long
8b1306a36c per issue #429 non-h2 databases may be used as long as the database schema is of the same major version and greater then or equal to the expected version. 2016-02-21 08:11:29 -05:00
Jeremy Long
81026e8dca isolate the analyze method to try and resolve multiple threads hitting the Lucene query parsers at the same time per issue #388 2016-02-20 08:18:00 -05:00
Jeremy Long
dd440c8f9f resolve issue #451 2016-02-20 08:12:14 -05:00
Jeremy Long
76f3e4b27e Merge pull request #449 from christiangalsterer/i444
Support nonProxyHosts parameter in settings.xml #444
2016-02-17 19:09:41 -05:00
Jeremy Long
5f5d3fdb66 Merge pull request #447 from kaimago/master
Oracle DB Support
2016-02-17 19:06:13 -05:00
Jeremy Long
853c92b87d Merge pull request #448 from awhitford/UpgFeb6-16
Upgraded SLF4J to 1.7.14 and the maven-compiler-plugin to 3.5.
2016-02-17 19:03:37 -05:00
Anthony Whitford
00080f2abc SLF4J 1.7.16 released; logback 1.1.5 released. 2016-02-15 10:23:07 -08:00
Anthony Whitford
55414208a3 SLF4J 1.7.15 released; maven-compiler-plugin 3.5.1 released. 2016-02-10 00:34:26 -08:00
Christian Galsterer
5091499563 [i444] Support nonProxyHosts parameter in settings.xml 2016-02-09 18:01:36 +01:00
Anthony Whitford
944b54d920 Upgraded SLF4J to 1.7.14 and the maven-compiler-plugin to 3.5. 2016-02-06 12:14:19 -08:00
Christian Galsterer
d023b2b2ff [i444] Support nonProxyHosts parameter in settings.xml 2016-02-06 16:13:01 +01:00
Jeremy Long
b45f9f514b base test case handles settings initialization 2016-02-06 08:40:33 -05:00
Jeremy Long
239a9383e0 fix for issue #446 2016-02-06 08:30:06 -05:00
Jeremy Long
2190c0229c added check to see if the file is xml prior to unzipping it per issue #441 2016-02-06 08:11:24 -05:00
I003306
01ef14dc92 Oracle DB Support 2016-02-04 15:23:57 +01:00
Jeremy Long
7b0784843c updated copyright 2016-01-31 17:23:13 -05:00
Jeremy Long
6fc805369e snapshot version 2016-01-31 17:11:37 -05:00
Jeremy Long
9e29939cd3 version 1.3.4 2016-01-31 16:50:34 -05:00
Jeremy Long
d750abca22 resolved issue with new databases not being created correctly if there was an intial download of the NVD data. 2016-01-31 08:26:23 -05:00
Jeremy Long
31df2fa131 findbugs/checkstyle corrections 2016-01-30 08:57:40 -05:00
Jeremy Long
6355a29a7a updated version to ensure there are no issues in the jenkins plugin per issue #445 2016-01-30 08:07:33 -05:00
Jeremy Long
86a2b38340 Merge pull request #440 from awhitford/DepUpg20160110
Upgrades
2016-01-24 08:40:51 -05:00
Jeremy Long
9cb2b58557 initial fix for issue #445 2016-01-24 08:35:44 -05:00
Jeremy Long
2b0e2e8d0d corrected link per issuue #443 2016-01-17 08:08:15 -05:00
Jeremy Long
cf46767196 resolution for issue #439 2016-01-16 07:39:48 -05:00
Anthony Whitford
ffc1034b5a findbugs-maven-plugin 3.0.3 released; JavaMail api 1.5.5 released; jMockit 1.21 released. 2016-01-10 10:01:33 -08:00
Jeremy Long
46bb19de9b supression rules to resolve issues #437 and #438 2016-01-10 07:45:29 -05:00
Jeremy Long
70bc7a6d01 Merge pull request #435 from awhitford/Surefire-2.19.1
Upgraded Surefire to 2.19.1 release.
2016-01-10 07:01:08 -05:00
Anthony Whitford
3164505273 Upgraded Surefire to 2.19.1 release. 2016-01-05 08:12:32 -08:00
Jeremy Long
3d84fcd037 resolves issue #433 2016-01-03 09:18:35 -05:00
Jeremy Long
578fa32243 updated to honor noupdate flag for version check and removed some complexity 2016-01-03 09:14:08 -05:00
Jeremy Long
fc00b7d1cc resolves issues #426 2016-01-03 08:51:03 -05:00
Jeremy Long
d7351bd3e5 Merge pull request #432 from awhitford/CodeTweaks20151228
Code tweaks 2015-12-28
2016-01-03 08:33:16 -05:00
Anthony Whitford
e7224c8f05 StringBuilder allocation more precise. 2015-12-31 09:25:44 -08:00
Anthony Whitford
b97622f45b Variables may be final. 2015-12-28 13:15:24 -08:00
Anthony Whitford
0e15f3b703 Add missing final keyword to local variables. 2015-12-28 13:14:31 -08:00
Anthony Whitford
6604c0da89 Default StringBuilder size should be larger than default 16. 2015-12-28 13:14:04 -08:00
Anthony Whitford
e0b8be20b3 Variable suppressionRules may be final. 2015-12-28 13:13:33 -08:00
Anthony Whitford
46965d8c96 Iterable does not need qualifying, and collection may be final. 2015-12-28 13:13:00 -08:00
Anthony Whitford
66e92f00ee Variable may be final. 2015-12-28 13:12:10 -08:00
Anthony Whitford
4a137b4e8e Use StringBuilder instead of String += concatenation. 2015-12-28 13:11:36 -08:00
Anthony Whitford
9d5ff28098 Variables can be final and the exception was unused so can be removed. 2015-12-28 13:10:37 -08:00
Anthony Whitford
313b114da5 Variables can be final. 2015-12-28 13:09:17 -08:00
Anthony Whitford
1b6bfc6338 Variables can be final. 2015-12-28 13:08:37 -08:00
Anthony Whitford
49fd89f34a Let's use logging parameters for lazy evaluation. 2015-12-28 13:07:34 -08:00
Anthony Whitford
a2e862886e Rather than an explicit StringBuilder, why not simply an implicit one? 2015-12-28 13:06:44 -08:00
Anthony Whitford
62f6c7c5a9 Rather than using instanceOf, just add a specific catch for AnalysisException. 2015-12-28 13:05:45 -08:00
Jeremy Long
2294ed1ce1 Merge pull request #430 from awhitford/PluginUpdates20151227
Plugin updates
2015-12-28 06:12:54 -05:00
Jeremy Long
c8a1c6a318 fixed issue #431 - missing dependency 2015-12-28 06:11:57 -05:00
Anthony Whitford
600ed66d5b maven-clean-plugin 3.0.0 released; maven-source-plugin 2.4 released; maven-javadoc-plugin 2.10.3 released. 2015-12-27 11:45:52 -08:00
Jeremy Long
512b17555c updated documentation for encrypted passwords per issue #417 2015-12-26 12:55:41 -05:00
Jeremy Long
dc7849c9e8 added support for encrypted passwords per issue #417 2015-12-26 07:13:40 -05:00
Jeremy Long
6a99a51b91 Merge pull request #425 from awhitford/PluginUpdate20151220
maven-pmd-plugin 3.6 released.
2015-12-25 07:07:22 -05:00
Anthony Whitford
8c7fa022a0 maven-pmd-plugin 3.6 released. 2015-12-20 10:10:55 -08:00
Jeremy Long
cca694a580 logs from issue #138 indicate multiple modules are calling a non-threadsafe operation; as such, the mojo is being marked as threadSafe=false 2015-12-18 06:36:14 -05:00
Jeremy Long
3a7f95b9b1 spelling correction 2015-12-18 06:28:11 -05:00
Jeremy Long
3a84dc3962 fixed casing per issue #418 2015-12-18 06:05:01 -05:00
Jeremy Long
5961a96a4c Merge pull request #424 from amandel/patch-1
Fix casing of properties table name.
2015-12-18 05:55:04 -05:00
Jeremy Long
a22382505f Merge pull request #420 from awhitford/Issue419
Issue #419 - Avoiding a duplicate CPE Index Created message
2015-12-18 05:51:26 -05:00
Jeremy Long
5faef75415 Merge pull request #422 from edgedalmacio/patch-1
added tomcat suppressions
2015-12-18 05:49:16 -05:00
Jeremy Long
fed60907dc snapshot version 2015-12-18 05:48:37 -05:00
Andreas Mandel
ce7e360b70 If casing of properties table name. 2015-12-17 14:06:16 +01:00
Edge Dalmacio
0b3def38b8 added tomcat suppressions
tomcat-embed-el
tomcat-jdbc
tomcat-juli
2015-12-17 15:27:17 +08:00
Anthony Whitford
25a15dea8c Issue #419 - Avoiding a duplicate CPE Index Created message and resource leak. 2015-12-14 00:52:48 -08:00
Jeremy Long
e204971a6c version 1.3.3 2015-12-10 19:44:38 -05:00
Jeremy Long
d5b3a118bc minor site tweaks 2015-12-10 19:44:26 -05:00
Jeremy Long
3396cb2887 fix for issue #416 2015-12-10 18:33:31 -05:00
Jeremy Long
3c5beea218 1.3.3-SNAPSHOT 2015-12-02 09:17:28 -05:00
Jeremy Long
e544384dd5 1.3.3-SNAPSHOT 2015-12-02 05:46:28 -05:00
Jeremy Long
0e90f460f4 reverted change, using the undocumented SERIALIZED file lock mode 2015-12-02 05:46:06 -05:00
Jeremy Long
921efc4d2b updated documentation 2015-11-30 06:50:15 -05:00
Jeremy Long
1b3b4a5906 version 1.3.2 2015-11-29 07:34:45 -05:00
Jeremy Long
5c8b374352 updated documentation 2015-11-28 08:14:00 -05:00
Jeremy Long
e05cef6886 extended the wrong base test case 2015-11-27 07:07:17 -05:00
Jeremy Long
cb39ecacf9 moved dependency-check-gradle to a new repo 2015-11-27 06:54:48 -05:00
Jeremy Long
e6816f94eb moving documentation of gradle and jenkins plugins under the main parent site 2015-11-26 06:36:35 -05:00
Jeremy Long
8b5dbeab44 removed stack trace in build when bundle audit is not installed 2015-11-25 05:59:58 -05:00
Jeremy Long
29c21c3611 pmd/checkstyle/findbugs corrections 2015-11-25 05:43:04 -05:00
Jeremy Long
e05bed8d65 Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-11-24 16:12:30 -05:00
Jeremy Long
1b2210aba0 pmd/checkstyle/findbugs corrections 2015-11-24 16:12:23 -05:00
Jeremy Long
7fb1b1d57b Merge pull request #330 from dwvisser/ruby-bundler
Ruby bundler-audit Analyzer
2015-11-24 15:53:00 -05:00
Jeremy Long
a3adf71a1d avoid npe 2015-11-24 05:43:45 -05:00
Jeremy Long
51d81fab5d grok assembly exe was hanging, reordered so input stream was processed before error stream to resolve the issue. 2015-11-24 05:34:34 -05:00
Dale Visser
2ed5dc153a Fixed merge conflict in App.java 2015-11-23 13:27:22 -05:00
Jeremy Long
5f8f156bee Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-11-22 07:31:27 -05:00
Jeremy Long
eb03c90d7a updated documentation 2015-11-22 07:31:17 -05:00
Jeremy Long
fc05471086 bug fix that might be related to #388, in addition added logging incase the bug fix does not work 2015-11-22 07:30:28 -05:00
Jeremy Long
b9db2dd89f Merge pull request #409 from awhitford/MinorCodeTweaks
Thanks!
2015-11-22 07:14:12 -05:00
Jeremy Long
de7fe21a4f Merge pull request #411 from hansjoachim/upgrade-slf4j
Upgraded slf4j to latest version
2015-11-22 07:07:07 -05:00
Jeremy Long
56f9a7c4f9 Merge pull request #407 from awhitford/DepUpg
Upgraded dependencies.
2015-11-22 07:06:38 -05:00
Hans Joachim Desserud
df569a5ae2 Upgraded slf4j to latest version 2015-11-14 10:10:44 +01:00
Jeremy Long
acb9d04c51 updated to be feature complete with 1.3.2-SNAPSHOT 2015-11-11 18:44:19 -05:00
Jeremy Long
09c4708a22 update for issue #410 2015-11-11 00:58:00 -05:00
Anthony Whitford
b346dfe0a3 Minor code tweaks. 2015-11-10 00:09:01 -08:00
Jeremy Long
5f259cb88c added missed configuration options for new analyzers 2015-11-07 06:37:36 -05:00
Anthony Whitford
fb2aff3310 Upgraded dependencies. 2015-11-06 23:16:12 -08:00
Jeremy Long
3c4c65c28c corrected NVD CVE URLs 2015-11-04 06:00:04 -05:00
Jeremy Long
15885e3e8c Merge branch 'awhitford-ModelInterpolationAlt' 2015-11-03 05:52:54 -05:00
Jeremy Long
5508c60e85 resulved conflict 2015-11-03 05:52:22 -05:00
Jeremy Long
ffc341e4b9 Merge pull request #405 from awhitford/StringToChar
One character String constants with char constants
2015-11-03 05:43:41 -05:00
Jeremy Long
41a68f7b25 Merge pull request #406 from awhitford/DropCountCharacters
Removed unnecessary countCharacter method.
2015-11-03 05:42:28 -05:00
Anthony Whitford
041d3c5312 Removed unnecessary countCharacter method by leveraging StringUtils.countMatches. 2015-11-01 23:19:37 -08:00
Anthony Whitford
8e8b462bc8 Replaced one character String constants with char constants, when applicable. 2015-11-01 22:39:30 -08:00
Jeremy Long
efbc76e06f Merge pull request #402 from awhitford/SettingsSetters
New setters for Settings
2015-11-01 05:52:34 -05:00
Jeremy Long
67a44d2adc added postgres 2015-11-01 05:50:08 -05:00
Anthony Whitford
92a35b929a Leveraged the new setters with null and empty checking for Settings. 2015-10-31 10:26:32 -07:00
Anthony Whitford
e5744dd63f Added extra setters with null and empty checks. 2015-10-31 10:25:50 -07:00
Jeremy Long
f2f3d050bd added 3.0 update schema 2015-10-31 07:25:02 -04:00
Jeremy Long
0cbecbe3a0 Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-10-30 05:42:36 -04:00
Jeremy Long
51a8b5a058 added mysql dialect 2015-10-30 05:41:12 -04:00
Jeremy Long
aaf716e54b Merge pull request #395 from awhitford/IOUtils
Leverage IOUtils
2015-10-30 05:32:44 -04:00
Jeremy Long
209fcc7946 Merge pull request #397 from awhitford/ModelInterpolate
Improved interpolateString.
2015-10-30 05:31:35 -04:00
Jeremy Long
a5cb131806 Merge pull request #400 from kgeis/patch-1
Update index.md.vm
2015-10-30 05:23:09 -04:00
Ken Geis
8fbeb5f5d5 Update index.md.vm
update usage examples to match currently used flags (--app -> --project)
2015-10-28 09:26:59 -07:00
Anthony Whitford
a92bdfe30d Alternative interpolateString implementation leveraging commons-lang3. 2015-10-28 00:08:12 -07:00
Anthony Whitford
7f130ff036 Improved interpolateString. 2015-10-27 23:25:28 -07:00
Jeremy Long
b704f72854 fixed npe 2015-10-27 06:15:34 -04:00
Anthony Whitford
e21f8a97ac More opportunities to leverage IOUtils. 2015-10-27 01:00:29 -07:00
Anthony Whitford
a8ff403809 Removed unused imports. 2015-10-27 01:00:04 -07:00
Anthony Whitford
22097c0a25 Replaced boiler-plate file read with simpler IOUtils call. 2015-10-27 00:10:32 -07:00
Jeremy Long
92e7d9cf80 improved update failure reporting 2015-10-26 06:36:10 -04:00
Jeremy Long
54d921f275 added test case 2015-10-26 06:32:02 -04:00
Jeremy Long
08d7b3dbce currently unused but contains DDL that may be needed in the future 2015-10-26 06:31:43 -04:00
Jeremy Long
6949b3c229 update file cannot contain comments 2015-10-26 06:30:56 -04:00
Jeremy Long
b0ca38bd29 reverted surefire due to IDE integration failures with 2.19 2015-10-26 06:30:16 -04:00
Jeremy Long
cf173ee9e7 Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-10-25 06:22:36 -04:00
Jeremy Long
aa9908b34a updated test properties w/ changes that had been made in the main properties 2015-10-25 06:22:30 -04:00
Jeremy Long
640674ef72 minor - added a comment explaining one of the preoperties 2015-10-25 06:21:48 -04:00
Jeremy Long
0c69ab80bb Merge pull request #382 from awhitford/MojoStreamClose
Removed unnecessary OutputStream closing.
2015-10-25 06:04:28 -04:00
Jeremy Long
662557c2f3 Merge pull request #387 from fabioscala/feature/overrideSuppressionFile
Allow setting suppression file in gradle plugin
2015-10-25 06:03:15 -04:00
Jeremy Long
346b2c31d2 moved default values to the properties file instead of hard-coding them 2015-10-25 05:58:57 -04:00
Jeremy Long
62dbf99557 moved default values to the properties file instead of hard-coding them 2015-10-25 05:57:24 -04:00
Jeremy Long
99b140adaa updated field name to make it more clear 2015-10-24 06:19:00 -04:00
Jeremy Long
387d577d4f updated field name to make it more clear 2015-10-24 06:18:36 -04:00
Jeremy Long
ab7eee7db9 updated field name to make it more clear 2015-10-24 06:18:09 -04:00
Jeremy Long
487a45f01b updated field name to make it more clear 2015-10-24 06:17:31 -04:00
Jeremy Long
60665c6bd8 Merge pull request #392 from awhitford/PluginUpgrades
Upgraded plugins.
2015-10-23 06:30:17 -04:00
Jeremy Long
8fc9a3d6d1 Merge pull request #391 from awhitford/CpeSetting
Change CpeUpdater to use CPE_MODIFIED_VALID_FOR_DAYS
2015-10-23 06:29:51 -04:00
Jeremy Long
05a05f7e88 Merge branch 'awhitford-NvdCheck' 2015-10-23 06:28:34 -04:00
Jeremy Long
0c5bdfd7b7 added a setInt in support of PR #390 2015-10-23 06:28:04 -04:00
Jeremy Long
626e93c7e3 minor changes to patch for PR #390 2015-10-23 06:27:29 -04:00
Jeremy Long
b588c4c900 set a default value of four hours for issue #390 2015-10-23 06:26:42 -04:00
Jeremy Long
c52a0d88df expanded issue #390 to the CLI 2015-10-23 06:25:47 -04:00
Jeremy Long
84838d19d9 added documentation for issue #390 2015-10-23 06:25:20 -04:00
Jeremy Long
faf335a181 expanded issue #390 to the Ant task 2015-10-23 06:24:14 -04:00
Jeremy Long
5c25351884 removed default value that over-wrote the properties file value 2015-10-23 06:22:58 -04:00
Jeremy Long
520f3cb09a Merge branch 'NvdCheck' of https://github.com/awhitford/DependencyCheck into awhitford-NvdCheck 2015-10-23 05:32:27 -04:00
Anthony Whitford
e234246618 Upgraded plugins. 2015-10-22 00:18:50 -07:00
Anthony Whitford
5d1d378f61 Shouldn't CPE Updater use the CPE_MODIFIED_VALID_FOR_DAYS setting (not CVE)? 2015-10-21 23:56:28 -07:00
Anthony Whitford
cef3bb7424 Reworked withinDateRange to avoid type conversion between doubles and longs; expressed in long integer math. 2015-10-21 23:27:03 -07:00
Anthony Whitford
ccb03f2763 Added cveValidForHours parameter that can suppress redundant and repetitive checks for NVD CVE changes. 2015-10-21 23:25:18 -07:00
Anthony Whitford
1f6168366b Added logic to optionally prevent overly repetitive checks for NVD CVE changes. 2015-10-21 23:23:47 -07:00
Anthony Whitford
cd5bf85245 Added a database property for recording the last time the NVD CVE was checked. 2015-10-21 23:21:25 -07:00
Anthony Whitford
f2778e5d28 Adding a setting to suppress repetitive NVD checks. 2015-10-21 23:19:57 -07:00
Jeremy Long
c2e6065ed7 added option to change the name of the report per issue #389 2015-10-20 06:18:28 -04:00
Jeremy Long
fccba5f7fd Merge pull request #381 from awhitford/SkipMojo
Added basic skip option for mojos.
2015-10-20 05:58:16 -04:00
Jeremy Long
3f230c5a05 resolve issue #372 2015-10-18 06:32:44 -04:00
Jeremy Long
dc849c3891 removed duplicate abstract test base 2015-10-18 06:17:21 -04:00
Jeremy Long
2770b58a20 fixing the build 2015-10-18 06:07:23 -04:00
Jeremy Long
37519acfb8 minor performance improvement 2015-10-17 07:42:09 -04:00
Jeremy Long
ad8c7b3cd2 missed one character in my lucene escape util 2015-10-17 07:40:38 -04:00
Jeremy Long
04db8d3208 Merge pull request #385 from awhitford/FileUtils
Leverage FilenameUtils
2015-10-16 06:30:53 -04:00
Jeremy Long
666e3b1e30 fix for issue #384 2015-10-16 06:23:03 -04:00
Fabio Scala
dc68781c06 Allow setting suppression file in gradle plugin 2015-10-15 11:24:33 +02:00
Jeremy Long
a7f50d147e depending on test order this test may fail if ArchiveAnalyzer was previously loaded. 2015-10-14 07:12:04 -04:00
Anthony Whitford
7e639db5de Leveraging FilenameUtils rather than string dissection. 2015-10-14 00:16:20 -07:00
Anthony Whitford
19a97a1706 Demonstrating the benefit of commons-io instead of the simpler string dissection. 2015-10-13 23:59:31 -07:00
Anthony Whitford
cd66a9ef61 Demonstrating the benefit of commons-io instead of the simpler string dissection. 2015-10-13 23:59:11 -07:00
Anthony Whitford
f121430a5d Simplified getFileExtension by leveraging commons-io. Also cut a line from delete. 2015-10-13 23:50:41 -07:00
Jeremy Long
2f518dacfc Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-10-13 21:24:22 -04:00
Jeremy Long
fded8b6cd3 fixed issue #383 2015-10-13 21:24:03 -04:00
Jeremy Long
3b6c64dc9d move test resource to correct directory 2015-10-13 19:03:33 -04:00
Jeremy Long
d742985640 resolve issue #377 2015-10-13 19:03:19 -04:00
Jeremy Long
a13dd58989 Merge pull request #380 from awhitford/TestLint
Removed compiler warnings from test code.
2015-10-12 06:46:50 -04:00
Jeremy Long
622b3210ae Merge pull request #379 from awhitford/HashSetLen
Sized the new HashSet to avoid rehashing risk.
2015-10-12 06:46:12 -04:00
Jeremy Long
90c97ed6aa Merge pull request #376 from awhitford/ComposerExSerial
Added missing serialVersionUID to new ComposerException.
2015-10-12 06:45:38 -04:00
Jeremy Long
53a4dfbf88 Merge pull request #378 from awhitford/RmNonCloseStream
Removing unused NonClosingStream.
2015-10-12 06:45:20 -04:00
Jeremy Long
f488c57363 Merge branch 'awhitford-DbMerge' 2015-10-12 06:44:00 -04:00
Jeremy Long
0ce830ca9d fixed test case to correctly initialize the settings 2015-10-12 06:43:32 -04:00
Jeremy Long
30ae418c2c updated MySQL profile 2015-10-12 06:42:55 -04:00
Jeremy Long
3b976d211f upgrdae db schema version 2015-10-12 06:15:24 -04:00
Jeremy Long
cca49b5dc2 added information regarding updating the database schema 2015-10-12 06:13:06 -04:00
Jeremy Long
8c2b2070c6 added URL to database upgrade page 2015-10-12 05:53:07 -04:00
Jeremy Long
24b8ff26db Merge branch 'DbMerge' of https://github.com/awhitford/DependencyCheck into awhitford-DbMerge 2015-10-12 05:48:03 -04:00
Jeremy Long
f0d93538ae changed update script to fail on non-H2 databases; they require manual upgrades 2015-10-12 05:47:50 -04:00
Jeremy Long
02eab65c4e upgrade h2 db schema to 3.0 2015-10-12 05:47:00 -04:00
Jeremy Long
d941aa7df3 script to upgrade a MySQL db 2015-10-12 05:46:33 -04:00
Anthony Whitford
b5026a45f6 Removed unnecessary OutputStream closing. Also the flush and reset are not necessary since the stream is being closed right away. 2015-10-11 19:09:03 -07:00
Anthony Whitford
79fde3ebc9 Added basic skip option for mojos. 2015-10-11 18:44:25 -07:00
Anthony Whitford
031d648585 Removed compiler warnings from test code. 2015-10-11 17:48:27 -07:00
Anthony Whitford
762b2fe7d6 Leverage Collections.singleton for single entry HashSets. 2015-10-11 17:32:08 -07:00
Anthony Whitford
5db377923e Sized the new HashSet to avoid rehashing risk. 2015-10-11 16:51:57 -07:00
Anthony Whitford
c3177df739 Removing unused NonClosingStream. 2015-10-11 11:42:03 -07:00
Anthony Whitford
0dc36765f1 Added missing serialVersionUID to new ComposerException. 2015-10-10 16:19:59 -07:00
Jeremy Long
38e61ebd8d Merge branch 'awhitford-MvnPhase' 2015-10-10 06:15:29 -04:00
Jeremy Long
529b9739b5 changed default phase to VERIFY 2015-10-10 06:14:50 -04:00
Jeremy Long
a014ca7d8a Merge branch 'MvnPhase' of https://github.com/awhitford/DependencyCheck into awhitford-MvnPhase 2015-10-10 05:59:04 -04:00
Jeremy Long
83701f7d0d Merge pull request #374 from awhitford/EngineScanTweak
Consolidated scan(Set) and scan(List) with scan(Collection).
2015-10-10 05:54:31 -04:00
Jeremy Long
b2500939f3 Merge pull request #375 from skitt/cme-fix
Avoid ConcurrentModificationExceptions
2015-10-10 05:52:32 -04:00
Stephen Kitt
1852b9dbb2 Avoid ConcurrentModificationExceptions
AggregateMojo.getDescendants() can end up adding descendants while
it's iterating over them. This separates the addition from the
iteration to avoid this.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2015-10-09 17:07:27 +02:00
Anthony Whitford
069474fc71 Consolidated scan(Set) and scan(List) with scan(Collection). 2015-10-09 07:52:43 -07:00
Jeremy Long
e7f518264a Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-10-09 08:52:06 -04:00
Jeremy Long
b0b096c3f5 updated version to 1.3.2-SNAPSHOT 2015-10-09 08:51:58 -04:00
Jeremy Long
bfa9d04d42 added another suppression rule 2015-10-09 08:33:04 -04:00
Jeremy Long
7dbe58469a Merge pull request #371 from awhitford/CpeLucenePerf
Re-use Document and Field instances to minimize GC overhead.
2015-10-09 07:03:35 -04:00
Jeremy Long
41b36dabc2 Merge pull request #370 from awhitford/DontLogToString
Do not need or want to call toString for a logger parameter.
2015-10-09 07:01:44 -04:00
Jeremy Long
4a685557d9 Merge pull request #369 from awhitford/BadSuppress
Removed unnecessary @SuppressWarnings.
2015-10-09 07:01:02 -04:00
Jeremy Long
e7ef4b6906 Merge pull request #367 from awhitford/SettingsCleanup
Settings cleanup
2015-10-09 07:00:39 -04:00
Jeremy Long
67502fb9d3 Merge pull request #368 from awhitford/UtilsCleanup
Utils cleanup
2015-10-09 06:59:33 -04:00
Anthony Whitford
960283bdcf Do not need or want to call toString for a logger parameter. 2015-10-09 02:08:07 -07:00
Anthony Whitford
39f30eab7a Re-use Document and Field instances to minimize GC overhead. See http://wiki.apache.org/lucene-java/ImproveIndexingSpeed 2015-10-09 00:38:55 -07:00
Anthony Whitford
24b4741aaf Removed unnecessary @SuppressWarnings. 2015-10-08 23:40:14 -07:00
Anthony Whitford
64f373fb43 Removed old warning suppression. 2015-10-08 20:58:20 -07:00
Anthony Whitford
bc1830d8eb Removed redundant call to length for substring. 2015-10-08 20:57:28 -07:00
Anthony Whitford
f2a2a91682 Slight simplification to standard getInt and getLong. 2015-10-08 00:56:38 -07:00
Anthony Whitford
274ac339ad Corrected a few bugs in Settings. 2015-10-08 00:39:57 -07:00
Anthony Whitford
1d916286ee Changing the check phase from compile to verify. 2015-10-07 23:11:53 -07:00
Jeremy Long
832d54300a fixed suppression for issue #365 2015-10-03 07:41:15 -04:00
Jeremy Long
ba6d3bbe15 added suppression for issue #365 2015-10-03 07:35:05 -04:00
Jeremy Long
c1d0789ac7 the Central analyzer should be enabled by default 2015-09-30 06:37:47 -04:00
Dale Visser
0573d0083e Ruby Bundler: Throw AnalysisException in initialize if can't run bundle-audit. 2015-09-22 15:07:43 -04:00
Dale Visser
e57d62b682 Merge branch 'upmaster' into ruby-bundler
Conflicts:
	dependency-check-cli/src/main/java/org/owasp/dependencycheck/App.java
	dependency-check-cli/src/main/java/org/owasp/dependencycheck/CliParser.java
	dependency-check-core/src/main/resources/META-INF/services/org.owasp.dependencycheck.analyzer.Analyzer
2015-09-22 14:21:43 -04:00
Jeremy Long
bb6f27b322 updated other tool(s) listed 2015-09-22 06:12:10 -04:00
Jeremy Long
86f424ad37 Merge pull request #358 from wmaintw/master
update the version of dependency-check-core that the gradle plugin used
2015-09-22 06:01:19 -04:00
ma wei
ad81bbc761 modify README 2015-09-21 09:26:25 +08:00
ma wei
07e868e6f6 upgrade dependency check core version to 1.3.1 2015-09-21 09:24:58 +08:00
Jeremy Long
b45700df03 version 1.3.1 2015-09-20 07:17:00 -04:00
Jeremy Long
93ce2a8e3a fixed path in zip to be different then the cli 2015-09-20 07:14:02 -04:00
Jeremy Long
fbc4d46962 updated language list to include php 2015-09-20 06:39:55 -04:00
Jeremy Long
d73d138b3f checkstyle/pmd/findbugs corrections 2015-09-20 06:39:27 -04:00
Jeremy Long
14ea21d53d checkstyle/pmd/findbugs corrections 2015-09-20 06:38:47 -04:00
Jeremy Long
2b3791b83e checkstyle/findbugs/pmd/copyright corrections 2015-09-19 08:20:58 -04:00
Jeremy Long
e04809f96b checkstyle/findbugs/pmd/copyright corrections 2015-09-19 08:20:14 -04:00
Jeremy Long
9203acff9c checkstyle/pmd/findbugs patches 2015-09-19 07:52:24 -04:00
Jeremy Long
afc1a9f077 removed unused settings 2015-09-18 06:53:30 -04:00
Jeremy Long
fc57851113 added options to disable analyzers 2015-09-18 06:52:36 -04:00
Jeremy Long
1f1d3f843f Merge branch 'colezlaw-composer-json' 2015-09-18 05:47:35 -04:00
Jeremy Long
b389260dec updated copyright 2015-09-18 05:47:06 -04:00
ma wei
1f37a5ff8f update the example command in README file 2015-09-17 17:17:41 +08:00
ma wei
815d60eca2 update README, fix typo which would lead to unable to apply this plugin 2015-09-17 17:15:42 +08:00
Dale Visser
877a584a26 Ruby Bundler: Disable Gemspec analysis if successful init. Moved to new analysis phase after init, before info collection. 2015-09-15 12:27:26 -04:00
Dale Visser
0c60c9ff75 Merge branch 'upmaster' into ruby-bundler 2015-09-15 11:59:59 -04:00
Will Stranathan
6a7a868b71 Initial checkin of ComposerLockAnalyzer 2015-09-14 22:14:00 -04:00
Jeremy Long
b5a070b228 Merge pull request #345 from hansjoachim/upgrades
Upgrade jmockit to 1.19
2015-09-14 19:29:15 -04:00
Dale Visser
39f13c6e5b Merge branch 'upmaster' into ruby-bundler 2015-09-14 17:14:20 -04:00
Jeremy Long
8c98da09f0 Merge pull request #355 from hansjoachim/warnings
Warnings
2015-09-13 19:31:16 -04:00
Jeremy Long
ed70a7200c Merge pull request #356 from awhitford/CompilerWarn
Enabled Compiler Lint Check and Deprecation Warnings
2015-09-13 19:28:26 -04:00
Anthony Whitford
ea4410cd16 Added missing serialVersionUID. 2015-09-13 10:57:54 -07:00
Anthony Whitford
9d9b1cbcd5 Replaced hashCode to leverage builder instead of deprecated ObjectUtils methods. 2015-09-13 10:55:02 -07:00
Anthony Whitford
f17d8f38fb Replaced equals and hashCode to leverage builders instead of deprecated ObjectUtils methods. 2015-09-13 10:48:03 -07:00
Anthony Whitford
0efc9d1cd2 Added missing serialVersionUID. 2015-09-13 10:34:19 -07:00
Anthony Whitford
4f5d5f1afd Added missing serialVersionUID. 2015-09-13 10:30:08 -07:00
Anthony Whitford
c4d8d7abf4 Removed redundant maven-compiler-plugin declaration. 2015-09-13 10:22:44 -07:00
Anthony Whitford
3fad29a709 Enabled lint check and deprecation warnings during compilation. 2015-09-13 10:22:25 -07:00
Hans Joachim Desserud
665f204c1f Code review: remove outcommented @Override annotation 2015-09-13 19:05:53 +02:00
Hans Joachim Desserud
362b651823 Unused imports 2015-09-13 17:06:44 +02:00
Hans Joachim Desserud
49b56588b8 Replace with foreach 2015-09-13 17:04:46 +02:00
Hans Joachim Desserud
c7a763ffdc Remove inheritance from Junit3 class and empty, unused methods 2015-09-13 17:01:32 +02:00
Hans Joachim Desserud
5435ddad9f Place array designator on the type 2015-09-13 16:46:14 +02:00
Hans Joachim Desserud
0ecd466c4c Add missing @Override annotations 2015-09-13 14:52:08 +02:00
Jeremy Long
6117e25b97 resolved merge 2015-09-13 07:49:25 -04:00
Jeremy Long
ee10f09bc6 Merge branch 'awhitford-StringB' 2015-09-13 07:47:11 -04:00
Jeremy Long
58512e302f resolved conflicts 2015-09-13 07:46:46 -04:00
Jeremy Long
ce564c209b removed deprecated/unused methods 2015-09-13 07:43:05 -04:00
Jeremy Long
7296d49693 Merge pull request #352 from awhitford/mpirp
Upgraded maven-project-info-reports-plugin from 2.8 to 2.8.1.
2015-09-13 07:41:01 -04:00
Jeremy Long
290fdc4c0f Merge pull request #350 from awhitford/AnalyzeIO
Replaced code with IOUtils.copy.

Thanks for the PR!
2015-09-13 07:40:41 -04:00
Jeremy Long
1fa5ae695d Merge pull request #349 from hansjoachim/warnings
Fixes various warnings
2015-09-13 07:37:25 -04:00
Jeremy Long
b2ba6d38b8 Merge branch 'hansjoachim-directoryscanner' 2015-09-13 07:29:56 -04:00
Jeremy Long
620f1b94bc added more false positive suppressions 2015-09-13 07:29:17 -04:00
Jeremy Long
c8fb5d1a9a excluded ant-launcher 2015-09-13 07:28:41 -04:00
Jeremy Long
1f763aeb72 Merge branch 'directoryscanner' of https://github.com/hansjoachim/DependencyCheck into hansjoachim-directoryscanner 2015-09-13 07:13:47 -04:00
Jeremy Long
fcfb019555 suppressed findbugs redundant null check 2015-09-13 07:03:55 -04:00
Jeremy Long
d4c1acb126 checkstyle fix - empty catch 2015-09-13 07:03:15 -04:00
Jeremy Long
862bf43685 suppressed checkstyle warnings 2015-09-13 07:02:41 -04:00
Jeremy Long
f83139a9ee fixed line length checkstyle finding 2015-09-13 07:02:13 -04:00
Jeremy Long
3d938b3edf added findbugs annotations to allow suppression 2015-09-13 07:01:28 -04:00
Jeremy Long
6c6ae66e36 added SuppressionCommentFilter so we can suppress individual findings 2015-09-13 07:01:10 -04:00
Jeremy Long
813e423bec added findbugs annotations to allow suppression 2015-09-13 07:00:27 -04:00
Anthony Whitford
a9a235fc87 Replaced StringBuffer with more efficient StringBuilder. 2015-09-12 19:53:44 -07:00
Anthony Whitford
6e1c6b4bed Replaced StringBuffer with more efficient StringBuilder. 2015-09-12 19:50:43 -07:00
Anthony Whitford
2214059a63 Upgraded maven-project-info-reports-plugin from 2.8 to 2.8.1. Also enabled cim report (since ci is being used). 2015-09-12 18:48:30 -07:00
Anthony Whitford
424cfcfa0c Added optional merge property support via a database dialect. Note that saveProperties was broken and unused, so removed. 2015-09-12 14:13:46 -07:00
Anthony Whitford
ce871dfa3e Replaced code with IOUtils.copy. 2015-09-12 10:55:33 -07:00
Hans Joachim Desserud
48a6eb1f86 Prefer interfaces over concerete classes. Did not change return type for public methods as this might potentially cause problems/need for changes for external users 2015-09-12 15:35:56 +02:00
Hans Joachim Desserud
fb85fb5b76 Ensure that we assert something. If the iterator doesn't have any values we would never enter the loop, but the test would still be green 2015-09-12 15:03:41 +02:00
Hans Joachim Desserud
c39c3cfdae Comment for review 2015-09-12 15:02:22 +02:00
Hans Joachim Desserud
e2fa7c666a Unused variable 2015-09-12 14:53:01 +02:00
Hans Joachim Desserud
f49cc6fb1f Unused methods in test 2015-09-12 14:51:49 +02:00
Hans Joachim Desserud
69bef59473 Remove superflous semicolon 2015-09-12 14:50:35 +02:00
Hans Joachim Desserud
9e931b9eb0 Remove modified copy of Apache Ant's DirectoryScanner 2015-09-12 14:14:54 +02:00
Hans Joachim Desserud
b26d9ea1e0 Replace use of included DirectoryScanner with Apache Ant's 2015-09-12 14:14:53 +02:00
Hans Joachim Desserud
ca5607d79e Removed empty methods from test 2015-09-12 14:14:08 +02:00
Hans Joachim Desserud
903eaed250 Remove unused imports 2015-09-12 14:06:47 +02:00
Jeremy Long
0859eab2dc corrected documentation 2015-09-12 06:59:19 -04:00
Jeremy Long
f0f84722ba removed unused import 2015-09-12 06:59:07 -04:00
Hans Joachim Desserud
17b8ba7069 Upgrade jmockit to 1.19 2015-09-12 12:40:01 +02:00
Jeremy Long
eb91152cfa updated the dependency-check-ant documentation 2015-09-11 06:53:58 -04:00
Jeremy Long
08c1b6879e changed scope on ant dependencies to provided 2015-09-11 06:15:59 -04:00
Jeremy Long
0077a8f67c removed link to usage.html as it was removed 2015-09-11 06:15:26 -04:00
Jeremy Long
a89cc67bd2 fixed hyperlink (usage->index) 2015-09-11 06:14:47 -04:00
Jeremy Long
388415ecc2 fixed hyperlink 2015-09-11 06:13:30 -04:00
Jeremy Long
44c5ba208d added documentation about unused code 2015-09-11 05:31:09 -04:00
Jeremy Long
d3a51857cb Merge pull request #344 from awhitford/DbOpts
Db opts
2015-09-11 05:25:16 -04:00
Anthony Whitford
11a3db5d64 Revert "Replaced update or insert property logic with merge property logic."
This reverts commit ece4a51b94.
2015-09-10 23:21:44 -07:00
Anthony Whitford
f3be8ae608 Merge remote-tracking branch 'jeremylong/master' into DbOpts 2015-09-10 23:17:46 -07:00
Jeremy Long
0577c9121c merge conflicts resolved 2015-09-10 06:47:38 -04:00
Jeremy Long
058f51e8c1 removed the shade plugin 2015-09-10 06:43:43 -04:00
Jeremy Long
698444caec changed the name of the data directory 2015-09-10 06:42:48 -04:00
Jeremy Long
d575df4b19 updated release to correctly bundle the zip 2015-09-10 06:42:25 -04:00
Jeremy Long
bee98513a2 cleaned up notices because additional notices are no longer added by shade 2015-09-10 06:41:48 -04:00
Anthony Whitford
3746df49ee Added type declarations. 2015-09-10 00:21:54 -07:00
Anthony Whitford
d98f67eab9 Added missing serialVersionUID. 2015-09-10 00:20:03 -07:00
Anthony Whitford
fde415e251 Added missing serialVersionUID. 2015-09-10 00:05:04 -07:00
Anthony Whitford
5702f39181 Addressed possible resource leak. 2015-09-09 23:54:20 -07:00
Anthony Whitford
45658afd89 Replaced empty string equals check with an isEmpty check. 2015-09-09 23:20:51 -07:00
Anthony Whitford
ece4a51b94 Replaced update or insert property logic with merge property logic. 2015-09-09 23:18:38 -07:00
Dale Visser
837d4918f2 Merge branch 'upmaster' into ruby-bundler. Fixed omission of --disableBundleAudit option.
Conflicts:
	dependency-check-cli/src/main/java/org/owasp/dependencycheck/CliParser.java
2015-09-09 18:09:41 -04:00
Jeremy Long
57ae0f1676 resolved command line invocation of aggregate resulting in missing html report (#189) 2015-09-09 06:15:17 -04:00
Jeremy Long
48e644e007 removed un-needed call to log.isDebugEnabled() 2015-09-09 05:58:51 -04:00
Jeremy Long
49a04fa913 Merge branch 'awhitford-FluidoSkin14' 2015-09-08 06:43:06 -04:00
Jeremy Long
df943bcf75 Merge branch 'FluidoSkin14' of https://github.com/awhitford/DependencyCheck into awhitford-FluidoSkin14 2015-09-08 06:35:14 -04:00
Jeremy Long
fdbec176fa fixed logging statements to use slf4j format syntax instead of String.format syntax 2015-09-08 06:31:59 -04:00
Jeremy Long
4b2b4e5482 Merge pull request #343 from awhitford/CodeTweaks
Code tweaks
2015-09-08 06:20:18 -04:00
Anthony Whitford
96768d8529 Replaced Date manipulation with more efficient System call. 2015-09-08 01:01:13 -07:00
Anthony Whitford
2689a08026 Replaced Date manipulation with more efficient System call. 2015-09-07 17:50:02 -07:00
Anthony Whitford
54be70672e Replaced Date manipulation with more efficient System call. 2015-09-07 17:49:11 -07:00
Anthony Whitford
480fa50af5 Corrected Javadoc to eliminate warning. 2015-09-07 17:01:24 -07:00
Anthony Whitford
b51731d15f Added final keyword. 2015-09-07 16:35:23 -07:00
Anthony Whitford
c09650a136 Removed unused slf4j-ext and slf4j-jdk14 dependency declarations. 2015-09-07 16:30:58 -07:00
Anthony Whitford
769fcb20d8 Removed a now unused import. 2015-09-07 16:29:27 -07:00
Anthony Whitford
537c4b3a50 Added missing final keywords. 2015-09-07 16:28:55 -07:00
Anthony Whitford
a75c17ac5e Added final keywords and elaborated the javax.json imports. 2015-09-07 16:28:22 -07:00
Anthony Whitford
85604e8afa Logback-core is a transitive dependency from logback-classic -- no need to explicitly mention it. JSoup type is jar by default, so no need to mention that. SLF4J-Ext does not seem to be used, so can drop that. H2 only has runtime scope. 2015-09-07 16:01:10 -07:00
Anthony Whitford
9a45c9aa7c Removed unused Cal10n MessageConveyor. 2015-09-07 15:21:54 -07:00
Anthony Whitford
01450bacc2 Removed a redundant null check, and replaced an addAll with the constructor population. 2015-09-07 14:51:26 -07:00
Anthony Whitford
af0255ee09 Rather than create a collection, then call addAll to populate, the collection can be created with the collection to clone. 2015-09-07 14:48:23 -07:00
Anthony Whitford
df25bbb6d2 Replaced json iteration with more efficient entrySet. Also corrected an invalid logging statement. 2015-09-07 14:43:34 -07:00
Anthony Whitford
444685bc05 Inner class should be static (since it doesn't reference parent). 2015-09-07 14:40:32 -07:00
Anthony Whitford
115f63c330 Removed an unused import and combined nested if statements. 2015-09-07 14:38:43 -07:00
Anthony Whitford
f9dbc4f7bf Upgraded Fluido Skin to 1.4 (from 1.3.1). 2015-09-07 10:54:01 -07:00
Jeremy Long
83263f8dee Update README.md
added build badge
2015-09-07 07:43:33 -04:00
Jeremy Long
a452ade957 Merge pull request #339 from awhitford/DependencyUpgrades
Upgraded dependencies.
2015-09-07 07:36:47 -04:00
Jeremy Long
1f48af024e Merge pull request #338 from awhitford/PomCleanup
Pom cleanup
2015-09-07 07:34:07 -04:00
Jeremy Long
0a643d7195 Merge pull request #340 from awhitford/CommonsLang3
Upgraded commons-lang-2.6 to newer commons-lang3-3.4.
2015-09-07 07:30:52 -04:00
Jeremy Long
c3835b9da7 removed erroneous short cli argument for exclude 2015-09-07 07:27:39 -04:00
Jeremy Long
bb1a96cf7a Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-09-07 07:25:36 -04:00
Jeremy Long
56360301d7 changed debug message to an error 2015-09-07 07:25:29 -04:00
Jeremy Long
435cccdeae Merge pull request #341 from awhitford/CommonsCli131
Upgraded commons-cli to 1.3.1 (from 1.2).
2015-09-07 07:24:48 -04:00
Anthony Whitford
b11b472933 Upgraded commons-cli to 1.3.1 (from 1.2). See http://commons.apache.org/proper/commons-cli/release_1_3.html for upgrade details. 2015-09-07 02:27:10 -07:00
Anthony Whitford
514f8398e2 Upgraded commons-lang-2.6 to newer commons-lang3-3.4. 2015-09-07 01:09:41 -07:00
Anthony Whitford
90935fef25 Upgraded dependencies. 2015-09-07 00:40:30 -07:00
Anthony Whitford
9b5ce1c3a6 Upgraded shade plugin to 2.4.1 (from 2.3). 2015-09-06 23:20:15 -07:00
Anthony Whitford
8ad1639b02 License is inherited from Parent POM -- no need to restate unless it is different. 2015-09-06 22:30:01 -07:00
Anthony Whitford
6d70332cd6 Centralized the Versions report to the parent pom. 2015-09-06 22:21:50 -07:00
Anthony Whitford
717f6240e3 Centralized javadoc reporting to parent pom. 2015-09-06 20:51:56 -07:00
Anthony Whitford
ab782054a1 Missed this lingering redundant maven-project-info-reports-plugin declaration. 2015-09-06 13:37:04 -07:00
Anthony Whitford
b481f01217 Moved the maven-plugin-plugin declarations into the maven module since it is unique to that module. 2015-09-06 13:05:17 -07:00
Anthony Whitford
d0f884f5b2 Centralized the maven-surefire-report-plugin to the parent pom. Note that gradle and jenkins modules are skipped since it does not apply. 2015-09-06 12:56:36 -07:00
Anthony Whitford
51e66354b0 No need to explicitly add a jar goal when it implicitly exists already for a jar module. 2015-09-06 11:18:56 -07:00
Jeremy Long
1efe90f445 Merge pull request #337 from awhitford/Checkstyle
Thanks again!
2015-09-06 06:12:19 -04:00
Anthony Whitford
7b47b7549d Removed redundant declarations for maven-compiler-plugin and maven-jar-plugin. 2015-09-06 01:42:01 -07:00
Anthony Whitford
7ccb77fb57 Removed unnecessary property for findbugs-maven-plugin since it is now only declared once. 2015-09-06 01:32:00 -07:00
Anthony Whitford
a32fa69823 Moved taglist-maven-plugin to the parent pom. (Gradle and Jenkins modules don't have them -- before or after.) This will make it easier to manage and evolve. 2015-09-06 01:29:17 -07:00
Anthony Whitford
ece4cb03ad project.build.sourceEncoding is already specified in the parent pom, so this is not necessary. 2015-09-06 00:53:53 -07:00
Anthony Whitford
5c53b6528f Centralized the findbugs-maven-plugin to the parent pom. Gradle and Jenkins modules skip it naturally. The onlyAnlyze setting for utils is maintained via a property. Also was able to upgrade to latest plugin, version 3.0.2. 2015-09-06 00:51:28 -07:00
Anthony Whitford
9b92007eff Centralized cobertura plugin to the parent pom and was able to upgrade it from 2.6 to 2.7. 2015-09-06 00:23:24 -07:00
Anthony Whitford
e433809f4d Moved maven-jxr-plugin and maven-project-info-reports-plugin reporting declarations into the parent pom. No need to duplicate in child modules. Utils did not have project-info reports, but there does not seem to be a good reason. Also note that the JXR plugin is naturally skipped when it does not apply (there is no java code), so not necessary to explicitly skip it for gradle and jenkins modules. 2015-09-05 23:57:53 -07:00
Anthony Whitford
d74218004a Reporting section for jenkins module is completely redundant with the parent pom. It can be removed and will generate the same report. 2015-09-05 23:17:28 -07:00
Anthony Whitford
c35276e3df Reporting section for gradle module is completely redundant with the parent pom. It can be removed and will generate the same report. 2015-09-05 23:15:35 -07:00
Anthony Whitford
064236ed5b Added Dependency plugin to Reporting section because it has an excellent Dependency Analysis Report. 2015-09-05 22:56:36 -07:00
Anthony Whitford
2a50dcba9d Removed Checkstyle and PMD violations. 2015-09-05 22:25:59 -07:00
Anthony Whitford
f7974b324b Exclude generated HelpMojo.java file from Checkstyle analysis. 2015-09-05 22:25:38 -07:00
Jeremy Long
3bb716b060 Merge pull request #336 from awhitford/Timing
Added time measurements for key steps.
2015-09-05 21:08:05 -04:00
Jeremy Long
39e465261f Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-09-05 21:07:47 -04:00
Jeremy Long
784b78b17c added another timer to pull #336 2015-09-05 21:07:29 -04:00
Jeremy Long
22c68ed8ef Merge pull request #331 from wmaintw/master
add compatibility supports
2015-09-05 21:00:15 -04:00
Jeremy Long
c4c670a3b1 Merge pull request #334 from awhitford/MavenPluginWarnings
Removed deprecated code.
2015-09-05 20:59:05 -04:00
Jeremy Long
17a05cc1d4 removed excessive logging used to debug 2015-09-05 20:56:54 -04:00
Jeremy Long
d452c5fabb fixed shift operator per issue #335 2015-09-05 20:56:18 -04:00
Jeremy Long
2cf974ef02 maven-reporting-api cannot be scoped to provided 2015-09-05 07:09:01 -04:00
Jeremy Long
1f0e789575 fixed bug that might contribute to issue #189 2015-09-05 06:48:00 -04:00
Anthony Whitford
92e1fd3f28 Added time measurements for key steps. 2015-09-05 00:31:50 -07:00
Jeremy Long
49736a87aa Merge branch 'awhitford-FixSite' 2015-09-03 05:32:06 -04:00
Anthony Whitford
d009e39842 Removed unnecessary maven-site-plugin dependency, and maven-plugin-annotations dependency is provided. 2015-09-03 01:47:46 -07:00
Anthony Whitford
c2b8901537 Removed deprecated code. 2015-09-03 01:25:53 -07:00
Anthony Whitford
dd910cb5ec Updated plugins. 2015-09-03 00:48:06 -07:00
Jeremy Long
4632753f02 commented out initial attempt at issue #22 to resolve issue #327 2015-09-02 06:42:36 -04:00
Jeremy Long
3fdcd12b4f maven dependencies should be marked as provided per issue #329 2015-09-02 06:05:56 -04:00
ma wei
94d1d611c7 add compatibility supports 2015-09-02 13:45:06 +08:00
Jeremy Long
27b54a0bfa changed taskdef.properties file name 2015-09-01 06:37:44 -04:00
Jeremy Long
1b1ecd0748 split monolithic taskdef into three primary taskdefs 2015-08-31 06:59:57 -04:00
Dale Visser
1e29d2e751 Merge branch 'upmaster' into ruby-bundler
Conflicts:
	dependency-check-cli/src/main/java/org/owasp/dependencycheck/CliParser.java
2015-08-30 15:11:33 -04:00
Dale Visser
a0437bf933 Ruby bunder: Code needed to disable the analyzer in the CLI if desired. 2015-08-30 15:07:21 -04:00
Dale Visser
73e0292a4b Ruby Bundler: Added informative message about updating DB. Switched most log messages to debug level. 2015-08-30 14:52:55 -04:00
Dale Visser
c393e74160 Ruby bundler: Better message and logging when bundle-audit not found. 2015-08-30 14:31:58 -04:00
Dale Visser
80c4666198 Ruby bundler: More method extractions to eliminate monolithic method. 2015-08-30 14:16:32 -04:00
Dale Visser
ea7bd1f700 Ruby bundler: tidied up how extracted method is used. 2015-08-30 14:06:47 -04:00
Dale Visser
b3a55cc85d Ruby bundler: extracted method 2015-08-30 13:57:30 -04:00
Dale Visser
036200350d Ruby bundler: add needed null checks to avoid NPEs. 2015-08-30 13:50:22 -04:00
Jeremy Long
e630c484ff implementing the purge feature as requested in issue #328 2015-08-30 07:02:26 -04:00
Dale Visser
713e9658c5 Ruby bundler: got description working. Added boilerplate text describing differences from standard D-C vulnerability report. 2015-08-29 12:29:44 -04:00
Dale Visser
782039810e Ruby Bundler: Added URL to report. 2015-08-29 11:33:16 -04:00
Dale Visser
b473d8ab9c Ruby Bundler: Added URL to report. 2015-08-29 11:28:38 -04:00
Dale Visser
2eb6918fb3 Ruby Bundler: Clean up report a little bit, and grouped vulnerabilities under dependencies, when appropriate. 2015-08-29 11:06:24 -04:00
Jeremy Long
29626666a7 removed debug logging 2015-08-29 08:38:49 -04:00
Jeremy Long
dc41c9a671 Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-08-29 08:02:42 -04:00
Jeremy Long
83af70bb59 corrected argument name for the purge nvd option 2015-08-29 07:57:54 -04:00
Jeremy Long
b293873640 finished deprecating the application name argument in favor of project name per issue #320 2015-08-29 07:12:40 -04:00
Jeremy Long
8bb92815cb added argument to purge local NVD per issue #328 2015-08-29 06:58:13 -04:00
Jeremy Long
7a8f7199c8 renaming app argument to project per issue #320 2015-08-29 06:48:52 -04:00
Dale Visser
6f4ce34840 Ruby Bundler: Added CVSS score and a little hack to avoid dependency bundling. 2015-08-28 21:31:01 -04:00
Dale Visser
8853552161 Ruby Bundler: Successfully adding vulnerability into report, though all displayed info not looking great. 2015-08-28 19:56:35 -04:00
Dale Visser
95d3d17d83 Ruby Bundler: Now successfully creating temp files for dependency objects. 2015-08-28 13:58:49 -04:00
Jeremy Long
3594280b04 Merge pull request #326 from dwvisser/doc-updates
Added previously overlooked documentation for CMake, Node.js and Ruby Gems Analyzers
2015-08-28 06:12:54 -04:00
Jeremy Long
1e447c6e3e Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-08-28 05:27:16 -04:00
Jeremy Long
c41a288280 added null checks 2015-08-28 05:27:00 -04:00
Dale Visser
a0492fe944 Merge branch 'upmaster' into ruby-bundler
Conflicts:
	dependency-check-core/src/main/resources/META-INF/services/org.owasp.dependencycheck.analyzer.Analyzer
2015-08-27 14:05:36 -04:00
Dale Visser
1fffebd497 Docs: Added Ruby Gemspec analyzer page, fixed typos on Node.js page. 2015-08-26 14:40:36 -04:00
Dale Visser
62c05049a7 Docs: Added node.js page, fixed typos in Python page. 2015-08-26 14:25:32 -04:00
Dale Visser
0fdf377d45 Docs: Added CMake analyzer page. 2015-08-26 14:11:30 -04:00
Dale Visser
6ca8e2644a Docs: Fixed sidebar links to OpenSSL and Python analyzer pages. 2015-08-26 13:59:28 -04:00
Dale Visser
4a3061db6d Docs: Added CMake to landing page, and links to Autoconf and CMake. Added missing analyzers to analyzers list. Shortened my analyzer URLs, though not all in site index yet. 2015-08-26 13:54:15 -04:00
Dale Visser
61ac81518a Docs: Added Ruby and Node.js to landing page. Added table row for Node.js in Analyzers list. 2015-08-26 12:27:38 -04:00
Jeremy Long
acd4b4371d Merge pull request #323 from wmaintw/master
Implement the nested configuration for proxy and cve related settings
2015-08-26 06:05:38 -04:00
Jeremy Long
1d20291d44 Merge branch 'dwvisser-node-js-analyzer' 2015-08-26 06:03:32 -04:00
Dale Visser
c60245ea2b Node.js Analyzer: Switched from org.json to Glassfish JSR 353 reference implementation. 2015-08-25 17:28:17 -04:00
Dale Visser
9e25480baa Merge branch 'upmaster' into node-js-analyzer
Conflicts:
	dependency-check-cli/src/main/java/org/owasp/dependencycheck/App.java
	dependency-check-cli/src/site/markdown/arguments.md
	dependency-check-core/src/main/resources/META-INF/services/org.owasp.dependencycheck.analyzer.Analyzer
2015-08-25 13:03:12 -04:00
ma wei
facd803943 update README file 2015-08-25 23:17:12 +08:00
ma wei
05c8a6282d upgrade to 0.0.7 2015-08-25 23:06:34 +08:00
ma wei
3f9ae34203 refactor: change method name for override settings 2015-08-25 19:50:50 +08:00
ma wei
afb85309a2 implement nested configuration for CVE settings 2015-08-25 19:49:03 +08:00
ma wei
2c5e64d0d5 update README for configuration change 2015-08-25 19:17:55 +08:00
ma wei
ddb8c432be implement the nested configuration for proxy settings 2015-08-25 19:11:27 +08:00
Jeremy Long
054be314f6 added targetCompatibility = 1.7 per issue #321 2015-08-25 06:13:29 -04:00
Jeremy Long
e484c5754e Merge pull request #312 from dwvisser/rubygems-analyzer-pr
Rubygems analyzer
2015-08-25 05:31:10 -04:00
Jeremy Long
b36c4f65e5 Merge pull request #322 from wmaintw/master
Remove duplicated configuration items in DependencyCheckTask
2015-08-25 05:28:34 -04:00
Jeremy Long
4bdfbcc916 Merge pull request #316 from dwvisser/iso-scanning
Help for scanning ISO images on Linux, Mac OS X, and Windows
2015-08-25 05:27:10 -04:00
ma wei
519198bb61 Merge remote-tracking branch 'upstream/master' 2015-08-24 22:29:28 +08:00
ma wei
9a7c342f91 modify spec for testing project extension 2015-08-24 22:25:03 +08:00
ma wei
761a5ed3dd remove duplicated configuration items in DependencyCheckTask 2015-08-24 22:17:16 +08:00
Jeremy Long
481e753ad4 corrected spring-security false positives per issue #319 and #311 2015-08-23 06:45:35 -04:00
Dale Visser
271016f0fa Added verbose flag to get as much reportable info as possible. 2015-08-19 15:33:50 -04:00
Dale Visser
4493f895c6 Added test resources to cover interesting bundle-audit cases. 2015-08-19 15:26:17 -04:00
Dale Visser
5c32ecd8e1 Ruby Analyzer: Added bundle-audit analyzer. So far just launches if available and logs the output. 2015-08-18 16:59:39 -04:00
Dale Visser
0b5244d321 Markdown escape * character fix 2015-08-18 12:37:09 -04:00
Jeremy Long
b6f9715174 Merge pull request #318 from dwvisser/code-inspection-fixes
Random fixes to issues found by IntelliJ IDEA code inspection.
2015-08-17 19:46:41 -04:00
Dale Visser
2db1f8d2b6 Random fixes to issues found by IntelliJ IDEA code inspection. 2015-08-17 18:55:51 -04:00
Dale Visser
4c5957ae40 ISO scanning: Fixed slight errors in Python file types, and made formatting consistent. 2015-08-17 14:49:24 -04:00
Dale Visser
38cd19de15 ISO scanning: Added clarification on what can be scanned. Fleshed out file type analyzers page with details. Re-ordered side menu alphabetically to match. 2015-08-17 12:16:45 -04:00
Jeremy Long
f66ffbdd63 Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-08-16 06:25:02 -04:00
Jeremy Long
8d3f08e529 fixed links 2015-08-16 06:24:08 -04:00
Jeremy Long
4209c1c406 Merge pull request #315 from recena/master
Fixed links
2015-08-16 06:17:24 -04:00
Dale Visser
1cd12d0a0c Documentation giving help for scanning ISO images on Linux, Mac OS X, and Windows. 2015-08-14 13:51:38 -04:00
Manuel Recena
7eb18e1931 Fixed links 2015-08-14 12:33:47 +02:00
ma wei
d308e50e1e remove duplicated plugin properties file 2015-08-14 17:12:28 +08:00
Dale Visser
88569cb369 rubygems: Finished command-line interface integration. 2015-08-12 12:08:05 -04:00
Dale Visser
235869fc79 rubygems: Reformat and consisitent parameter naming in private methods. 2015-08-12 12:08:05 -04:00
Dale Visser
89166e81fb rubygems: Add summary to evidence, inline constants that were only being used once. 2015-08-12 12:08:05 -04:00
Dale Visser
2d109b81cf rubygems: Used substring(int) to remove the need for Matcher.find(int).
Also fixed javadoc, made some variables final, shortened a variable name.
2015-08-12 12:06:18 -04:00
Dale Visser
5c02b4dccb rubygems: Added new analyzer to META-INF/services. Confirmed correlation with CPE in CLI. 2015-08-12 12:06:18 -04:00
Dale Visser
e7f154b58d rubygems: Various refactoring improvements. 2015-08-12 12:00:56 -04:00
Dale Visser
c0752575c6 rubygems: All evidence assertions now passing. 2015-08-12 12:00:43 -04:00
Dale Visser
7eb2c89f39 rugygems: Added gemspec test resources, test cases, and minimal code to run tests and have evidence gathering test fail. 2015-08-12 11:58:46 -04:00
Dale Visser
bf4eb07342 Node.js: Added missing command-line option for disableing Node.js analyzer. 2015-08-11 15:27:20 -04:00
Jeremy Long
c856d01b52 removed un-needed dependencies 2015-08-09 16:05:14 -04:00
Dale Visser
7a535b2576 node.js: Added parent folder to display file name. Added try-catch for JSONException, logging warning message in that case. 2015-08-09 11:32:57 -04:00
Dale Visser
4b17fd88a3 node.js: Adding name_project to vendor evidence, as many node.js projects seem to follow this pattern with their CPEs. Also, logging warnings whenever JSON parse doesn't go as expected. 2015-08-09 11:18:16 -04:00
Jeremy Long
8d1f3f723f version 1.3.1-SNAPSHOT 2015-08-09 10:25:44 -04:00
Jeremy Long
a543fbbec9 added an additional attempt to remove the temporary directory 2015-08-09 10:25:30 -04:00
Jeremy Long
37f50db00e removed related dependencies from hashCode and equals to resolve issue #293 2015-08-09 09:56:20 -04:00
Jeremy Long
ccb87f43b7 made suppression notes textarea readonly to resolve issue #306 2015-08-09 09:36:55 -04:00
Jeremy Long
d569f39f53 Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-08-09 09:10:32 -04:00
Jeremy Long
fb3951772f fixed errors due to null values per issue #309 2015-08-09 09:10:18 -04:00
Jeremy Long
2c00bf4040 Merge pull request #305 from wmaintw/master
[new pull request] Implement configuration item "quickQueryTimpstamp" in grade plugin
2015-08-07 18:26:03 -04:00
Dale Visser
4f8772bd77 node.js: Added parameter to cli. 2015-08-07 16:10:56 -04:00
Dale Visser
b4c3046ab5 node.js: Added package.json eveidence gathering, using json.org package for the parsing. 2015-08-07 15:41:01 -04:00
Dale Visser
2441b92bc6 node.js: Initial commit, with analysis test failing. 2015-08-07 14:43:08 -04:00
ma wei
c39eec32f2 ignore gradle generated temporary files 2015-08-07 10:14:34 +08:00
ma wei
7837718d04 update README file 2015-08-07 10:13:53 +08:00
ma wei
7069671471 fix issue that fail to publish gradle plugin to gradle plugin portal 2015-08-07 10:13:27 +08:00
ma wei
d1dbde2890 fix issue that fail to publish gradle plugin to maven central 2015-08-07 10:13:00 +08:00
ma wei
0472471ac9 update the gradle plugin version to 0.0.6 2015-08-07 10:11:34 +08:00
ma wei
62a0b8da90 add configuration, let user has ability to control HTTP method used during the update process to avoid proxy problem 2015-08-07 10:09:40 +08:00
ma wei
810530fabd upgrade dependency check core and utils version to 1.3.0 2015-08-07 10:08:37 +08:00
Jeremy Long
707de56612 Merge pull request #302 from dwvisser/290-add-bz2-format
Add bzip2 format to ArchiveAnalyzer
2015-08-06 07:02:21 -04:00
Jeremy Long
921b0eb229 Merge pull request #301 from dwvisser/run-against-cached-db-pr
Help page for how to use multiple local snapshots of the NVD
2015-08-05 22:54:33 -04:00
Jeremy Long
9afb92f0ed Merge pull request #303 from colezlaw/homebrew-cli-instructions
Added homebrew installation instructions
2015-08-05 22:52:36 -04:00
Will Stranathan
1ded88e089 Added homebrew installation instructions 2015-08-05 20:58:20 -04:00
Dale Visser
1f074ff400 290: Further refactoring for readability. 2015-08-05 17:42:25 -04:00
Dale Visser
4764f61b48 290: Added unit tests and implementation to support bzip2. 2015-08-05 17:42:10 -04:00
Dale Visser
56424924bb 290: Extracted some methods to reduce average method size, and eliminate some duplicate code. 2015-08-05 17:42:10 -04:00
Dale Visser
4c3831ec74 Removed superfluous phrase. 2015-08-05 12:03:21 -04:00
Dale Visser
ba564a6aed Added page to site that documents how to take daily snapshots of the NVD,
and run D-C cli against those snapshots.
2015-08-05 11:57:23 -04:00
Jeremy Long
d529e88242 version 1.3.0 2015-08-04 21:19:19 -04:00
Jeremy Long
5d6ad8bc6c added gradle to the site 2015-08-04 14:07:34 -04:00
Jeremy Long
01769a6f38 added gradle to the site 2015-08-04 14:07:15 -04:00
Jeremy Long
a43cc38739 added logo 2015-08-04 12:07:11 -04:00
Jeremy Long
085069c2c7 added logo 2015-08-04 12:06:55 -04:00
Jeremy Long
816a6d057a updated so that *.sh files are marked as executable 2015-08-02 07:24:36 -04:00
Jeremy Long
19ab099f98 added 0755 to *.sh 2015-08-02 07:10:20 -04:00
Jeremy Long
99a1097953 making the world a better place - avoid the hate #287 2015-08-02 06:54:10 -04:00
Jeremy Long
673cf7018b initial gradle site documentation 2015-08-02 06:33:45 -04:00
Jeremy Long
624f52882e modified how generated keys were returned in an attempt to resolve issue #296 2015-08-02 06:28:05 -04:00
Jeremy Long
654ab4a289 added cleanup steps to remove temp resources, etc. 2015-08-01 07:01:50 -04:00
Jeremy Long
ec86dc5734 changed packaging 2015-08-01 07:01:05 -04:00
Jeremy Long
44f37c12c3 checkstyle corrections 2015-08-01 06:49:55 -04:00
Jeremy Long
d0b704d7f4 corrected data directory path when running test cases 2015-08-01 06:08:35 -04:00
Jeremy Long
7452942091 Merge pull request #297 from dwvisser/broken-cli-docs-link
Fixed broken link to CLI instructions in main project README.
2015-08-01 05:52:00 -04:00
Dale Visser
ea4ea680a2 Fixed broken link to CLI instructions in main project README. 2015-07-31 10:28:55 -04:00
Jeremy Long
ac7ae3d8df disabled test case for JDK6 to resolve issue #294 2015-07-31 05:28:53 -04:00
Jeremy Long
4fa5f2ac72 reverted plugin-plugin version to resolve issue #294 2015-07-31 05:28:18 -04:00
Jeremy Long
8b1a44fe42 Merge pull request #295 from colezlaw/issue-294
Removed i18n for SLF4J logging as it was preventing build on jdk1.6
2015-07-30 05:35:46 -04:00
Will Stranathan
c4d26f9194 Removed i18n for SLF4J logging as it was preventing build on jdk1.6 2015-07-29 18:29:09 -04:00
Jeremy Long
79b59f2aae checkstyle/pmd/findbugs recommended updates 2015-07-29 07:00:30 -04:00
Jeremy Long
1eecd13ea7 Merge branch 'master' of github.com:jeremylong/DependencyCheck 2015-07-28 06:33:52 -04:00
Jeremy Long
1ae3a63f5c final tested patch for issue #285 2015-07-28 06:33:40 -04:00
Jeremy Long
561694a991 Merge pull request #292 from willis7/master
Fix bug introduced with #282
2015-07-28 06:07:48 -04:00
Jeremy Long
096af016ef documented shallow clone per issue #283 2015-07-28 05:40:08 -04:00
Sion Williams
498835015a outputDirectory should have been called using the method rather than directly calling the property. This now fixes the failing integration test in the last commit. 2015-07-27 22:33:39 +01:00
Sion Williams
cafa0d6578 Integration test spec proves outputDirectory value is not being honoured when changed using dsl. 2015-07-27 22:03:19 +01:00
Jeremy Long
5444253ed6 added more CVSS details per issue #154 2015-07-27 06:56:23 -04:00
Jeremy Long
d0ae12a167 working patch for issue #285 2015-07-27 06:53:50 -04:00
Jeremy Long
e323c7f810 patch for issue #285 2015-07-25 07:18:33 -04:00
Jeremy Long
dd3758af43 manually merged PR #270
Former-commit-id: 9d4504942f229a7462d59b292e478ea2289ecfed
2015-07-24 06:44:54 -04:00
Jeremy Long
94ae6e76f1 manually merged PR #282
Former-commit-id: cf2ae5572602f7258b4c617097ab003fe3f644c6
2015-07-24 05:50:55 -04:00
Jeremy Long
ee969a5ed9 manually merged PR #278
Former-commit-id: 7811e5832e680589e5b1734e775ee8cab92dd30f
2015-07-24 05:36:32 -04:00
Jeremy Long
a547a219a4 grammar police caught me (#285)
Former-commit-id: 83a94b573aea686ba8cc8c6620e1495c46cd425b
2015-07-23 05:16:39 -04:00
Jeremy Long
d4eba634ea reduced logging levels in test as build issue was resolved
Former-commit-id: e1c8cd3ef9f19d5c0d17dc59d6feed6474118602
2015-07-22 06:45:17 -04:00
Jeremy Long
0927897451 documented argument for new config option to limit symbolic link depth per #285
Former-commit-id: cf8775d8d539c37e68f7c34692aa5c249b4cef26
2015-07-22 06:44:51 -04:00
Jeremy Long
63e5a2c5ba initial patch to add symbolic link depth per issue #285; more testing needs to be performed
Former-commit-id: bc40f8cfc1410c46e402ce6931e53f377b5c60ee
2015-07-22 06:43:52 -04:00
Jeremy Long
a7f3f1d806 initial patch to add symbolic link depth per issue #285; more testing needs to be performed
Former-commit-id: f0fb24c29703f7ec390f94560a224adf936f898c
2015-07-22 06:43:41 -04:00
Jeremy Long
97d3a2986c corrected merge conflict
Former-commit-id: 5653364b7053ae119dd2d0a604258ccd80f4a061
2015-07-21 07:06:11 -04:00
Jeremy Long
d3b20757ef changed to BaseDBTest instead of BaseTest to reesolve build errors per issue #273
Former-commit-id: 392b26cac4595d6dd6c9a4ffbd2d76f851c8c7ed
2015-07-21 07:04:39 -04:00
Jeremy Long
d99804f14e Merge pull request #284 from dwvisser/remove-dependency-extension-property
Remove dependency file extension property

Former-commit-id: 4f21b07f05c0ff74918d1394afaa7cedd693ecf0
2015-07-20 05:35:49 -04:00
Dale Visser
1b8dc71980 Merge branch 'upmaster' into remove-dependency-extension-property
Former-commit-id: b06adaf9fa3031c27be08523b9689ae58d0cc322
2015-07-19 08:06:43 -04:00
Jeremy Long
dc466f1480 set objects to null after closing them
Former-commit-id: 3d62a1b66741d69730e39413b8d99b670d744b50
2015-07-19 06:21:30 -04:00
Jeremy Long
ba6a783834 update to close to set objects to null
Former-commit-id: 9c1caaeca9ca0a472180eb6bf4bb7a7c7fba6e6e
2015-07-19 05:49:06 -04:00
Jeremy Long
b2edf5683c minor reformat
Former-commit-id: b5431379bfd281a25a11cd17c203bfbe294c55a8
2015-07-19 05:48:27 -04:00
Jeremy Long
dacb91b9a8 cleaned up test cases to properly close the DB
Former-commit-id: 7333e882aebfe54b94a4d70cdb55ca2fbd3f3c51
2015-07-17 15:31:00 -04:00
Jeremy Long
7ac71a7b2a additional logging
Former-commit-id: 6c91f3482dfe9980d33b1b8ac6c43c6988c08e60
2015-07-17 15:30:31 -04:00
Jeremy Long
4b44bb5426 modified test case
Former-commit-id: 5499e7a8021b0b24d4db640e1381a94d9c02dc0c
2015-07-17 15:29:57 -04:00
Jeremy Long
8cd68c7c16 improved logging
Former-commit-id: 5b6741a1d561cbf4c20ef98907ce99a2b245b42e
2015-07-17 08:45:43 -04:00
Jeremy Long
0ae228d6f8 added try/catch to tests to correctly close the db
Former-commit-id: 8f71f57a7724340a8526a35bd0e42748f02530c5
2015-07-17 08:45:33 -04:00
Jeremy Long
6a2ed23822 switched to debug logging in test
Former-commit-id: 4d42f08ac2fdc58ce1eeb4ab3f27d1efa72a6a46
2015-07-17 08:24:33 -04:00
Jeremy Long
fe0035fe0e fixed namespaces
Former-commit-id: 8f6f3361021b2efc1843ae93ed1bab44e5f053a4
2015-07-16 07:00:17 -04:00
Jeremy Long
aeabaf8513 fixed failing test due to renaming the schema
Former-commit-id: 2cbc4b84cb28e72c163cde3b2d1e5f8c66ae5b42
2015-07-16 06:51:40 -04:00
Jeremy Long
43907e07c2 Merge pull request #279 from dwvisser/fix-properties-file
Eliminated duplicate key in dependencycheck.properties file

Former-commit-id: a5fcb23d750c366340c8a6af801b9ac6e9ac19b8
2015-07-15 08:20:27 -04:00
Jeremy Long
2413dc9a41 corrected package
Former-commit-id: 3d7e08e0730cb6c03eb43221dc77afc3b1a3c2d3
2015-07-15 08:18:02 -04:00
Dale Visser
2d92c9d240 Commented out first instance of cpe.url, and moved 2nd instance up. Assumption: the 2nd value was being used.
Former-commit-id: 2cae0ca086b2fb666d883dc1a3fbcb174465aa2b
2015-07-14 18:00:45 -04:00
Jeremy Long
a24813b678 updated schema and xml report to include the confidence and type of evidence
Former-commit-id: 774764585a15d8d78a615f20f91c3a8aaaf4abb2
2015-07-14 08:01:22 -04:00
Jeremy Long
dffb2887d6 added task to copy xsd to the site
Former-commit-id: ec6bffd48bc2b98cb5b992ebcc0862e89897c255
2015-07-14 08:00:42 -04:00
Jeremy Long
68f1c1a54c changed display code so that all evidence is shown instead of just the used evidence
Former-commit-id: e01f14f244960ddccbd859bf50c0603abe5170d1
2015-07-14 07:48:07 -04:00
Jeremy Long
726aa7b894 changed tooltip header on evidence count
Former-commit-id: fdf92f87a81d985fd01b19d5ce04517c81608a62
2015-07-14 07:41:19 -04:00
Jeremy Long
44c795cd4f patched to resolve issue #261
Former-commit-id: 44ace36f4a02885134a0af0fb44d11d351d8c7f6
2015-07-11 07:15:08 -04:00
Jeremy Long
4d5d46d08a Merge pull request #274 from dwvisser/openssl-source-analyzer
OpenSSL source analyzer

Former-commit-id: cc2f02f3722b7480f0ec5f7979892b78dc4076d1
2015-07-11 06:29:55 -04:00
Jeremy Long
52cdff14bd minor update
Former-commit-id: 074158f04f25d94c003f970a0d7c4b4c0180fc0b
2015-07-11 06:04:55 -04:00
Jeremy Long
0372167f25 updated documentation to resolve issue #268
Former-commit-id: 78f6158c5c053a7595dd2dc702c015c257a2a00f
2015-07-11 06:02:46 -04:00
Dale Visser
005e401c7f Remove fileExtension property from Dependency class.
Former-commit-id: fc6303c6c835724fe61f882a9df5e2247c7a9b3e
2015-07-10 13:48:27 -04:00
Jeremy Long
479212dd60 Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 2e6f7993d6389db4bf7957928ae4772a9cc54887
2015-07-10 07:10:34 -04:00
Jeremy Long
0af9239906 added CVE URL arguments per feature request #268
Former-commit-id: a33128070eb9bcc365de1788ebc84c187731568d
2015-07-10 07:10:13 -04:00
Jeremy Long
13d871ab21 Merge pull request #277 from hmolsen/patch-1
fix broken link to suppression site

Former-commit-id: cc663d3a7fdbe4fc952cfa255181ef505f2fe2ce
2015-07-10 06:44:22 -04:00
Jeremy Long
136830ce22 cleaned up logging
Former-commit-id: d9614a2a309e17ceab628b2258f78da0b792a5a8
2015-07-10 06:13:41 -04:00
Jeremy Long
afe8e343b1 test code to run on cloudbees to debug a build issue
Former-commit-id: b3bba62d28666160682ea15813ea80411f72f9a0
2015-07-10 05:56:55 -04:00
hmolsen
f7c2cdff9b fix broken link to suppression site
Former-commit-id: e6c6a4a990da7cd9360654a7b9d12fa15d2d4dd5
2015-07-10 10:33:59 +02:00
Dale Visser
a7abe97ca0 OpenSSL: Forgot to 'git add' new files in previous commit.
Former-commit-id: 7219edc255d239995d5bbb5cbe587e999a7160a8
2015-07-09 17:13:03 -04:00
Dale Visser
5354137c76 OpenSSL: Site doc additions, including about Autoconf analyzer.
Former-commit-id: 35253cfbf5cfcf04b2f3fe39f0891cd0bf1155b4
2015-07-09 17:11:06 -04:00
Dale Visser
433c2e5916 OpenSSL: Updates to use FileFilter instead of file extension.
Former-commit-id: 974bc28171b5b3ac3e772c93447489e1afb797f1
2015-07-09 16:35:04 -04:00
Dale Visser
e5fdda60fc Merge branch 'upmaster' into openssl-source-analyzer
Conflicts:
	dependency-check-core/src/test/java/org/owasp/dependencycheck/analyzer/PythonPackageAnalyzerTest.java

Former-commit-id: 6d92982227ad0ff7c4381d03eb1bf542dfe7697f
2015-07-09 16:14:54 -04:00
Jeremy Long
b227cf890b checkstyle recommended updates
Former-commit-id: 17e3e4580553c07b33533f1e9f6cb5f33177f78e
2015-07-09 07:07:36 -04:00
Jeremy Long
0a4c3102dd reverted changes as a schema upgrade is not needed at this time
Former-commit-id: 6f97fef5748a3d630a73f790cca8baa4753e1d7a
2015-07-09 07:07:10 -04:00
Jeremy Long
54094ebc21 removed unfinished JavaScriptAnalyzer
Former-commit-id: 9d7d7e82da91cea21ea87b8d933093e738571ba2
2015-07-09 06:37:29 -04:00
Jeremy Long
bf3fe6404a reverted changes as a schema upgrade is not needed at this time
Former-commit-id: 22671cb1c7e2e6db26f704f12b5fb86100586221
2015-07-09 06:18:30 -04:00
Jeremy Long
58888ac389 Merge pull request #271 from wmaintw/master
Add ability to dependency-check-gradle plugin for customize CVE urls, report output directory and some bug fixing

Former-commit-id: bd78214d389ae52fab0c0280910469289d7b699c
2015-07-09 06:02:17 -04:00
Jeremy Long
07df8ecc02 Merge pull request #275 from dwvisser/filetype-analyzer-pr
Modify AbstractFileTypeAnalyzer to use FileFilter instead of just file extensions

Former-commit-id: ea2d82e9203f3d3556f7621960bb1e35d839db95
2015-07-09 05:51:37 -04:00
Jeremy Long
c86becb169 Merge pull request #276 from colezlaw/homebrew-instructions
Added homebrew instructions

Former-commit-id: 07b4ce33f2b1e96556761c1e31878180f23dc41e
2015-07-09 05:22:17 -04:00
Will Stranathan
98a43606ce Added homebrew instructions
Former-commit-id: 05167f240768a8136e580544875454b3f2fdbdfe
2015-07-08 22:22:28 -04:00
ma wei
5b2353e612 add license information for these gradle script files
Former-commit-id: 1ecf5c52dc82e1fd55172385f303dc5022bad801
2015-07-09 10:20:12 +08:00
Dale Visser
a3ad598004 OpenSSL: Untested changes to get command-line working.
Former-commit-id: f81a410bba6cbc1b71cb7d5fef121eb4f52a780b
2015-07-08 14:07:17 -04:00
Jeremy Long
c02d1d73b8 Merge branch 'hansjoachim-reporting'
Former-commit-id: 9612b8a07e11bfa93d94b71d079bc98d28a73b87
2015-07-08 06:59:11 -04:00
Jeremy Long
77c99e1d7c Merge branch 'reporting' of https://github.com/hansjoachim/DependencyCheck into hansjoachim-reporting
Former-commit-id: 272d25200c1635371806df3bc1d7ad7754cba475
2015-07-08 06:48:14 -04:00
Jeremy Long
055d34818a updated documentation to resolve issue #269
Former-commit-id: ae4668c9182f181f1c01c17e0737b892fe8078ba
2015-07-08 06:39:37 -04:00
Jeremy Long
3a06503b74 commented out test case
Former-commit-id: c62a28c8a39c42e6c458387c03445c86deb6454c
2015-07-08 06:32:52 -04:00
Jeremy Long
cae15a8d7a updated javadoc
Former-commit-id: 264561aed2a9e138d97c4f06c5e27df5b8acf7e9
2015-07-08 06:32:20 -04:00
Jeremy Long
70554d1158 removed Cpe Updater as it will not currently be used
Former-commit-id: 2d9d5a2082dc386697557943e46399c31633ffbc
2015-07-08 06:31:41 -04:00
Jeremy Long
db42da14d1 updated documentation
Former-commit-id: f4b200a38c5df345cd5714c4dbf624af57b40481
2015-07-08 06:31:08 -04:00
Jeremy Long
9daa9b6cca reorganized code, made the database file name version independent so that upgrades can be made, and implemented a CPE updates per issue #149
Former-commit-id: fdb57afa28ecffdb7ca90971851844718ecb8bb9
2015-07-08 06:20:19 -04:00
Dale Visser
30087b5e79 OpenSSL: Minor code edits/refactoring.
Former-commit-id: 5c0247772406b55a0e1e7219b83389a5ed0605f4
2015-07-07 17:48:50 -04:00
Dale Visser
c214b70459 OpenSSL: Analyzer unit test passes.
Former-commit-id: 06d36762375a5fc55bc7f30a7857713ce332fceb
2015-07-07 17:37:31 -04:00
Dale Visser
ad0b6c28ba Added long hexadecimal to version string conversion function, and passing unit test.
Former-commit-id: 846e2a3c07016974c396770397304875fd36b7f6
2015-07-07 16:48:38 -04:00
Dale Visser
8127dc2620 OpenSSL: Initial skeleton of OpenSSLAnalyzer and unit test suite. Fixed package imports in PythonPackageAnalyzerTest.java
Former-commit-id: b27fa07cde451c0a19e5ce3f2d46701f02dda47e
2015-07-07 15:51:33 -04:00
ma wei
fed5d3efc0 add read-me info about customize report output directory
Former-commit-id: be8ba701e31f0c90fd686e90ebbf752b96665521
2015-07-07 14:08:48 +08:00
ma wei
ed3c806869 update the version of dependency-check-gradle to 0.0.5
Former-commit-id: facbe13d3bd077b5540e8c20d6b3b1bb3d1b4e3f
2015-07-07 13:57:15 +08:00
ma wei
b8a32eb086 add ability for customize report output directory
Former-commit-id: fdf53b2768ecd38f16de676ddd35e63fcd1cfad0
2015-07-07 13:45:55 +08:00
ma wei
e537ce155e upgrade the version of dependency check utils
Former-commit-id: 34ef2d92888cf2e108cc0759fd1ba04fb795abe3
2015-07-07 13:45:21 +08:00
Dale Visser
be506964b0 Fixed javadoc. Some reformatting of FileFilterBuilder.
Former-commit-id: 66a81beb1f1361b16743a762f6941dfef626ca4a
2015-07-06 14:16:44 -04:00
Dale Visser
df39b490f5 Made extension file filtering case-insensitive.
Former-commit-id: e7bc80227edcf0d4fb9503eb39d43260b7db028e
2015-07-06 13:50:00 -04:00
Dale Visser
e3256e4bb9 Removed unused imports from AbstractFileTypeAnalyzer.
Former-commit-id: 79af85c863a4b64a113f88c3bab75ba038bcec0b
2015-07-06 13:44:08 -04:00
Dale Visser
4d01d636cc Changed AbstractFiletypeAnalyzer to expose getFileFilter() instead of getSupportedExtensions(), and
refactored existing implementations to return a FileFilter instance. The new FileFilterBuilder class
encapsulates building of a filter that can consider the full filename or other attributes, in addition
to file extension.


Former-commit-id: 9c968c77cc2285d571d38b1a8486d05b09b12aa4
2015-07-06 13:35:49 -04:00
Hans Joachim Desserud
1bf07036e8 Merge branch 'master' into reporting
Conflicts:
	dependency-check-cli/pom.xml

Former-commit-id: f381a7191effbe65f852c76e5e19033e4a264171
2015-07-06 18:36:49 +02:00
Jeremy Long
da058fcaf5 corrected naming of cpe part update
Former-commit-id: 1e7e29ac28d576c495f96713277eaa7c1b705cfc
2015-07-05 06:24:55 -04:00
Jeremy Long
7203c91c70 corrected naming of cpe part update
Former-commit-id: aaac06bda3480c23d663f25b1feac34dc57032b9
2015-07-05 06:09:17 -04:00
Jeremy Long
44893a2a2c added CPE entries to patch issue #149
Former-commit-id: 472d5456e6a8a9d569908ce8da4f64d05afa96c7
2015-07-04 06:40:39 -04:00
Jeremy Long
bdf2ca6e1d added CPE entries to patch issue #149
Former-commit-id: 2bd88a3823d5889ad12952fc3f344e69d571ad05
2015-07-04 06:39:54 -04:00
Jeremy Long
621ac3b6ec changed logging level on one delete temp file log entry
Former-commit-id: 2f73b9a97a641bb86b73db76dc82d5e84cde9e17
2015-07-04 06:38:39 -04:00
Jeremy Long
9fbf8b58a1 added archive.scan.depth
Former-commit-id: 4582ae764582a0435b6f672ed86393d37f8e3d05
2015-06-29 06:24:43 -04:00
Jeremy Long
70ac55f983 Merge pull request #264 from dwvisser/evidence-hashcode-contract
Evidence class compliance with Object.hashCode() contract

Former-commit-id: 94898beb75c867b58a5f8a1cd879b7b47ab47cb5
2015-06-29 06:12:17 -04:00
Jeremy Long
890bb4a2c3 changed how specification version is handled to resolve 262
Former-commit-id: c902d0683bec70a8254c7110e14b14bf0f3ad54a
2015-06-28 07:08:36 -04:00
Dale Visser
888f2aed97 Replaced ternary expression with ObjectUtils.equals(), and reformatted using IDE.
Former-commit-id: e72ba88f6e4d29cb00288c34a9d413e455f26b16
2015-06-24 15:38:03 -04:00
Dale Visser
e6707c65a5 Made magic number constants private.
Former-commit-id: 12539d50efb17790b770934d10b953e0fd180c8a
2015-06-24 15:25:03 -04:00
Dale Visser
414912de67 Replaced private method with ObjectUtils.compare().
Former-commit-id: 16c4a5a7ed74819351bab55528442183a3244a0c
2015-06-24 15:19:24 -04:00
Dale Visser
723ba740e0 Repleced testEquality() with StringUtils.equalsIgnoreCase().
Former-commit-id: 559413b9fef79fddbb85bcebda3ed0ca76c908dd
2015-06-24 15:12:15 -04:00
Dale Visser
e2389b4992 Replaced private method with calls to StringUtils.equalsIgnoreCase()
Former-commit-id: d4c92115e6f90109bfae9487ef3f4c829bf22232
2015-06-24 15:01:32 -04:00
Dale Visser
39e587085f Replaced private method with equivalent ObjectUtils.equals() call.
Former-commit-id: 9d460788899a3cb6e0891d63e39f50c3f96fc385
2015-06-24 14:57:10 -04:00
Dale Visser
42e77c77a9 More expressive/readable code using commons-lang.
Former-commit-id: bf24d6d4672c57fdbe6c1f113ddb25628ec97db4
2015-06-24 14:48:48 -04:00
Dale Visser
e8353089f3 Made hashCode() implement satisfy the Object.hashCode() contract, i.e., a.equals(b) implies a.hashCode() == b.hashCode()
Former-commit-id: 9f347a57b740b572d2d6a9a9e523de44e384773e
2015-06-24 14:41:20 -04:00
Jeremy Long
d76799cfd0 changed a warning log message to debug
Former-commit-id: dee9cc935de19052dc0d25b927b6dc4b5948504c
2015-06-24 06:16:12 -04:00
Jeremy Long
4907c20ba6 Merge pull request #263 from dwvisser/engine-javadoc
Added explanatory text to analyzeDependencies() javadoc. 

Former-commit-id: a23881a1e1d2b8c247176acb525f2e9ade601cca
2015-06-24 06:00:35 -04:00
Dale Visser
fa16a960a5 Added explanatory text to analyzeDependencies() javadoc. Fixed IDE warning about unnecessary ternary expression. Slight code reformat.
Former-commit-id: 2b2887308c853cae85a4a6f9572e3fde20f0c990
2015-06-23 11:56:09 -04:00
Jeremy Long
aa66e5ab15 removed unused JUL properties file
Former-commit-id: e02cb926d9c52fbd6f8e99dc612dea6707fac51a
2015-06-22 05:54:18 -04:00
Jeremy Long
802e4fc238 changed default logging for tests to INFO
Former-commit-id: 45b4dc2707e0a267d2ef41a84627c5fee5ba92f1
2015-06-22 05:53:51 -04:00
Jeremy Long
2494fec2a7 checkstyle/findbugs/pmd corrections
Former-commit-id: 7e1758362e3e3da13678e5e2a8bffa28b8ad5a87
2015-06-22 05:53:11 -04:00
Jeremy Long
13db27854b logback test configuration
Former-commit-id: f7af8edab353b7900eb20f088707ad9c38d9330e
2015-06-21 20:12:31 -04:00
Jeremy Long
190e17e6b9 converted to logback instead of slfj-simple
Former-commit-id: ad06d3bf039bbb30b1f10ce2ae5861000b1c05f6
2015-06-21 20:11:27 -04:00
Jeremy Long
02acd3162e removed simplelogger references
Former-commit-id: 5ab1de428d8d69a9d3f7bd8e80af0779f46b1fa0
2015-06-21 20:11:03 -04:00
Jeremy Long
47fa6e67d9 converted to logback instead of slfj-simple
Former-commit-id: 1b3854eeb5ad098931d5603b5206d88a900176da
2015-06-21 20:10:23 -04:00
Jeremy Long
aba7b47fa8 removed logback-classic version number because it is in dependency-management
Former-commit-id: 231224b23957508f2084ec06f1debf09b6513b90
2015-06-21 20:09:14 -04:00
Hans Joachim Desserud
c1ae4f8cc2 Replaced version numbers for reporting plugins in maven module
Former-commit-id: e7ec67e0692d4233a2d6d651f50b0cd250c4587b
2015-06-21 17:52:48 +02:00
Hans Joachim Desserud
4f43793e17 Bonus: fixed copyright symbol
Former-commit-id: 49d9f8af2055135238aa656cb69e20089a22e9fe
2015-06-21 17:43:04 +02:00
Hans Joachim Desserud
8fd32ebd5e Replaced version numbers for reporting plugins in cli module
Former-commit-id: c686c6f452ff1c514924d3c7dee59eaac4463af1
2015-06-21 17:42:13 +02:00
Hans Joachim Desserud
0b2059462b Replaced version numbers for reporting plugins in ant module
Former-commit-id: 6eaa38d2988142c07b92e94933564d652b7852d3
2015-06-21 17:31:42 +02:00
Hans Joachim Desserud
b0df41213a Use properties in reporting version numbers in root pom
Former-commit-id: 77b71beee1caeaa94712a8e3392952ea4bc78689
2015-06-21 14:42:15 +02:00
Hans Joachim Desserud
f421f30122 Add (and sync) reporting plugins for jenkins module
Former-commit-id: 0148cb4c9576f800f684299141e2e97b7d493bdd
2015-06-21 14:38:41 +02:00
Hans Joachim Desserud
358ac46393 Replace reporting plugin version numbers with properties in core module
Former-commit-id: dbd8588f6f259e03203700ebc2075fb8b84ff575
2015-06-21 14:27:25 +02:00
Hans Joachim Desserud
ebd98b9094 Move reporting-plugin-version properties to root pom
Former-commit-id: eeff5c2d0f0fce884c3c12b071d030e4f0107302
2015-06-21 14:27:25 +02:00
Hans Joachim Desserud
c713bb0353 Move reporting plugin version numbers into properties
Former-commit-id: a3cbc3ba8647dc2118e6c35f2819c87eb2f98e6f
2015-06-21 14:27:24 +02:00
Jeremy Long
d61a7b090d removed unused import
Former-commit-id: b5fa9e7692183a4244e23206549b63ac809aec94
2015-06-21 07:38:18 -04:00
Jeremy Long
9f1a894b86 removed duplicate slfj4-api
Former-commit-id: 480d6b7a79bfb7a52bd341d9fdef47cb6f9f1c4c
2015-06-21 07:37:59 -04:00
Jeremy Long
cc86d73719 removed unused import
Former-commit-id: 298698b4a56a0fd267ee6bc81e5abe46156b94f6
2015-06-21 07:21:42 -04:00
Jeremy Long
86b1802d16 version for slf4j-api was moved to dependency-managment in parent
Former-commit-id: c7a6567c4b0077a512765beb9ee864b9f7fa5459
2015-06-21 07:21:14 -04:00
Jeremy Long
3cdf66a0a4 removed LogUtils
Former-commit-id: d2507a7a917e0e8f2a9f4e11379aadbbd4540a43
2015-06-21 07:20:36 -04:00
Jeremy Long
faeee200d3 removed unused classes
Former-commit-id: 0f642f99d1ab168a3c97653b5abbda7ab313732a
2015-06-21 07:20:01 -04:00
Jeremy Long
4b34734919 Merge branch 'colezlaw-dependency-management'
Former-commit-id: 221f40ba56ebaa05bbf2f0eb208fdeba03252170
2015-06-21 06:48:43 -04:00
Jeremy Long
765c1b8875 dependency management updates
Former-commit-id: 7b853706a10d6caeb547fda15b217ebc7893949a
2015-06-21 06:48:25 -04:00
Jeremy Long
f89cefd9ae Merge pull request #241 from dwvisser/autoconf-files-analyzer
Autoconf files analyzer

Former-commit-id: f8e364d31b9a40abfef67ef93d91cb65527be217
2015-06-21 06:35:14 -04:00
Jeremy Long
23dfa8645c Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 179e9bb323f6a225d44393ac80e1d983b6af8947
2015-06-21 06:19:18 -04:00
Jeremy Long
9556e7bf51 added logback
Former-commit-id: 2d42135f5f38ae09c84d95add075b09a62b8c347
2015-06-21 06:19:10 -04:00
Jeremy Long
7fa306dd9a added logback instead of JUL to resolve issue #164
Former-commit-id: 226e52fc03b22501358d6d147d3fa042c274f1f4
2015-06-21 06:18:54 -04:00
Jeremy Long
d9a322b533 added logback
Former-commit-id: 3179f2fd13329ce3b83126b70dfa516c551978a4
2015-06-21 06:15:40 -04:00
Jeremy Long
fde1b21d1f added logback
Former-commit-id: a1f23b3181e642a41ba5e1b767b86b103d4ad134
2015-06-21 06:14:49 -04:00
Will Stranathan
124249a35d Moving all versions into the parent project
Former-commit-id: fb72244825663b3ae063daf4c5b305504532e254
2015-06-20 11:20:58 -04:00
Jeremy Long
6d6e9a6df7 Merge pull request #258 from dwvisser/dependency-class
Dependency class javadoc and code readability/re-use changes

Former-commit-id: dda65552ee613a836a20901772e93cf2d5cae003
2015-06-20 05:47:54 -04:00
Dale Visser
77ae9dfbef Extracted magic numbers in hashCode() to named constants.
Former-commit-id: e023cdf8583859215243244227bdc576b4df75f4
2015-06-19 13:47:03 -04:00
Jeremy Long
4ed642ed5d changed the lifecycle of the aggregate mojo
Former-commit-id: d8cbcc207d921a66baea8c7763329defc170a512
2015-06-19 06:42:25 -04:00
Jeremy Long
556be02696 removed the logFile as it is no longer used
Former-commit-id: 4fc60afe005df06712abe7478b431ba3c4c29562
2015-06-19 06:41:55 -04:00
Jeremy Long
572418a2f5 removed the logFile as it is no longer used
Former-commit-id: 51466302d3697dcb07673493cd33776a4bd395c3
2015-06-19 06:41:33 -04:00
Jeremy Long
fce742910e removed the logFile configuration as we now use the ant logger
Former-commit-id: 250f861439d7fbe4b2916c258aa6dd96ce5feca6
2015-06-19 06:40:56 -04:00
Jeremy Long
370b0cb049 removed the unused logFile property
Former-commit-id: 882b8abad919c9635919f5b6891845d6523c00b9
2015-06-19 06:40:07 -04:00
Jeremy Long
76333b8647 patch to resolve issue #255
Former-commit-id: 0e3f3081929a4bd93ea14a7379567f2f0c776b02
2015-06-19 05:39:31 -04:00
Jeremy Long
ce7d12e850 Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: e7876e1969de54e1d9a139fb7e40f26748687c5b
2015-06-19 05:35:10 -04:00
Jeremy Long
63d92c62a5 additional checks added as part of issue #257
Former-commit-id: 9a9154adcc42688f600a9a6cce49a919fd08f482
2015-06-19 05:34:52 -04:00
Dale Visser
7e2720e673 Added explanatory Javadoc comments for relatedDependency behavior and purpose. Added logging whenever there is a collision adding to relatedDependency.
Former-commit-id: 99d3c9527541769e47008a9c919e4727bd2bf623
2015-06-18 19:33:57 -04:00
Dale Visser
a7c0ea3602 Line reduction in Dependency.equals(), and refactor of Dependency.hashCode() using ObjectUtils and a for loop.
Former-commit-id: e95186fe8aa0eae3c6ee45f4f5c459f86c19c636
2015-06-18 19:07:45 -04:00
Dale Visser
374829ecd5 DependencyCheck.equals() taking advantage of commons ObjectUtils now.
Former-commit-id: d72ed9b7ee7c0b634b64e90e902d7991534cde79
2015-06-18 16:51:56 -04:00
Jeremy Long
6a67c04ca2 Merge pull request #256 from dwvisser/deprecation-warning-fixes
Some minor dependency-check-core compiler warning fixes

Former-commit-id: 2a833976d69160acdf2e2d2494f16749064e170f
2015-06-17 20:51:04 -04:00
Jeremy Long
f4ce087649 moved files
Former-commit-id: 4041a13f94723e6002e82b926916d60946b3a4d2
2015-06-17 20:48:50 -04:00
Jeremy Long
4566ce7de8 added package-info
Former-commit-id: e3d0de42bc1e66cead82b043da10cd5c148fb9a1
2015-06-17 20:48:41 -04:00
Jeremy Long
a898e61a7a added package-info
Former-commit-id: be01f5e10b7550bfb180af62d111574a3d988079
2015-06-17 20:48:17 -04:00
Jeremy Long
6d524bdc99 added The OWASP Foundation
Former-commit-id: 29b73f7bb17368be8c1d0b5547290365eaedefb9
2015-06-17 20:47:24 -04:00
Jeremy Long
1ba21f7f71 fixed copyright
Former-commit-id: 8e49185e3efef904af121a69fb04c8c577ef0b6e
2015-06-17 20:46:51 -04:00
Jeremy Long
7f710e0782 Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 0050abb5911eb52058d7e43a65d7f3df5dda6f24
2015-06-17 20:16:54 -04:00
Jeremy Long
acb78c18bf Merge pull request #254 from colezlaw/issue-239
Now switched to slf4j

Former-commit-id: 7b2e8bc1351455620912bdcb761d639cb5588986
2015-06-17 20:16:42 -04:00
Dale Visser
5b1f632035 Isolated sources of deprecation warnings, and added warning suppression annotations. Also added a minor Enumeration -> Enumeration<JarEntry> "fix"
Former-commit-id: ccfe52d9ed50977ce73b928b09232d8635d7fcf2
2015-06-17 15:51:06 -04:00
Will Stranathan
8aca739f54 Now switched to slf4j
Former-commit-id: 880512e5998d86026cfec40b1a8a165dd6b4b8e1
2015-06-16 18:50:05 -04:00
Jeremy Long
efdfcee7fc minor tweak to test cases to prevent warnings during the test case execution
Former-commit-id: 26e14d162629b3de225193718396fa87bb932d95
2015-06-16 14:06:34 -04:00
Jeremy Long
1b4cb1379a Merge branch 'hansjoachim-more-dependency-management'
Former-commit-id: 043ec0799ce163e2a1ea38f9a7ed2113b2a892b9
2015-06-16 05:38:03 -04:00
Jeremy Long
820d7f18c4 Merge branch 'more-dependency-management' of https://github.com/hansjoachim/DependencyCheck into hansjoachim-more-dependency-management
Former-commit-id: 80ad346062356e133e8641bae1761dfc8aa396c3
2015-06-14 19:59:19 -04:00
Jeremy Long
7a5a5e0211 added the hint analyzer to the test case to fix a bug
Former-commit-id: 48062285772215509e00ff74a0d3dcf83f571cb9
2015-06-14 16:07:44 -04:00
Jeremy Long
07dda233ec patch for issue #229 to remove bundle vendor from the evidence
Former-commit-id: a5a24422d5edfb23d3ea4d4c617044051d454860
2015-06-14 15:51:26 -04:00
Jeremy Long
02209fc039 patch for issue #229 and false negative for spring security
Former-commit-id: 8c9cd15ab06a88f675241fe75f1fe193634eddf0
2015-06-14 15:50:14 -04:00
Hans Joachim Desserud
a372882c18 Upgrade maven-core, -plugin-api and -settings dependencies to version 3.3.3
Former-commit-id: 92d1b4c84ccdc70bd3dd7ae29484ac546adea6b5
2015-06-13 15:57:01 +02:00
Hans Joachim Desserud
91c05598b2 Move -maven depency version numbers to the parent pom
Former-commit-id: 64013140d893a6b9ed356c515a94951ad1c92dd4
2015-06-13 15:56:59 +02:00
Hans Joachim Desserud
0130ab6356 Remove commons-io version number from -core
Former-commit-id: e2085764fa4f4ead5e865fb5463523344f7ba228
2015-06-13 15:56:57 +02:00
Hans Joachim Desserud
581a3f8388 Move commons-io version number to parent pom
Former-commit-id: b065059630f6c06f522a1b3c0e56d99c78f363ae
2015-06-13 15:56:55 +02:00
Hans Joachim Desserud
2587ad21c0 Add upgrade warnings/notes
Former-commit-id: e35d3be893841c3a8c6a958888d87ff304e22360
2015-06-13 15:56:54 +02:00
Hans Joachim Desserud
8b56349daa Move commons-cli version number to parent pom
Former-commit-id: e80c5831d491189c867cdceb3255c655e3b76027
2015-06-13 15:56:52 +02:00
Jeremy Long
25f2eb69b9 fixed bug related to temp files
Former-commit-id: 5b492bb592122645a7a7afda34b23f54da8c2fa4
2015-06-13 08:41:19 -04:00
Jeremy Long
46b4761f1a updated test case initialization
Former-commit-id: eb6c0b16c2ca4555d81d8c66db18198991ab8d51
2015-06-13 08:32:38 -04:00
Jeremy Long
4d3f96f979 fixed bug related to temp files
Former-commit-id: 3d1a5c6d30411ab026b2f072a8aee25106bf9691
2015-06-13 08:30:05 -04:00
Jeremy Long
084371a1e3 initial long running test, commented out as not all resources are in repo yet
Former-commit-id: 3811321133cf2dfdf898677803086d8e2aa7e689
2015-06-13 08:29:30 -04:00
Jeremy Long
f5aaaf1c63 fixed bug related to an incorrect file path, resulted in NPE in the dependency bundling analyzer in rare cases
Former-commit-id: ac1846686bc1c96feaa4c3966dd91f6ad425542f
2015-06-13 08:26:18 -04:00
Jeremy Long
316bab6fff fix for issue 232 - dependencies in seperate war files were being combined as related in cli
Former-commit-id: d43f3689be374468a6877436a2b1c94d13897c30
2015-06-13 08:25:20 -04:00
Jeremy Long
65a5d38fc6 updated test configuration
Former-commit-id: 598f069d1618f8941d480a1f6020ea9969a66222
2015-06-13 08:23:54 -04:00
ma wei
aa927e9168 refactor the build.gradle file, extract publish tasks to separated gradle file
Former-commit-id: 539b8d16917a8a60e07a7f1466ce9ad0c84ca94e
2015-06-11 10:11:07 +08:00
Jeremy Long
7b0a120e66 added test-jar back
Former-commit-id: 98de0ae9efde8e5fba07f19d327703c52c5a67e7
2015-06-10 05:35:47 -04:00
Jeremy Long
143ce58cb3 patch for issue #251
Former-commit-id: b63ab10ddf415eb5b5b7d0f2a7fc2e343e3f2aef
2015-06-07 17:45:59 -04:00
Jeremy Long
9244b44ce6 Merge branch 'hansjoachim-plugins'
Former-commit-id: f88e9750d80b430e36b9557d5d8832bec15b4efc
2015-06-07 17:14:36 -04:00
Hans Joachim Desserud
4720312b26 Upgraded several plugins to latest version
Former-commit-id: 0e7cc8f6d90a31fcf59171f2432957efabe9e813
2015-06-07 17:50:42 +02:00
Jeremy Long
d43610701b added suppression entries per issuue #237
Former-commit-id: b600d89b0da9414f8f48d7d0fe3d447b75418c9c
2015-06-07 07:38:55 -04:00
Jeremy Long
243b0b2c21 removed test-jar
Former-commit-id: c6f5ee69992ba24185941e5488212f0e47286ec2
2015-06-07 07:09:32 -04:00
Jeremy Long
930894ced5 changed provided scoped dependencies to the correct test scope per issue #244
Former-commit-id: a6882023e79e158ab664ea3c39b6419b0940ce26
2015-06-07 07:09:03 -04:00
Jeremy Long
63ce7850e1 Merge branch 'hansjoachim-upgrades'
Former-commit-id: 6e19e7b75a4481314adb9b74586541a582a98018
2015-06-07 06:43:02 -04:00
Hans Joachim Desserud
984a38ce91 Renamed field to avoid shadowing
Former-commit-id: 05c0f0784d3ef4aa688e4700c790dc44d9c6d133
2015-06-06 14:05:06 +02:00
Hans Joachim Desserud
12ce2275e0 Replace deprecated use of extending BuildFileTest with BuildFileRule now that the latter is available in ant-testutil
Former-commit-id: c06ccc49f15012ef545b94d8e601c5ae0f012190
2015-06-06 14:05:06 +02:00
Hans Joachim Desserud
214b88ea1c Move Apache Ant dependency declaration to dependencyManagment and upgrade to 1.9.5
Former-commit-id: 9be839121e7423007ff293b44aa69327b7821a2c
2015-06-06 14:05:05 +02:00
Jeremy Long
980e00e824 Merge pull request #248 from colezlaw/xpathfix
Fixed the Xpath expression to be more accurate and to find the getLog…

Former-commit-id: 43c480a97da111436353fbb1bb6f686eddaf89dd
2015-06-06 06:13:33 -04:00
ma wei
80276d5e4d adjust format in README
Former-commit-id: 7bcc077020394df43130bcd35d60cf1063b6c815
2015-06-06 10:33:43 +08:00
ma wei
28c2db9edc adjust format in README
Former-commit-id: 6a905bf23bec0f939974d83d53941a54d0dd851a
2015-06-06 10:32:02 +08:00
ma wei
5e66f70cf0 Update README, add usage for install plugin from MavenCentral
Former-commit-id: 26c9119b6eeb042e46f9855a2c51c48a0675419b
2015-06-06 10:29:50 +08:00
ma wei
4e41187bf3 Modify version to 0.0.4, changed the GroupId in order to release to MavenCentral
Former-commit-id: 7f57d17742215afcf3a9e2b4aa82e93d7444439e
2015-06-06 10:28:52 +08:00
Will Stranathan
0a09760aec Fixed the Xpath expression to be more accurate and to find the getLogger statement
Former-commit-id: 2ecf96fe54d6f417f1fbf4b51092b73ed0d8a015
2015-06-05 22:03:13 -04:00
Jeremy Long
500ad62470 Merge pull request #247 from dwvisser/analyzer-logger-fix
Fixed logger name in PythonPackageAnalyzer.

Former-commit-id: 3fe7f3cce7db8733ef534b556cfd4023d9a210fc
2015-06-05 20:00:04 -04:00
Jeremy Long
1204d98e8d added rough rule to look for copy paste errors regarding loggers (i.e. obtaining the logger for the wrong class per PR #247)
Former-commit-id: ca6b2566ea496909ea4ab4f48241bb664b130183
2015-06-05 19:59:40 -04:00
Dale Visser
ae3596ac99 Fixed logger name in PythonPackageAnalyzer.
Former-commit-id: 759bdd58e3af6050014ef34cf40056fb83592249
2015-06-05 14:43:45 -04:00
Jeremy Long
d662c693f1 updated version numbers
Former-commit-id: 68c36d5c7f9b57e8b14fa9cd96fb6e74e34e4c19
2015-06-05 09:21:01 -04:00
Jeremy Long
1820cd0ae8 1.2.12-SNAPSHOT
Former-commit-id: 0099793057b121184d59f9aabfeb92b6df7ecaac
2015-06-05 09:20:49 -04:00
Jeremy Long
c5e144d211 Merge pull request #236 from ercpe/fix-dbstatements
Fix table name in dbStatements

Former-commit-id: 5ea4b843251c9c3c4d1a6b7cbf0d2b6599add3e8
2015-06-05 07:26:29 -04:00
Jeremy Long
e1c041a250 1.2.12-SNAPSHOT
Former-commit-id: 5136f7af23b3de02e6375350c2b850518ef6a3a8
2015-06-05 07:26:17 -04:00
Jeremy Long
82dff86802 added an Oxford comma for consistency
Former-commit-id: 4b6d06035396759018a6a4a843d6c573178cc5d6
2015-06-05 07:06:19 -04:00
Jeremy Long
b2019d7633 Merge pull request #243 from dwvisser/docs-index-update
Add Python, .NET to project description, fixed broken links

Former-commit-id: f192013295457df2d53853e27bc2cbcc8f09ef7b
2015-06-05 06:51:45 -04:00
Jeremy Long
f6afea0004 fix for issue #238
Former-commit-id: 3e2d26a90fb14975d01be395c9ac6a6a80297e2d
2015-06-05 06:10:41 -04:00
Jeremy Long
309eb502cd Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 9f114b5a00713330c15cd4b24578bee1904074ee
2015-06-05 05:58:44 -04:00
Dale Visser
712252eb6b Fixed broken links.
Former-commit-id: b14061de70552c56a81742c1bc35ffb322f75d54
2015-06-04 10:38:01 -04:00
Dale Visser
c3baf36eb5 Added .NET and Python to description on site index page.
Former-commit-id: 94f09b4e66452afc111db493d4e7195170441b5d
2015-06-04 10:23:56 -04:00
Dale Visser
771fd77088 AutoconfAnalyzer: Some 'diff' whitespace fixes.
Former-commit-id: 98b756d97d38068550a416eb1df0c7fa2e217504
2015-06-03 15:05:13 -04:00
Dale Visser
7d3ac21e42 AutoconfAnalyzer: Some code refactoring to eliminate duplicate code
and redundant condition checking, plus fixes/additions to Javadoc.

Former-commit-id: 1c18377b6d871f354915ca210df6ee22534553ba
2015-06-03 14:50:49 -04:00
Dale Visser
cc3a72f4fd AutoconfAnalyzer: Added 'configure' extension for analyzing Autoconf
output configure scripts for the package metadata shell variables
generated by autoconf. Passing tests that look at metadata generated
in Readable's and Binutil's configure scripts.

Former-commit-id: d20bb17ccf4fde848dede4b87805241387e73f89
2015-06-03 14:50:24 -04:00
Dale Visser
d87fa374ec Autoconf analyzer: added configure.in and unquoted values processing.
Former-commit-id: 4cedd800c60250f19deaebf8cdff9db4e310e7ab
2015-06-03 14:50:24 -04:00
Dale Visser
154a576388 AutoconfAnalyzer: added analyzer to service registry; added needed command-line hooks, flags.
Former-commit-id: bc4cc6082b4181286e62e736f4d5751e60379779
2015-06-03 14:50:17 -04:00
Dale Visser
29fe71b82c AutoconfAnalyzer: Minor code fixes to address some static analysis warnings.
Former-commit-id: a8ad815fd8fbcf1b21141093d92da0758c344d01
2015-06-03 14:50:09 -04:00
Dale Visser
e960fd31fa AutoconfAnalyzer: Added unit test for Readable's configure.ac, which makes full usage of
available AC_INIT parameters.

Former-commit-id: e545f3f85b70f15c1650528af9afd940984478a1
2015-06-03 14:49:45 -04:00
Dale Visser
132fb87c2c Initial AutconfAnalyzer implementation, along with passing unit tests utilizing
GNU Ghostscript's configure.ac.


Former-commit-id: 50f2c5bc8ba83f346471cde091b4cc46947ed246
2015-06-03 14:39:49 -04:00
ma wei
6e281e0b66 Add gradle task to publish this plugin to Maven Central
Former-commit-id: dc5bfcbc382d7eb5f227c655214560082c8b9633
2015-06-02 14:14:06 +08:00
ma wei
a86ff9dfd1 Add ability for user to configure CVE url in gradle build file
Former-commit-id: 186b03ff55c9cab1c7bd788e5ea5ba1f8e79241e
2015-06-02 14:03:03 +08:00
Johann Schmitz
3ea33f1dd6 Fix table name in dbStatements
Changed table name to "software" to avoid SQL errors on MySQL (case sensitive)


Former-commit-id: c5097a534c778db2e919ce26d54ba175767e8c8a
2015-05-27 16:44:42 +02:00
Johann Schmitz
b645fd495f Fix table name in dbStatements
Changed table name to "cpeEntry" to avoid SQL errors on MySQL (case sensitive)


Former-commit-id: 0b9bedaad63a4310c4b3aa69fc0351a1b27f55ce
2015-05-27 10:18:20 +02:00
Jeremy Long
5e635224e2 Merge pull request #235 from wmaintw/master
Add license information and modify the legalese for the gradle plugin

Former-commit-id: b880c195086735cab18ee3c78ef2f074aff625d8
2015-05-25 11:32:51 -04:00
ma wei
54d8becd74 Add license information and modify the legalese
Former-commit-id: 4586da1e5e89cc90cdd67f7a06ee3d7fe2e5871f
2015-05-25 12:23:58 +08:00
Jeremy Long
87243537e7 fixed documentation (path to mono) per issue #234
Former-commit-id: bc56be22a694aea6868bb7a23b38bd992e3c7bbd
2015-05-23 07:13:33 -04:00
Jeremy Long
0604361d4e Merge branch 'wmaintw-master'
Former-commit-id: 16f0045f42b6bb19b7f3e0a7e74afee4a5a62e4c
2015-05-23 06:48:08 -04:00
Jeremy Long
399c052129 Merge branch 'master' of https://github.com/wmaintw/DependencyCheck into wmaintw-master
Former-commit-id: 2974aad3031a4b5746f735640f9fdee430e5b709
2015-05-23 06:46:11 -04:00
Jeremy Long
362c7e9c04 added notes for future enhancement
Former-commit-id: 2886464dc1fd657b79f1763eec2862bbf2c11af7
2015-05-23 06:39:23 -04:00
ma wei
c4843253c0 update version in README
Former-commit-id: f34bbf1704c329035cb12b739b40505cdae88230
2015-05-22 15:14:21 +08:00
Jeremy Long
928d8dbb15 Merge pull request #233 from dwvisser/add-dvisser-as-contributor
Added Dale Visser to the developers list.

Former-commit-id: d960cd48ef9541c57ca6b9e545f23a6833105392
2015-05-17 07:20:42 -04:00
ma wei
7f528d8d4a update proxy setting usage
Former-commit-id: fd11b04a2a68619e9481e9d1341ef64b96dbf9d8
2015-05-15 11:39:52 +08:00
ma wei
8ddf4a0e72 add ability for user to customize proxy setting
Former-commit-id: 8b5093ccc75751bbea1415334bd5f4335bc5bbc6
2015-05-15 11:33:17 +08:00
Dale Visser
5c589136e5 Added Dale Visser to the developers list.
Former-commit-id: 678f9e701a59148288b20a62978343d4633b2fb2
2015-05-14 11:06:57 -04:00
ma wei
00f10771d9 modify the plugin version to 0.0.2 in README
Former-commit-id: aab6f65c20e565647a7fd91f04af63aeedeab32f
2015-05-14 11:27:02 +08:00
ma wei
583a5cda61 upgrade dependency-core version to 1.2.11
Former-commit-id: c36d8d962a352c574cacabc73a4e12c1bb6c7a7a
2015-05-14 11:25:18 +08:00
ma wei
f9e5ebccfd modify usage for multiple sub project
Former-commit-id: 295bd3be8cc8901c7d103b51d6a4041b53bbcb3e
2015-05-14 11:24:29 +08:00
ma wei
77eebb6c1b update version to 0.0.2
Former-commit-id: d999f6fe3e9f5d6c309bdbda5581fb586e895930
2015-05-14 11:06:34 +08:00
ma wei
53d01e5fe1 update usage for multiple sub project
Former-commit-id: 16aac082aa5f52f01db8f6935252306bd176860b
2015-05-14 11:04:39 +08:00
ma wei
3d08e8db06 generate report for each sub project in different directory
Former-commit-id: f13f90e93121734706ad2bc43bf47d70533b117c
2015-05-14 10:48:15 +08:00
Jeremy Long
50a3ce2036 fixed typo in file name
Former-commit-id: eec0a010dd1c88cbf933446920f2d5a53932714a
2015-05-13 08:12:30 -04:00
Jeremy Long
a127948c4c sorted projects in each list
Former-commit-id: 5b36f4f7b35f2eff178779307466976767e2e933
2015-05-13 06:36:19 -04:00
Jeremy Long
36b406f7ec added a link to the python analyzer
Former-commit-id: fa73940acd758656f3876cff9d3b8e475ef430e1
2015-05-13 06:35:35 -04:00
Jeremy Long
3c50e9f784 fixed markdown syntax and added a link to the python analyzer
Former-commit-id: 286dd35ae2c1480a7bd2fac2a4f0d59d7990a12f
2015-05-13 06:35:18 -04:00
ma wei
51e2af148e modify code format in README.md
Former-commit-id: 5aabb0ec41022da8a2e0c83fc0317e7cbcc4cb95
2015-05-13 10:22:36 +08:00
ma wei
d7351f97fe add ability to publish this plugin to Gradle Plugin Portal
Former-commit-id: 7dd9400a1871db2c880cecee3297734f39b3be4e
2015-05-13 10:17:07 +08:00
Jeremy Long
1a042fab4b version 1.2.11
Former-commit-id: a7da992577504112a168f71e0dde9364d2a68ad0
2015-05-12 06:02:29 -04:00
Jeremy Long
c3f000c5ef version 1.2.11
Former-commit-id: cd3b5ef7fa3dce4e40933c9278b2a2a46fcf6f20
2015-05-12 06:02:29 -04:00
Jeremy Long
e848dd5bee version 1.2.11
Former-commit-id: 3b4665a8697668081e87f7082ed26931cd98b022
2015-05-12 06:02:28 -04:00
Jeremy Long
566e11f755 version 1.2.11
Former-commit-id: 2650031e6240ca78460d1f4eca9d533a51404bff
2015-05-12 06:02:28 -04:00
Jeremy Long
13aa00e465 version 1.2.11
Former-commit-id: 962ba27959c0648f7c271cbe3b10235c390f561e
2015-05-12 06:02:28 -04:00
Jeremy Long
e9df060e0c version 1.2.11
Former-commit-id: 25145940a45388db1a01e954246ebcc50cda41d9
2015-05-12 06:02:28 -04:00
Jeremy Long
c4724e8020 version 1.2.11
Former-commit-id: 90b6adbbf9a01bee641cdca7e2fda2cacd6266bc
2015-05-12 06:02:27 -04:00
Jeremy Long
9c36087dae updated sample report
Former-commit-id: 3147df8191930f55ffcb6810b0d5751fbb93b2fd
2015-05-12 05:23:45 -04:00
ma wei
51c3ebcdb8 add ability to publish this plugin to Bintray
Former-commit-id: 61b03346bf2f3035d52f86c88d8d655099ed5eb7
2015-05-12 16:45:40 +08:00
ma wei
f29e4a5d36 remove unused code
Former-commit-id: 1844b759f255550545b4ead5e527289c2ad8b1a7
2015-05-12 16:22:15 +08:00
Jeremy Long
99dd04a1c1 findbugs correction
Former-commit-id: 79dc73b57f2d025754e0fc717610e9a067f1a155
2015-05-11 20:31:50 -04:00
Jeremy Long
29c47e3e96 findbugs correction
Former-commit-id: 55b3830b5d31908e452ea6c688b0213aa04a7f41
2015-05-11 20:31:36 -04:00
Jeremy Long
659248ff22 findbugs correction
Former-commit-id: 3c3c89dfa3bb71a23db3ff5e5f80ef098a8f5e9a
2015-05-11 20:31:25 -04:00
Jeremy Long
71a7e8d2dc findbugs correction
Former-commit-id: a58d1242d8a3ea307a83314f7b77e66f392d4ef3
2015-05-11 20:31:14 -04:00
Jeremy Long
caabdc6584 checkstyle corrections
Former-commit-id: 14e427f40af0fd7577d0711a80003e53811ef4e3
2015-05-10 08:30:52 -04:00
Jeremy Long
0b92d2ec17 checkstyle corrections
Former-commit-id: fe41cc533ce48a09ad80321018150d0a6b396eff
2015-05-10 08:30:43 -04:00
Jeremy Long
db8bcd8fd6 checkstyle corrections
Former-commit-id: 0d71fe52d044822ed051e7f9692a46bc76abe739
2015-05-10 08:30:33 -04:00
Jeremy Long
17cb96ef41 checkstyle corrections
Former-commit-id: d7f292f1a188081247290db6a372a2f53decced9
2015-05-10 08:19:04 -04:00
Jeremy Long
2248380c90 checkstyle corrections
Former-commit-id: 2326fa7a3cf7e2e478a4fd0edf773a449e8688a6
2015-05-10 08:19:03 -04:00
Jeremy Long
ffe64d2f8f checkstyle corrections
Former-commit-id: 2382f87c687a9c22e60dd399298ec2693c2f52ef
2015-05-10 08:19:03 -04:00
Jeremy Long
a0c624fca6 checkstyle corrections
Former-commit-id: effc24928a851553bdaf23bd0f589add9db6c7c6
2015-05-10 08:19:02 -04:00
Jeremy Long
31022ea8de checkstyle corrections
Former-commit-id: 0fd9070170429a79aa7efdd9c7c5d85e88e8a10f
2015-05-10 08:19:02 -04:00
Jeremy Long
0d0de4d5b3 checkstyle corrections
Former-commit-id: f830829cad039031b0e9a630c10ca95fd64a2e24
2015-05-10 08:19:02 -04:00
Jeremy Long
1fdb4c4627 checkstyle corrections
Former-commit-id: 982cd5df66cc4b41e73deddd7e1ae749a2cb955e
2015-05-10 08:19:01 -04:00
Jeremy Long
76665c54e2 checkstyle corrections
Former-commit-id: 61ed77caae7ee3f9ca10cafa511fa8cbcdd24fa2
2015-05-10 08:19:01 -04:00
Jeremy Long
04166766da checkstyle corrections
Former-commit-id: 7a96e04aeb874f27248375b47ad7d1f0aee6b8dc
2015-05-10 08:19:01 -04:00
Jeremy Long
aa7f903210 checkstyle corrections
Former-commit-id: 0067c70b027c153e56a7e48d7fe1066aadba9016
2015-05-10 08:19:01 -04:00
Jeremy Long
c4ca53cdf9 checkstyle corrections
Former-commit-id: 585bac09a04d92bd9f503ee93beb9260cf65e63c
2015-05-10 08:19:00 -04:00
Jeremy Long
d5885acd6e checkstyle corrections
Former-commit-id: 02db425ee86feb94346bfaf6e7cb8eb6b3b078b3
2015-05-10 08:19:00 -04:00
Jeremy Long
550b3332a3 checkstyle corrections
Former-commit-id: ca9d957a11e4f1b4184ac19b8938314a43b09d36
2015-05-10 08:19:00 -04:00
Jeremy Long
93b98576b8 checkstyle corrections
Former-commit-id: 4235986f29cd91b212024844edf4360d1204deba
2015-05-10 08:19:00 -04:00
Jeremy Long
e6f2c25167 checkstyle corrections
Former-commit-id: 7f488144815cb3065b6f5304a3d44e700319f4e9
2015-05-10 08:18:59 -04:00
Jeremy Long
0b207c6141 added test cases
Former-commit-id: 2f23cb9e248dfbbc7be40252172c560b48acef57
2015-05-10 07:16:48 -04:00
Jeremy Long
3ed5e85646 added code to strip -py2 from the identified version
Former-commit-id: 4e8f8f21a3ac21099b6ea4524f5299da95973943
2015-05-10 07:16:22 -04:00
Jeremy Long
4068da33c8 updated to resolve issue #218
Former-commit-id: b99559ce5f57014d6f94961cb321097793436678
2015-05-09 08:00:21 -04:00
Jeremy Long
d1d53ee65b updated to use HTTP or HTTPS as appropriate for the download URL
Former-commit-id: a285898cfb8ae9d2dd92549b8136c64cc551d1a4
2015-05-09 07:58:40 -04:00
Jeremy Long
38413c4f64 updated to determine if HTTP or HTTPS should be used when downloading the artifacts
Former-commit-id: b3281bfc2a57e4fd94298e06179ff5f268dfc51b
2015-05-09 07:54:56 -04:00
Jeremy Long
a6bb6cd170 fixed bug causing false positives on CPE entries with a vendor or product descriptor that is two or less characters as part of fix for #229
Former-commit-id: b4c9c8bcb2b5f542933747067b516b9247443d96
2015-05-09 05:28:31 -04:00
Jeremy Long
145bf70420 updated documentation per issue #230
Former-commit-id: 28c50979be4f2fbdbab36cc75d65c45d7729ff27
2015-05-08 19:03:15 -04:00
Jeremy Long
e2c92c57e6 updated documentation per issue #230
Former-commit-id: e3c4e4efb1720ed0fcfb8d530857ca445852c4da
2015-05-08 19:02:47 -04:00
ma wei
1fa59270c1 add README
Former-commit-id: d1a87185137952bdfeaf6dd2543e0ff748e37859
2015-05-08 16:04:29 +08:00
ma wei
d5c1fda958 rename plugin name to 'dependency-check'
Former-commit-id: 240e44081b0f0a6e2678f8b2c37ef8684f245ffd
2015-05-08 16:04:18 +08:00
ma wei
b0e34fd062 add gradle task, utilize dependency-check-core functions to check dependency vulnerabilities
Former-commit-id: bef42df0ed3869fbceb4fe3ec459228031554439
2015-05-08 15:35:55 +08:00
ma wei
8fbf8df0bd initial check in
Former-commit-id: 2be8565868e6c8d62f86fcd7c70d350464c667c6
2015-05-07 11:25:31 +08:00
Jeremy Long
bcc2173768 changed confidence of maven identifier per issue #229
Former-commit-id: f5d4ad0fa35e4b6bf1975dc3aa8dc3bb862011fe
2015-05-06 16:24:15 -04:00
Jeremy Long
aa1df53ab0 fixed copy/paste error when checking for oss parent group/artifact
Former-commit-id: 432420dd19272d47e3073c0c6513de69c75c4409
2015-05-06 06:46:03 -04:00
Jeremy Long
fb6a2a2c37 fixed typo
Former-commit-id: 5ddb2be656057820ae6a6b347d1738fe5096165d
2015-05-06 06:45:25 -04:00
Jeremy Long
f403fc732c added additional test dependencies
Former-commit-id: d0726c02f7fb3ea07d6558d9344c51b23532e379
2015-05-06 06:36:05 -04:00
Jeremy Long
03aa7c56a2 corrected markdown syntax
Former-commit-id: 00ae7bfdb5b956f8c848b97fe218aa40f02de7be
2015-05-05 19:38:52 -04:00
Jeremy Long
547d6d4bcc fixed formating issues
Former-commit-id: d602cf23c16ec7b1a7e77011ab7dd0e08579aa18
2015-05-05 19:38:28 -04:00
Jeremy Long
2cba8f906d fixed formating issues
Former-commit-id: cecd4d7cddac6bf4ce7e9c7012c613a24766ccc4
2015-05-05 19:38:05 -04:00
Jeremy Long
bb5ee6a347 added related works
Former-commit-id: ced0b755e4d6c0c19b0de1cc9d33f5a934ad8ec2
2015-05-05 19:35:03 -04:00
Jeremy Long
34604efde4 added content to resolve issue #220
Former-commit-id: e7d0a7739051f098f36a818fbdfec4eed920647c
2015-05-05 18:42:46 -04:00
Jeremy Long
c232a4fbad updated and linked documentation
Former-commit-id: 175e477cc1d6bf395a2b83a96a56174b8c7a67cb
2015-05-05 05:38:28 -04:00
Jeremy Long
0c5dfdbe24 added more documentation
Former-commit-id: 1f3ef3a136bf05da797236b898371b4f7edb56a4
2015-05-04 06:21:46 -04:00
Jeremy Long
c0f9a382b3 minor fix to sorting
Former-commit-id: de65b06be56d1d6ed3d6913819227b7f49f916d5
2015-05-03 07:54:15 -04:00
Jeremy Long
8ca32fcace patched issue #219
Former-commit-id: bc925ade007ee8736c65fd039f26a26812c0a5b4
2015-05-03 07:42:32 -04:00
Jeremy Long
0461a9fc89 moved string interpolation to Model
Former-commit-id: 111849899d090f7ca5433fd6c8688e1ba7b80cda
2015-05-03 07:22:37 -04:00
Jeremy Long
2b600290ae added tests for Model
Former-commit-id: c02ad169f661616b9ab51779bb0fad6642cf30b7
2015-05-03 07:21:41 -04:00
Jeremy Long
56fd3f2566 moved interpolate string test to ModelTest
Former-commit-id: 399a9f462da994e9687345bca2f510c2bd393921
2015-05-03 07:21:15 -04:00
Jeremy Long
142e06e752 Removed code duplication by using the JarAnalyzer's setPomEvidence
Former-commit-id: fea72403f300fe9d3ca095d94e7368a2426182c1
2015-05-03 07:20:44 -04:00
Jeremy Long
cbf2a047be moved string interpolation from JarAnalyzer to Model
Former-commit-id: dcc442ef1d938ccd8db82fc20f10b3c1aef0818b
2015-05-03 07:19:31 -04:00
Jeremy Long
1880e22d22 added equals, hashcode, and tostring
Former-commit-id: d29f3d164d55448bf8a38ef73f2071f44b67a865
2015-05-03 07:18:53 -04:00
Jeremy Long
963b1eae1c fixed unit test
Former-commit-id: d4560b518805dcdf20d17f92c7b214dad2fa9676
2015-05-02 20:53:35 -04:00
Jeremy Long
d173573e6c minor format/comment updates
Former-commit-id: 40f4da7591189b7f3b31a51120df75c709f18f04
2015-05-02 20:52:57 -04:00
Jeremy Long
b6c0426c1c refactored initialization of the analyzer
Former-commit-id: c9e32fbd039c87eafc25bf0bf62dad23c6a7279a
2015-05-02 07:31:05 -04:00
Jeremy Long
4f18e9ee7f auto-format changed indentations
Former-commit-id: 1ef56dd84a5167644c2767cefdee54d555175c55
2015-05-02 07:30:15 -04:00
Jeremy Long
e227b90370 add table sorting per issue #222
Former-commit-id: 74e47bf4c0d109e3e3e0372f5b13804025196fc1
2015-05-01 05:36:38 -04:00
Jeremy Long
360b112bd2 added Node Security Project
Former-commit-id: ddf86a1e16684666c3dc62c57ebeec68fe471dec
2015-04-29 16:12:56 -04:00
Jeremy Long
ff7027439d initial version of Python Analyzer documentation
Former-commit-id: acf1de698829521f47299b12e6f44b30675a3bec
2015-04-29 16:12:30 -04:00
Jeremy Long
a5ed91611a minor update to documentation
Former-commit-id: 8ded385a196c8c4e120b2f33646954310d8903bf
2015-04-29 16:12:03 -04:00
Jeremy Long
168b1c3684 minor update to documentation
Former-commit-id: b41917cd2cd2dbb1c3099f32bb3cb453ed6b9157
2015-04-29 16:11:25 -04:00
Jeremy Long
7e1141ff16 Merge pull request #217 from dwvisser/python-github-pr
Add Analyzers for Python Distribution Files and Packages

Former-commit-id: 972a63525744bbbd510b4ae2d92028dc3079787a
2015-04-26 08:14:03 -04:00
Jeremy Long
168d55c54c removed un-needed plugin
Former-commit-id: 406dd00f2803302e68f16d3f52503845c581a3f1
2015-04-23 06:18:27 -04:00
Jeremy Long
d5ed2bc765 updated site structure and data
Former-commit-id: 9745b59268f55930b3fdff9c24ad219715cb714a
2015-04-22 20:21:31 -04:00
Jeremy Long
940a4613ee updated list
Former-commit-id: 02501953376253591f9af5ee8372af51a6357b90
2015-04-22 20:20:57 -04:00
Dale Visser
4f6d96e16b Added class, mozilla, sendfile and yacc to suppression, since all are *not* Python-based.
Former-commit-id: d4467d0b1ca70134a61c7f039180ec6dc115de6b
2015-04-21 16:53:14 -04:00
Dale Visser
707d9925a8 Added file, gnupg, mongodb, openssl and sendmail to suppression, since all are *not* Python-based.
Former-commit-id: a3bb880e64a207d48e9efdbd8520aa37f9886c26
2015-04-21 16:08:44 -04:00
Dale Visser
657340c912 Suppression of site-packages with vendor = python_software_foundation.
Former-commit-id: 2473db879a0edfac46618cde9d474a9ebd1be2dc
2015-04-20 16:17:15 -04:00
Jeremy Long
3e220704a1 updated documentation
Former-commit-id: 8445473727eb9d6b0122fa640a107ebeef8f5001
2015-04-19 08:15:04 -04:00
Jeremy Long
4a2309a3f8 updated documentation
Former-commit-id: a41eadec0c691ce907b64a688a60325dd61f9ae7
2015-04-19 08:14:55 -04:00
Jeremy Long
09122be7be externalized sql statements as part of issue #216
Former-commit-id: ea18ad69c2e7b6cc9d276fc30333d2fd16926858
2015-04-16 06:08:33 -04:00
Jeremy Long
e26ec47ad7 externalized sql statements as part of issue #216
Former-commit-id: 3af237a7f227f741fd4a948de5281a978ce59fec
2015-04-15 06:26:36 -04:00
Dale Visser
05ae73eea2 Suppress all mappings to python:python CPEs coming from site-packages or dist-packages.
Added command-line options to disable Python scanning.


Former-commit-id: cf8f1188f77316e7974a02d4dabf156462b9e1d2
2015-04-14 10:39:22 -04:00
Dale Visser
511d2b9457 Added PythonPackageAnalyzer, for directly analyzing Python library, a.k.a.,
package, source code.


Former-commit-id: 3154ea4ecddd794cb3e7f3686972fd7a6cc2177c
2015-04-14 10:37:38 -04:00
Dale Visser
bf96c24ec3 Added capability to scan Python egg distribution format (.egg and .zip).
Changed copyright notices to IDA, and added as possible copyyright holder in
checkstyle-header file, and some whitespace fixes.


Former-commit-id: ac4288dff7c3c40e64dc733791c80035f73cc602
2015-04-14 10:36:28 -04:00
Dale Visser
e328ec990c Added capability to scan extracted egg and wheel metadata in the local Python
environment.


Former-commit-id: b0259d38134bf18b1eb72db9951dbe2d04ba8fb9
2015-04-14 10:32:04 -04:00
Dale Visser
a5dee0cb27 Added PythonDistributionAnalyzer, including unit tests with test data, with
capability to analyze the Python wheel distribution format. Using
javax.mail.internet.InternetHeaders to parse metadata files.


Former-commit-id: 478ab6be7b0f30f7991144039e33a6f69dd261ed
2015-04-14 10:30:36 -04:00
Jeremy Long
7fb5d5bde5 resolved issue #213
Former-commit-id: e50ac440ea63132f387c28fc2f8e0f3ff81d9896
2015-04-14 07:03:07 -04:00
Jeremy Long
5a329b4a6d version 1.2.11-SNAPSHOT
Former-commit-id: c0aa23ec9d12d6cb175aa43356f492dae78d7c3a
2015-04-14 07:02:41 -04:00
Jeremy Long
500f6c5b6f version 1.2.10
Former-commit-id: 0da4b8daeb214ee8b1ee3410cde0e4842f9c8003
2015-04-13 17:33:43 -04:00
Jeremy Long
29f76ba62a updated to resolve issue #210
Former-commit-id: cc5f3b351cee90af187712b328ab35d599ccbba6
2015-04-07 08:58:40 -04:00
Jeremy Long
70e0c84a20 updated pom parsing to resolve issue #210
Former-commit-id: e1092139cc27a01fba8ecfa37aa3904ee96154e6
2015-04-07 08:56:45 -04:00
Jeremy Long
3dd95180e0 initial test of pom utils
Former-commit-id: f9515f9647fbb134a97ae944189167a020858048
2015-04-07 08:55:43 -04:00
Jeremy Long
dcd8fc0320 added pojo class to hold data from pom.xml
Former-commit-id: cf66a8d5a6fe180b7253813af1ea7ff20695957f
2015-04-07 06:59:58 -04:00
Jeremy Long
bcd9fb0be9 updated to correctly use utility class PomUtils
Former-commit-id: 4c8cb205df42785aa71fa5f0621a52946000c200
2015-04-07 06:58:58 -04:00
Jeremy Long
a088d20612 replaced jaxb with sax parser
Former-commit-id: 68b01f1943cae8778cb9dd257f84f1c5321aadf4
2015-04-07 06:58:00 -04:00
Jeremy Long
29fb347bbb replaced jaxb with sax parser
Former-commit-id: a1c0325c9d68675931947a5beade6f0ee65814ba
2015-04-07 06:57:13 -04:00
Jeremy Long
b2a436b3bc replaced jaxb with sax parser
Former-commit-id: 3a68df99ece4b86e13b266650ad4ab496a864704
2015-04-07 06:57:09 -04:00
Jeremy Long
d288912df1 replaced jaxb with sax parser
Former-commit-id: e414ec7919c8709a9d099f7dbcbf349161206c22
2015-04-07 06:57:09 -04:00
Jeremy Long
7bde6baaac replaced jaxb with sax parser
Former-commit-id: a52e0ca02d5bb11aead699d62a38e50b1dd6670b
2015-04-07 06:57:08 -04:00
Jeremy Long
26ca6d9b77 replaced jaxb with sax parser
Former-commit-id: ad48ae623b717e9ffb4b1918ba039805931e9998
2015-04-07 06:57:08 -04:00
Jeremy Long
961626a136 removed jaxb
Former-commit-id: 0f7887da58f135eed0e669209e33409000d1807d
2015-04-07 06:57:07 -04:00
Jeremy Long
641a311537 removed jaxb
Former-commit-id: 2a307afe8d3381572133af1ae9d0cd489e3ae934
2015-04-07 06:57:07 -04:00
Jeremy Long
995ba02357 removed jaxb
Former-commit-id: 413724fb7e584e246764add0979e20e260b14343
2015-04-07 06:57:07 -04:00
Jeremy Long
fb3e6e4208 removed jaxb
Former-commit-id: 881feef75155fc031df63f187d01ad8e150075e8
2015-04-07 06:57:06 -04:00
Jeremy Long
e5363f7c8f removed jaxb
Former-commit-id: eb799f07859ef7476d71e1265a162fd32907c637
2015-04-07 06:57:06 -04:00
Jeremy Long
d1a128b897 removed jaxb
Former-commit-id: f477e060a011528b7a5c8bfd50382f6684b4e607
2015-04-07 06:57:06 -04:00
Jeremy Long
2b5fb4d75a removed jaxb
Former-commit-id: 551ef5c2b41551e08252a1e14574190a840b3055
2015-04-07 06:57:06 -04:00
Jeremy Long
6439ddde23 removed jaxb
Former-commit-id: 0a2fee66a643fd6d5ac6a1be279a59dc401a362a
2015-04-07 06:57:05 -04:00
Jeremy Long
f2994ed4ff removed jaxb
Former-commit-id: c6113b6436bc4789c68482358355f732d7f9f465
2015-04-07 06:57:05 -04:00
Jeremy Long
019bf67f93 removed jaxb
Former-commit-id: 4cf9a4a3d4f05efb2fa49f63339d144a3888e03d
2015-04-07 06:57:05 -04:00
Jeremy Long
78c1dcd0d0 removed jaxb
Former-commit-id: 76e89bd3b8b91b8a740427d56b5db36c1a990860
2015-04-07 06:57:04 -04:00
Jeremy Long
e07b30df85 removed jaxb
Former-commit-id: 5b4dd75c3b11a5b342a59ff33da7b55d4d18b8cd
2015-04-07 06:57:04 -04:00
Jeremy Long
96cd517c36 removed jaxb
Former-commit-id: 1e93d173b0fb6e9252c755ba792564237710c9be
2015-04-07 06:57:04 -04:00
Jeremy Long
2cb8e00c99 removed jaxb
Former-commit-id: 3e74c70e0423bd455f7043bbfd5725295d3a5600
2015-04-07 06:57:03 -04:00
Jeremy Long
92f093009e removed jaxb
Former-commit-id: aca14c70fed2421dc444eec2256e290154dc9ff6
2015-04-07 06:57:03 -04:00
Jeremy Long
27256a1854 removed jaxb
Former-commit-id: e5eaaa4d41b7d4c105979151b39e4627c268229a
2015-04-07 06:57:03 -04:00
Jeremy Long
ba782ca56f removed jaxb
Former-commit-id: e9ba1c00a0d2cc00584d1a16a1b2e383d5b5bcb7
2015-04-07 06:57:02 -04:00
Jeremy Long
3f3e33a366 removed jaxb
Former-commit-id: beb3d86fc7a6cf9668c89985e9799d63551b95f9
2015-04-07 06:57:02 -04:00
Jeremy Long
343fd75477 removed jaxb
Former-commit-id: 9f33ebbd388afe6e022f909a20ca463ca6958f5a
2015-04-07 06:57:02 -04:00
Jeremy Long
7bcfb6ff49 removed jaxb
Former-commit-id: ab8aceb365aa303ff4dc99b4eedc89bfd7dce3fd
2015-04-07 06:57:01 -04:00
Jeremy Long
78ec08792f removed jaxb
Former-commit-id: 4c0685feb62da31bc0deb6f5c310df6eb20e21df
2015-04-07 06:57:01 -04:00
Jeremy Long
461b41f300 removed jaxb
Former-commit-id: a854bb2d722766fcc336563c12b0fea6a7d8d031
2015-04-07 06:57:00 -04:00
Jeremy Long
5b246424fb removed jaxb
Former-commit-id: 417c552c2311709c35c82999f773fab484b6bd80
2015-04-07 06:57:00 -04:00
Jeremy Long
6af4b4cd5e removed jaxb
Former-commit-id: 621b2070136bad0374dd37ec12e788a789498d87
2015-04-07 06:57:00 -04:00
Jeremy Long
6d348eb5a7 removed jaxb
Former-commit-id: 4f0eeb2569e46b55821492771776f5573bb0def8
2015-04-07 06:57:00 -04:00
Jeremy Long
b26f6b697a removed jaxb
Former-commit-id: 376893da54ccb8e3d27aeb03734b6814dc846500
2015-04-07 06:56:59 -04:00
Jeremy Long
554510bb78 removed jaxb
Former-commit-id: 2e945592f021a0c3508cf153ad84bcb2c0102de7
2015-04-07 06:56:59 -04:00
Jeremy Long
3f2e5b7c69 removed jaxb
Former-commit-id: 975161363155f5b297a18bce8765e2479c3a6177
2015-04-07 06:56:59 -04:00
Jeremy Long
3c4989f5ca removed jaxb
Former-commit-id: 9b590ecce2ad7a2c960aaf5c6d3b9825c2059045
2015-04-07 06:56:58 -04:00
Jeremy Long
d33c649be6 removed jaxb
Former-commit-id: 0db8ef041849af552d6b066045bbf6ff2d96f686
2015-04-07 06:56:58 -04:00
Jeremy Long
c55954e5e8 removed jaxb
Former-commit-id: e6c17d8f70b15886dc32b635e0b7cd2e5fdb427a
2015-04-07 06:56:58 -04:00
Jeremy Long
678311e65b removed jaxb
Former-commit-id: c4ab6153cbaedd5b06b6c725145f53266b8e99c2
2015-04-07 06:56:57 -04:00
Jeremy Long
ab1d3075e8 removed jaxb
Former-commit-id: 88ba3f6e18e6276fb60e7d3c9eb7ee8891cade8e
2015-04-07 06:56:57 -04:00
Jeremy Long
0a6f8b7ac1 removed jaxb
Former-commit-id: 1452d82d2388610b3becb43d6fd50f9e7b4231f4
2015-04-07 06:56:57 -04:00
Jeremy Long
422a1f78fc removed jaxb
Former-commit-id: 41fa4ae4098fcde985a888141fc6f3229c3ca680
2015-04-07 06:56:56 -04:00
Jeremy Long
f21af8bd1e removed jaxb
Former-commit-id: d33ce17573b849f6b7426d813b1a6e882122c399
2015-04-07 06:56:56 -04:00
Jeremy Long
924278e387 removed jaxb
Former-commit-id: 20d7bfb8bd4c9a097da746de0d087add935f51ff
2015-04-07 06:56:56 -04:00
Jeremy Long
c6ea4466fb removed jaxb
Former-commit-id: 104c5d60aecfd53603e8e59edc58335949334319
2015-04-07 06:56:55 -04:00
Jeremy Long
318cc7a8fb removed jaxb
Former-commit-id: f4bc144353738f9742b6e746005907577aa5def9
2015-04-07 06:56:55 -04:00
Jeremy Long
9554a30286 added test dependency
Former-commit-id: 424bb6900a580fd5fa1e58979e28329273a17199
2015-04-06 19:59:56 -04:00
Jeremy Long
5336da52d9 added Hugo Costa as a contributor
Former-commit-id: c7b9bf343a5087d1e6b384a6e38e38ba6900e900
2015-04-06 19:59:31 -04:00
Jeremy Long
bd0c2e4ee4 added test dependency to test issue #210
Former-commit-id: cdb4911037e3e74cb3e56f488c3c496595f08187
2015-04-05 16:41:56 -04:00
Jeremy Long
64aad66adc changed config on javadoc so it does not fail with jdk8
Former-commit-id: 6300a8fd8bf2c6314f5a963fb10fd85cf3e59ac8
2015-04-05 12:54:36 -04:00
Jeremy Long
587bf131db updated sample report
Former-commit-id: b04eedcc48cd6461585742dd2e2b9b9661d6875b
2015-04-05 11:03:40 -04:00
Jeremy Long
fc96c727ec added logo
Former-commit-id: 28f42f846833db2ae8fe5f5d7504678067db836c
2015-04-05 10:46:27 -04:00
Jeremy Long
d17bd5bd9e added logo
Former-commit-id: 9a831f9ba0d3af212e681dd8ac6a3cecdf2cf851
2015-04-05 10:45:19 -04:00
Jeremy Long
b22a935a6c updated package info
Former-commit-id: 4050b01bfc1c92862fc71f23239c1d5202a5126e
2015-04-05 10:44:24 -04:00
Jeremy Long
a7c1d594dc updated package-info
Former-commit-id: 5d02d7dacbc0e20efffdaecc5a1630d102114fa5
2015-04-05 09:31:34 -04:00
Jeremy Long
dd20a9c7cc updated package-info
Former-commit-id: cd69861ebd1c3ef2e8a679b87d08acd43b49e7bd
2015-04-05 09:31:34 -04:00
Jeremy Long
e0994e0e54 updated package-info
Former-commit-id: 385c57cab581f700ec110dc02245c4b37976148d
2015-04-05 09:31:34 -04:00
Jeremy Long
0f8ce09646 updated package-info
Former-commit-id: d93c76a844ab6c9177856ab74b27f8d7e9d547b1
2015-04-05 09:31:33 -04:00
Jeremy Long
871e27d19f updated package-info
Former-commit-id: 3375a31fca8abb2d7553e0dfb39c96cc2bb8a44b
2015-04-05 09:31:33 -04:00
Jeremy Long
c429df3280 updated package-info
Former-commit-id: 864920215f4b1620550c5bba2822d596f885d0be
2015-04-05 09:31:33 -04:00
Jeremy Long
13f355c385 updated package-info
Former-commit-id: ee67619c2480dc0de800055da7d00c5312146ee6
2015-04-05 09:31:32 -04:00
Jeremy Long
d33ddefb2d updated package-info
Former-commit-id: abee416d7c2690d66f255d69efc34855a82064db
2015-04-05 09:31:32 -04:00
Jeremy Long
75b3f4b3c8 updated package-info
Former-commit-id: 191f7b8866bdc2e5c9ea9b5aac2c4ab1a23a5881
2015-04-05 09:31:32 -04:00
Jeremy Long
03ce1d2ea8 updated package-info
Former-commit-id: a38dc7f72dda348947817f35ecaa0eadc39ac99c
2015-04-05 09:31:31 -04:00
Jeremy Long
08eae2b09c updated package-info
Former-commit-id: 206b5f173ad7f2f87dc5a5ff8232a4099f07ef29
2015-04-05 09:31:31 -04:00
Jeremy Long
c94f9e2d2b updated package-info
Former-commit-id: 44e0d6bf55997292b7570d0cb8ae61c41ee5c001
2015-04-05 09:31:31 -04:00
Jeremy Long
520370688c updated package-info
Former-commit-id: c577b32102ac872b713df1c88b2af3424f00565c
2015-04-05 09:31:31 -04:00
Jeremy Long
725949db2f updated package-info
Former-commit-id: 2af313130c4d4a180896eb465685413385ddbdf2
2015-04-05 09:31:30 -04:00
Jeremy Long
5d647155b6 updated package-info
Former-commit-id: 9ca5a2b3bd7e86495d73c97bde84e731c22e1e61
2015-04-05 09:31:30 -04:00
Jeremy Long
c152bd0517 updated package-info
Former-commit-id: cda9f52d0d8f46523bc65f0b84ba9bc62e16b065
2015-04-05 09:31:30 -04:00
Jeremy Long
f35146d93d updated package-info
Former-commit-id: 85603781da2c18a1275e13385080abcf662a331b
2015-04-05 09:31:29 -04:00
Jeremy Long
e8e58555d0 updated package-info
Former-commit-id: 7e59b9f0cd75ce84b6d230856458d0a44b167d0d
2015-04-05 09:31:29 -04:00
Jeremy Long
7190dcc04e updated package-info
Former-commit-id: c459f7479fc476f19ee1ba52dc162a9ead751fc8
2015-04-05 09:31:29 -04:00
Jeremy Long
b623e3b3c8 updated package-info
Former-commit-id: 5f1e580af20320d75e7af5a00d9f6eababfe15a2
2015-04-05 09:31:28 -04:00
Jeremy Long
d78e82bd56 updated package-info
Former-commit-id: 232d2259875911ee517ed71dd741801f285a7ad4
2015-04-05 09:31:28 -04:00
Jeremy Long
ff478253e3 updated package-info
Former-commit-id: fe210fb0ea9a25612dc869e6086f4d63c29e282b
2015-04-05 09:31:28 -04:00
Jeremy Long
85c3368cda updated package-info
Former-commit-id: e4991a34fc6959d2d7352722a8fdc8d9d9249857
2015-04-05 09:31:28 -04:00
Jeremy Long
a4095cec8d updated package-info
Former-commit-id: be1142cf59d4755dc703d400d449574ca7775087
2015-04-05 09:31:27 -04:00
Jeremy Long
c840ce249f updated javadoc author
Former-commit-id: df65c5c6389d9fc4c884c4ecab728ab825d3ccea
2015-04-05 09:22:17 -04:00
Jeremy Long
b70812fc3d updated javadoc author
Former-commit-id: adfd776cd02132c2da6b3d3b77b13db0f8675551
2015-04-05 09:22:16 -04:00
Jeremy Long
3ccf06321d updated javadoc author
Former-commit-id: 0c72c9263cc012d64ff46969fa7f77a8b730cf4a
2015-04-05 09:22:16 -04:00
Jeremy Long
1d5dd5ea11 updated javadoc author
Former-commit-id: d72d2947df15f40a6febf9df7d2b6d4da1575c4c
2015-04-05 09:22:16 -04:00
Jeremy Long
0cadd88769 updated javadoc author
Former-commit-id: a0dc3aea76c887631da951f9467af28f1c8d4d89
2015-04-05 09:22:15 -04:00
Jeremy Long
75499a3321 updated javadoc author
Former-commit-id: 958d2b0792543e10fd902b6f24177820c1a45de1
2015-04-05 09:22:15 -04:00
Jeremy Long
5096027523 updated javadoc author
Former-commit-id: 8344848ff8c6c3255cf1be2f9699366d4b94cfe0
2015-04-05 09:22:15 -04:00
Jeremy Long
5c8c07794d updated javadoc author
Former-commit-id: 4b602ba266e8e539cb5f0341f4a3207c05c13850
2015-04-05 09:22:14 -04:00
Jeremy Long
18a72bbb59 updated javadoc author
Former-commit-id: 789d787c659b501f3ee4c82242c4c8e9eead9b49
2015-04-05 09:22:14 -04:00
Jeremy Long
7b3c4475da updated javadoc author
Former-commit-id: d705f8956b50fc3afd0526880b42d9c9309349e3
2015-04-05 09:22:14 -04:00
Jeremy Long
419c446f01 updated javadoc author
Former-commit-id: f1de29baff37ed811a85ef8cda22bc2d4eabb0c7
2015-04-05 09:22:14 -04:00
Jeremy Long
735c16cc11 updated javadoc author
Former-commit-id: ce3dc0b7869c50bcf8b3bd8f59adb62a369b1bf4
2015-04-05 09:22:13 -04:00
Jeremy Long
ed41abcf9d updated javadoc author
Former-commit-id: 7b01912bb9e86f7545c6309637cecc1104fedef8
2015-04-05 09:22:13 -04:00
Jeremy Long
b750a8c802 updated javadoc author
Former-commit-id: 20ad9f99f500c5488744accbdc5280d32cb7cb1e
2015-04-05 09:22:13 -04:00
Jeremy Long
1ee75dd8cb updated javadoc author
Former-commit-id: e2bcedcb3763492a4a21054cdfb7a23214c5dd96
2015-04-05 09:22:12 -04:00
Jeremy Long
396efad518 updated javadoc author
Former-commit-id: 5b12bb57ebafec5490482df506364df38b4d2820
2015-04-05 09:22:12 -04:00
Jeremy Long
8f33be262a updated javadoc author
Former-commit-id: 9b172db31e69c1e0ecfa47c8b3c3056f0f660917
2015-04-05 09:22:12 -04:00
Jeremy Long
9daa111f9c updated javadoc author
Former-commit-id: bb9eaba78f1575d83249b36300ea62132430b548
2015-04-05 09:22:11 -04:00
Jeremy Long
889bf22840 updated javadoc author
Former-commit-id: e036917954ab04da8901c4147884c33c47784802
2015-04-05 09:22:11 -04:00
Jeremy Long
f46e96c7de updated javadoc author
Former-commit-id: 1944424e30f21c49bceb1e9ac7f334c1e51cc442
2015-04-05 09:22:11 -04:00
Jeremy Long
9be6dc2935 updated javadoc author
Former-commit-id: 71af3fb7cfbb1c805b99ddc74cab774913ebb4b5
2015-04-05 09:22:10 -04:00
Jeremy Long
6188f6d74a updated javadoc author
Former-commit-id: 44997fec64aff42545e9e0a5c5ec4ebbd9cdb2ca
2015-04-05 09:22:10 -04:00
Jeremy Long
8837fab9fa updated javadoc author
Former-commit-id: 2234a090e2446137023f9df091b8a85d9a745487
2015-04-05 09:22:09 -04:00
Jeremy Long
316339011b updated javadoc author
Former-commit-id: d7e75e84d406203c6d2ca820a759972d403bd8e9
2015-04-05 09:22:09 -04:00
Jeremy Long
fe7121e057 updated javadoc author
Former-commit-id: 9e608bda0c4159337d6de0a727ec014404c027ee
2015-04-05 09:22:09 -04:00
Jeremy Long
bc09bfd3ba updated javadoc author
Former-commit-id: a83c5adc7e113a30fc5c18a0f7b71c7efaec0455
2015-04-05 09:22:08 -04:00
Jeremy Long
26f19cead1 updated javadoc author
Former-commit-id: 424fb69a163625765e263573307da1aca2f53471
2015-04-05 09:22:08 -04:00
Jeremy Long
777b35f412 updated javadoc author
Former-commit-id: 593115789ba670e60ce966a52c5d6b04393530e3
2015-04-05 09:22:08 -04:00
Jeremy Long
9e94ffb422 updated javadoc author
Former-commit-id: 66012a54190236c40c679a43749a1525fb981980
2015-04-05 09:22:07 -04:00
Jeremy Long
b6a38bf4d1 updated javadoc author
Former-commit-id: 29b815170175af50e9e88fbb35f7e690f7c0dd02
2015-04-05 09:22:07 -04:00
Jeremy Long
92d12ec68e updated javadoc author
Former-commit-id: 47f25243b5b1bb13bae43f6e3949c03c9c270fef
2015-04-05 09:22:07 -04:00
Jeremy Long
93dd5e4b31 updated javadoc author
Former-commit-id: af11a440ee1c2938cad612d8d367d0b9a6068d17
2015-04-05 09:22:07 -04:00
Jeremy Long
79e325e2ab updated javadoc author
Former-commit-id: a9b00911d1d2e58ad26a1843f08100676047bf24
2015-04-05 09:22:06 -04:00
Jeremy Long
0e095018a4 updated javadoc author
Former-commit-id: f48ca4839aabc0a524fc650b55813e4a94ed2e84
2015-04-05 09:22:06 -04:00
Jeremy Long
7040071ab9 updated javadoc author
Former-commit-id: facf33488cda4af6cf5bad4e7cb74fb36768734a
2015-04-05 09:22:05 -04:00
Jeremy Long
e157350d03 updated javadoc author
Former-commit-id: 86395763274c8880e77bab58504fbef84ebc835f
2015-04-05 09:22:05 -04:00
Jeremy Long
28f6ef5eec updated javadoc author
Former-commit-id: eef141b45e5214cf443d82b11cbbc72edbc9b1e6
2015-04-05 09:22:05 -04:00
Jeremy Long
15bcee3d10 updated javadoc author
Former-commit-id: 2e2d5260afc76c52de66d14cf79db0a9e5254dfb
2015-04-05 09:22:04 -04:00
Jeremy Long
67dbf70f5b updated javadoc author
Former-commit-id: 37a7181707149b1670e10b692cab1c105d3f7b7f
2015-04-05 09:22:04 -04:00
Jeremy Long
c75b99837f updated javadoc author
Former-commit-id: 627b185b0dcc2329c3584db140eb48b7d19ddbf2
2015-04-05 09:22:03 -04:00
Jeremy Long
cbc951be62 updated javadoc author
Former-commit-id: 0f27e547cd080b87e10049385e15a190c83bf1d3
2015-04-05 09:22:03 -04:00
Jeremy Long
f5b38852a7 updated javadoc author
Former-commit-id: e4ba8b60bbabf5357671d262f7e51d375f035713
2015-04-05 09:22:03 -04:00
Jeremy Long
45b5fd3762 updated javadoc author
Former-commit-id: 03bc2f6657bcee87080f63a39b482fac029c691c
2015-04-05 09:22:02 -04:00
Jeremy Long
04c14f3a27 updated javadoc author
Former-commit-id: bece55f77feb1cbd3a44f34e925ef05df207d284
2015-04-05 09:22:02 -04:00
Jeremy Long
a55d89cc93 updated javadoc author
Former-commit-id: ba2f0672fe8bc4c3a5e33c9ec63d4a832315a07d
2015-04-05 09:22:02 -04:00
Jeremy Long
888801ab0c updated javadoc author
Former-commit-id: d1a8192239e3ec78caf9d25e9cb1ce8aaca6ae9c
2015-04-05 09:22:01 -04:00
Jeremy Long
731528ef6e updated javadoc author
Former-commit-id: 3e8a18f4a43c8a19a1c0367a55b41c8512209bdf
2015-04-05 09:22:01 -04:00
Jeremy Long
d7fbd0df47 updated javadoc author
Former-commit-id: 1ced9da6fc9dc722e1a31de5c3395bd6b285d532
2015-04-05 09:22:01 -04:00
Jeremy Long
6f95e6d499 updated javadoc author
Former-commit-id: b46f4707e56e95e7359e3033a926a00a39c20f38
2015-04-05 09:22:00 -04:00
Jeremy Long
79e6a13b29 updated javadoc author
Former-commit-id: b12db8dfae7a5b34ae136957ff24f773df763682
2015-04-05 09:22:00 -04:00
Jeremy Long
b9a53775b6 updated javadoc author
Former-commit-id: 7cd4642264106e5772b942f97bb44e4dc938ad7d
2015-04-05 09:22:00 -04:00
Jeremy Long
1b15603227 updated javadoc author
Former-commit-id: 5614c10fe48b95e019d1c2ab77e3e1ba9bdacfb0
2015-04-05 09:21:59 -04:00
Jeremy Long
a7ffeb7016 updated javadoc author
Former-commit-id: e63cbab39d36b0136a819861d761f8cddc2f45c8
2015-04-05 09:21:59 -04:00
Jeremy Long
13b1c0fe0c updated javadoc author
Former-commit-id: 65462fd6b12c13b63108eb191801f2a0dc1df222
2015-04-05 09:21:58 -04:00
Jeremy Long
1d259c510f updated javadoc author
Former-commit-id: b939fe30eee6c1422c7c4efcf5c2385402d5c9b1
2015-04-05 09:21:58 -04:00
Jeremy Long
56783bbf4d updated javadoc author
Former-commit-id: c2fcf6e846e73e7d0bb1b6e205e755c0dee053e1
2015-04-05 09:21:58 -04:00
Jeremy Long
e63c296b16 updated javadoc author
Former-commit-id: 57b85879b008a9915e780791a97bee3a7ee4c87b
2015-04-05 09:21:58 -04:00
Jeremy Long
57450a65cf updated javadoc author
Former-commit-id: c23bc2250251ad0872676843a42fad0ed6c6b04a
2015-04-05 09:21:57 -04:00
Jeremy Long
716b52ef90 updated javadoc author
Former-commit-id: 2392c4a656c8919ef5ac00c3f3ba49681e758874
2015-04-05 09:21:57 -04:00
Jeremy Long
6ab8552f44 updated javadoc author
Former-commit-id: 5bebd493ea9a6e1d88f611d73be5c5889d4c2353
2015-04-05 09:21:56 -04:00
Jeremy Long
9880483690 updated javadoc author
Former-commit-id: 65596d2877aa7ffd991227f5853a2582ae28da5e
2015-04-05 09:21:56 -04:00
Jeremy Long
7b9b459b74 updated javadoc author
Former-commit-id: e2cb159cab7da584f8449a202126a97fcfbf8118
2015-04-05 09:21:56 -04:00
Jeremy Long
0723606120 updated javadoc author
Former-commit-id: bc82c40243b3ba06eb699cb0e51da88633edd8fa
2015-04-05 09:21:55 -04:00
Jeremy Long
4261e9eb29 updated javadoc author
Former-commit-id: 21f0c81d58d78ad4fb2614f2229c5c4c7136802c
2015-04-05 09:21:55 -04:00
Jeremy Long
a322556c66 updated javadoc author
Former-commit-id: 1f78887b2fefcfaf5b995f0e3c0f177507fc8af3
2015-04-05 09:21:55 -04:00
Jeremy Long
b6d3efa042 updated javadoc author
Former-commit-id: 9b059f0264a83076651ff7f2c7c777b250a32f03
2015-04-05 09:21:54 -04:00
Jeremy Long
4019a0615c updated javadoc author
Former-commit-id: 04d2b404e05a3d256f5264919434f9e42c3115fb
2015-04-05 09:21:54 -04:00
Jeremy Long
376e486c47 updated javadoc author
Former-commit-id: faae701f01ee6387b1398ac685a80ad08b331a46
2015-04-05 09:21:54 -04:00
Jeremy Long
5b7c47682b updated javadoc author
Former-commit-id: e4b0e6584872a99d9185093e4ebfb027d8e4b7ed
2015-04-05 09:21:53 -04:00
Jeremy Long
741a803ea7 updated javadoc author
Former-commit-id: 5162f0cb6c5b49148f57248c69fe8503564c668d
2015-04-05 09:21:53 -04:00
Jeremy Long
8a886f5434 updated javadoc author
Former-commit-id: ebeeadb36fbe79a541a66d5b823a07c18645b6d1
2015-04-05 09:21:52 -04:00
Jeremy Long
01514af188 updated javadoc author
Former-commit-id: f818712696e4bee22e34213314e46121829d448a
2015-04-05 09:21:52 -04:00
Jeremy Long
c5d5dccc57 updated javadoc author
Former-commit-id: 99ea41063450a2aa935647c485200197b1d30c10
2015-04-05 09:21:52 -04:00
Jeremy Long
5e58304448 updated javadoc author
Former-commit-id: a2422be3b9eb08ee7a8de380f5d062c7d93e2563
2015-04-05 09:21:51 -04:00
Jeremy Long
dd9c4bfa42 updated javadoc author
Former-commit-id: c4cabe37f0152f01ebb207d1ecf0d7121ce120a5
2015-04-05 09:21:51 -04:00
Jeremy Long
e6a559f0d1 updated javadoc author
Former-commit-id: ef4555f15cb4f4ef82ed618ca65abfe5bc9a61a9
2015-04-05 09:21:51 -04:00
Jeremy Long
f1c860f68c updated javadoc author
Former-commit-id: feb156e25fe847555b1d0b2bee20c8ac5d44572f
2015-04-05 09:21:50 -04:00
Jeremy Long
cd175816e2 updated javadoc author
Former-commit-id: 3ce50ed038fea725567ac467b3e25d06a6af2f0a
2015-04-05 09:21:50 -04:00
Jeremy Long
1d74d2e241 updated javadoc author
Former-commit-id: ebc89915ab35e8ccc329a2d9e6229ac8d47ec7f5
2015-04-05 09:21:50 -04:00
Jeremy Long
c4479a36a9 updated javadoc author
Former-commit-id: 1339c60872f7cc1e7c573a7ca3d6a68d4e00706f
2015-04-05 09:21:49 -04:00
Jeremy Long
cc2c18243e updated javadoc author
Former-commit-id: 92c8dc2bcbb8da1a41084acfa392326e32939e29
2015-04-05 09:21:49 -04:00
Jeremy Long
211d34fcef updated javadoc author
Former-commit-id: 469d1881d6d50e441204abd24c95ecda0040ea31
2015-04-05 09:21:48 -04:00
Jeremy Long
dc60c24d89 updated javadoc author
Former-commit-id: 6c7daa183556f05cdb8c89bba90e71f9737fb2ae
2015-04-05 09:21:48 -04:00
Jeremy Long
922e6437cf updated javadoc author
Former-commit-id: fe5c364466522eacbbf2cc52e32ccd6c5b1e4ba5
2015-04-05 09:21:47 -04:00
Jeremy Long
1058157827 updated javadoc author
Former-commit-id: 8cd3670afd8b5be3aea7b80040836ef54bda0725
2015-04-05 09:21:47 -04:00
Jeremy Long
33b38e686a updated javadoc author
Former-commit-id: bc280f51596877c6a59fa0b15a60b494a7081ebe
2015-04-05 09:21:47 -04:00
Jeremy Long
a6014f30dd updated javadoc author
Former-commit-id: e6db05a05dddce2cc87110f0a926280a2fbcc411
2015-04-05 09:21:46 -04:00
Jeremy Long
3fc75df55d updated javadoc author
Former-commit-id: de65aa7dc89a1befe46bdcbbabca8cb63cfbe1f4
2015-04-05 09:21:46 -04:00
Jeremy Long
2bcd9d78e8 updated javadoc author
Former-commit-id: 59253e1927d2910c882865f5a9a052b4d66e004f
2015-04-05 09:21:46 -04:00
Jeremy Long
723b9e9cea updated javadoc author
Former-commit-id: ad409cc8c07c126a119bb6b6ab21c7dde38ec656
2015-04-05 09:21:45 -04:00
Jeremy Long
efb7088cd8 updated javadoc author
Former-commit-id: a5f88426208091e934fee073c8e075d323e6a82a
2015-04-05 09:21:45 -04:00
Jeremy Long
f2131102f5 updated javadoc author
Former-commit-id: 009df028d14ef0d78ca74f63e1c9cd9984d1109f
2015-04-05 09:21:45 -04:00
Jeremy Long
eae04bb156 updated javadoc author
Former-commit-id: b8ab72134701d8f4846c104e25fde499fdedb3e9
2015-04-05 09:21:44 -04:00
Jeremy Long
11716128df updated javadoc author
Former-commit-id: 05a564adebe1121e20d3be4d961ed4b09f94742d
2015-04-05 09:21:44 -04:00
Jeremy Long
5122808189 updated javadoc author
Former-commit-id: e47179411fd0dff94f876f7db37e69584fd3786b
2015-04-05 09:21:44 -04:00
Jeremy Long
3c1905f941 updated javadoc author
Former-commit-id: b5fa72ecbcf831459fbde0d45d65006a2cd0d049
2015-04-05 09:21:43 -04:00
Jeremy Long
3348086c00 updated javadoc author
Former-commit-id: f68b96df72699fd541ac14af9a98e198729017d6
2015-04-05 09:21:43 -04:00
Jeremy Long
919efc5037 updated javadoc author
Former-commit-id: be4a6f9d5c5d1f43ddbe2324a68036e6e459d1a2
2015-04-05 09:21:42 -04:00
Jeremy Long
04ab0e09d5 updated javadoc author
Former-commit-id: c1f55752be340dac6c6fd234640d60b64a553a88
2015-04-05 09:21:42 -04:00
Jeremy Long
c8862cb927 updated javadoc author
Former-commit-id: 07943962fcaaddbb23f7c68400f7f7d868745e01
2015-04-05 09:21:42 -04:00
Jeremy Long
ac135ec2b6 updated javadoc author
Former-commit-id: cf4872f514d35b74be8abdb1ae54897b0ed8c254
2015-04-05 09:21:41 -04:00
Jeremy Long
0257000d1a updated javadoc author
Former-commit-id: a5cf1d6894c53d8635bf14a0cd1454130c451151
2015-04-05 09:21:41 -04:00
Jeremy Long
608b95e941 updated javadoc author
Former-commit-id: 022735ae188f0db1dc859581c0a6583b8c669b5f
2015-04-05 09:21:41 -04:00
Jeremy Long
e6a2c5b5b4 updated javadoc author
Former-commit-id: 13ed43813582e20381731943e1518ec6fd01f7c3
2015-04-05 09:21:40 -04:00
Jeremy Long
a546aadba1 updated javadoc author
Former-commit-id: fc7b5f76a67eaab2e78f6f385252030de63438c9
2015-04-05 09:21:40 -04:00
Jeremy Long
5934588b2c updated javadoc author
Former-commit-id: d4a4d6b17f22aa039dadd3e2c63a69432a1fc03d
2015-04-05 09:21:40 -04:00
Jeremy Long
3ad5482a30 updated javadoc author
Former-commit-id: d705171c799bfc2815f63306cc31a25ad8c3a360
2015-04-05 09:21:39 -04:00
Jeremy Long
c3902447af updated javadoc author
Former-commit-id: 2cbd83d6544a19dd4d15d5d88f2f1dff30432251
2015-04-05 09:21:39 -04:00
Jeremy Long
764aa466f4 updated javadoc author
Former-commit-id: 3bdcfe1fae3dca5c0c934c97b1c48e117255de09
2015-04-05 09:21:38 -04:00
Jeremy Long
9ffda6cd17 updated javadoc author
Former-commit-id: d13fac65cb7ed951698130523baaf241146addde
2015-04-05 09:21:38 -04:00
Jeremy Long
8281fb09fc updated javadoc author
Former-commit-id: c559dad07d948c834f7aa451475e0e52895abd26
2015-04-05 09:21:38 -04:00
Jeremy Long
b6988f96fb updated javadoc author
Former-commit-id: 3f11465c5f678401d93b0aa12ce267ca0ba3d523
2015-04-05 09:21:37 -04:00
Jeremy Long
4597c13d9a updated javadoc author
Former-commit-id: ea95eaf016057dd9316d3841f453d2c2cb7cac61
2015-04-05 09:21:37 -04:00
Jeremy Long
acf7297c8d updated javadoc author
Former-commit-id: bef2871312d17e886101fbfaf804a0910e9eaac9
2015-04-05 09:21:37 -04:00
Jeremy Long
bbdc8298d9 updated javadoc author
Former-commit-id: 4e217219079d10b0a7a33444eccb5a218784290d
2015-04-05 09:21:36 -04:00
Jeremy Long
4d9f102033 updated javadoc author
Former-commit-id: ab1f753c303338c0be531e46fb2338fc8e429403
2015-04-05 09:21:36 -04:00
Jeremy Long
0056e1052c updated javadoc author
Former-commit-id: 78a6833acf9011146dcb529bdf14f6d96fbe9741
2015-04-05 09:21:36 -04:00
Jeremy Long
7b729e078b updated javadoc author
Former-commit-id: dfeb34c3ff80b4a18c01284edd0e547165227e64
2015-04-05 09:21:35 -04:00
Jeremy Long
6a0623f1e7 updated javadoc author
Former-commit-id: 868f59d066f98252f72456a942b4dc5e3c20ea03
2015-04-05 09:21:35 -04:00
Jeremy Long
542c871152 updated javadoc author
Former-commit-id: 1ce5048775cad33c5c2e7c1ad2ba09539d2ce8e8
2015-04-05 09:21:35 -04:00
Jeremy Long
77189eeeb1 updated javadoc author
Former-commit-id: e6fe0c911571602a216b7092c743de117ec28feb
2015-04-05 09:21:34 -04:00
Jeremy Long
340172ab56 updated javadoc author
Former-commit-id: 557d8fb6c19d3e6c2bebd500c500533d2dcfa7cd
2015-04-05 09:21:34 -04:00
Jeremy Long
afcfed1c67 updated javadoc author
Former-commit-id: cfbefad580b452ed98b8b336338946eb6a7ca506
2015-04-05 09:21:33 -04:00
Jeremy Long
59ce3bb64d updated javadoc author
Former-commit-id: 9f8d8178aa290507894b8ea64cc6ca18ab72c6f6
2015-04-05 09:21:33 -04:00
Jeremy Long
81c5aa73d2 updated javadoc author
Former-commit-id: d255d240647ef205febf61f9373da728c4b58c6d
2015-04-05 09:21:33 -04:00
Jeremy Long
12ff05208c updated javadoc author
Former-commit-id: 1a683cf8ef016bab26be3653adc957ae5edd7cc3
2015-04-05 09:21:32 -04:00
Jeremy Long
dc0ef70699 updated javadoc author
Former-commit-id: ff5f1f9fe7357a87602364537f93d9c5fddf1574
2015-04-05 09:21:32 -04:00
Jeremy Long
6ce735dcc7 updated javadoc author
Former-commit-id: 1bbedeb9c9ec23d07822f89234318289794c1fd4
2015-04-05 09:21:32 -04:00
Jeremy Long
faf3298f7a updated javadoc author
Former-commit-id: 13a111fb531dc07d909febaffa7eb86e63f04db5
2015-04-05 09:21:31 -04:00
Jeremy Long
4f1b6b4bf1 updated javadoc author
Former-commit-id: 9880049e15071f42fd2be262e34a8536e574b43d
2015-04-05 09:21:31 -04:00
Jeremy Long
99702fdb67 updated javadoc author
Former-commit-id: 1e4a45aaaadcd37891fcd51cb258cbcb94083696
2015-04-05 09:21:30 -04:00
Jeremy Long
7bce7691e4 updated javadoc author
Former-commit-id: b4904e00c4cf2077ff02386dd75aced6b69370b5
2015-04-05 09:21:30 -04:00
Jeremy Long
7f90160936 updated javadoc author
Former-commit-id: efb4c51cea724c4b2e6ff3bbab111893f6ebc887
2015-04-05 09:21:30 -04:00
Jeremy Long
f367ad7185 updated javadoc author
Former-commit-id: 4802729f76f07cedf9ea678822a7b884792ded9b
2015-04-05 09:21:29 -04:00
Jeremy Long
29a31476b1 updated javadoc author
Former-commit-id: dddb1eaf50985adbc1c6a8603c3ada0b58deee57
2015-04-05 09:21:29 -04:00
Jeremy Long
b844b66614 updated javadoc author
Former-commit-id: 577d5887c89e2df966220ac51588f6a4810d00e2
2015-04-05 09:21:29 -04:00
Jeremy Long
3e6fa1ed1f updated javadoc author
Former-commit-id: a3a72fdd91082968ff0f927ff391b01a03abbccc
2015-04-05 09:21:28 -04:00
Jeremy Long
e141b4eb9f updated javadoc author
Former-commit-id: 556a8a0c649d625684000d0f4d0db3beff0e92d9
2015-04-05 09:21:28 -04:00
Jeremy Long
c794194bb5 updated javadoc author
Former-commit-id: b5ed0d4b6191df9e3b4320cb79274f42b0ad0089
2015-04-05 09:21:27 -04:00
Jeremy Long
3a31902e78 updated javadoc author
Former-commit-id: aba79f7dd00f77d02dcedf5dff3152e38b960b8d
2015-04-05 09:21:27 -04:00
Jeremy Long
fedafe55c3 updated javadoc author
Former-commit-id: b4c0e0ab694ce650bf48eb4e246fe6eb43c99889
2015-04-05 09:21:27 -04:00
Jeremy Long
1c0b885267 updated javadoc author
Former-commit-id: f420200f47b0c2161c57af24d2b70db60f23cd4b
2015-04-05 09:21:26 -04:00
Jeremy Long
8e4791048b updated javadoc author
Former-commit-id: aba167a3ba3a67a8da23729f969de406a4f7ce10
2015-04-05 09:21:26 -04:00
Jeremy Long
e28be6f2b7 updated javadoc author
Former-commit-id: 30f7e50b4d38804ef4fa16d140239566db5f8cac
2015-04-05 09:21:26 -04:00
Jeremy Long
55271b8e83 updated javadoc author
Former-commit-id: faf88eac765f642fa25bcf730634e79c17d107ac
2015-04-05 09:21:25 -04:00
Jeremy Long
8b5d8679f7 updated javadoc author
Former-commit-id: 55ca887799f155a48b09297313fe7be22ab71f1f
2015-04-05 09:21:25 -04:00
Jeremy Long
51d8ced8ce updated javadoc author
Former-commit-id: cf9eab6585eabf35eee74f22400683f14b4b35c1
2015-04-05 09:21:25 -04:00
Jeremy Long
1cc94dd60b updated javadoc author
Former-commit-id: 9a52b80f8d67e5ad2861eff891382196eb605c68
2015-04-05 09:21:24 -04:00
Jeremy Long
6d107e79b6 updated javadoc author
Former-commit-id: 5f2a68378d7d566f71e8146206a93e36b7987c4a
2015-04-05 09:21:24 -04:00
Jeremy Long
6f44b4dce1 updated javadoc author
Former-commit-id: d8293e9a910e979cd40a4d4c8a017bd0cca291f9
2015-04-05 09:21:24 -04:00
Jeremy Long
1600492780 updated javadoc author
Former-commit-id: 98a7c3b5faed0c15a25fd93bdaca9ed806847ac0
2015-04-05 09:21:23 -04:00
Jeremy Long
5f396cc647 updated javadoc author
Former-commit-id: 07d4d2adb4de14796b58f1e1c722f2a88f1fc45f
2015-04-05 09:21:23 -04:00
Jeremy Long
49bd45d88c updated javadoc author
Former-commit-id: 3c79ef2eef1fdffc2bae0e45091fffb6af1e41d6
2015-04-05 09:21:23 -04:00
Jeremy Long
c41e673346 updated javadoc author
Former-commit-id: bdc0c240959e2ce9c5dc194bb9fa32083e5287e9
2015-04-05 09:21:22 -04:00
Jeremy Long
cf8d1a490c updated javadoc author
Former-commit-id: e40d29b2150990e9c093d5cfe991003239895d09
2015-04-05 09:21:22 -04:00
Jeremy Long
962f20296c updated javadoc author
Former-commit-id: 41514e76ebd6db3fbb4f955c28443f9ce436cbeb
2015-04-05 09:21:22 -04:00
Jeremy Long
e9c1ae1893 updated javadoc author
Former-commit-id: df80e5ee5504e57c95cc89e9af8d9c8910074ab0
2015-04-05 09:21:21 -04:00
Jeremy Long
5db51a2abf updated javadoc author
Former-commit-id: 8d5db6e14ce0231f572f85f580b276880964e4d9
2015-04-05 09:21:21 -04:00
Jeremy Long
63be1efed9 updated javadoc author
Former-commit-id: 2b327604180bb6f96d599f618af6e42e6a9cf1c2
2015-04-05 09:21:21 -04:00
Jeremy Long
7fe3c659e0 updated javadoc author
Former-commit-id: 1129346d7f495fa50b2f1c84c53817d3b0cab0e8
2015-04-05 09:21:20 -04:00
Jeremy Long
4d76c7685c updated javadoc author
Former-commit-id: bf53d2c21d0244de8cb6130274329e51ebe7dcc2
2015-04-05 09:21:20 -04:00
Jeremy Long
b50bcde028 updated javadoc author
Former-commit-id: a3289db80cf37f081d3ae56e9ad27914398b92d6
2015-04-05 09:21:20 -04:00
Jeremy Long
9a8b61ae47 updated javadoc author
Former-commit-id: 506514c92c0939aa40306cc238cf94fb9301f62c
2015-04-05 09:21:19 -04:00
Jeremy Long
c31880d8de updated javadoc author
Former-commit-id: 9d63c24fdef328dfa0161e0dbc874f04e6a20246
2015-04-05 09:21:19 -04:00
Jeremy Long
1496dc8e7d updated javadoc author
Former-commit-id: 4e26403ffcd24b6884c89cc608856db72d7e0e6b
2015-04-05 09:21:18 -04:00
Jeremy Long
cdbd513e42 updated javadoc author
Former-commit-id: b8f9f04bdb055931b1f8ba1553187ee17a5f68c3
2015-04-05 09:21:18 -04:00
Jeremy Long
653bf1764e updated javadoc author
Former-commit-id: 6ef2a7148b546249425675b6c1996a0b2f39fb53
2015-04-05 09:21:18 -04:00
Jeremy Long
df08acfe9e updated javadoc author
Former-commit-id: 3c6beecbf580b21d2c45ca105dcbd217d4d9a9ad
2015-04-05 09:21:17 -04:00
Jeremy Long
e7a5287bb4 added bypass so test would be ignored under 1.8
Former-commit-id: 65f2316643266d144e063dd329a8298d3058a78c
2015-04-05 08:38:24 -04:00
Jeremy Long
656f26cc9d added test case
Former-commit-id: 2330a397a8af99797a16c8201f1baac124089e6f
2015-04-05 08:37:43 -04:00
Jeremy Long
52385ddac4 added new logo
Former-commit-id: 97baa927bb9fa7f56c40323329c7b385ebd541a2
2015-04-05 08:36:51 -04:00
Jeremy Long
50c58667ba added new logo
Former-commit-id: 9a70c59f2a89d92a746e6c7eab056c2b7d093843
2015-04-05 08:36:16 -04:00
Jeremy Long
9cc6ca5ebe bug fix - the compareTo needed to be case insensitive
Former-commit-id: d4507585c046d06002a58b1bc39220c68cc04e6d
2015-04-05 08:35:31 -04:00
Jeremy Long
34b82a3f84 new favicon
Former-commit-id: 4389b32bab06787552eca7510b184856bffffdcd
2015-03-29 06:30:49 -04:00
Jeremy Long
d0401f3f8d Add an update only option
Former-commit-id: 67253232762acb61e1400dc60443e556f71db874
2015-03-28 12:17:24 -04:00
Jeremy Long
f247978d12 Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: b4c8b0aceafa5975733d800161a68fc95d36667d
2015-03-28 07:22:10 -04:00
Jeremy Long
999116c75e patch to resolve issue #202
Former-commit-id: 576831ec73c00b957a6700dd753894f5429de071
2015-03-28 07:21:53 -04:00
Steve Springett
04e9f5b15b Fixed syntax for PR #204
Former-commit-id: 61875128cd3b710c4aadb2621ab1e6a11b8f7b8e
2015-03-26 13:00:51 -05:00
Steve Springett
78b0f7798f Merge pull request #204 from rperam/master
Property to control whether external reports need to be generated or not

Former-commit-id: 8a53f09f1e4af41695c48d057eee963a24903b5d
2015-03-26 10:38:23 -05:00
Rudra Peram
b0727ef3cf Set a property to determine whether external reports need to be generated or not
Former-commit-id: 83ce9ecd722f47140198e276ecc86d279f39d881
2015-03-25 23:52:48 -07:00
RK
01fb31fc15 Merge pull request #1 from jeremylong/master
Update from jeremylong/DependencyCheck

Former-commit-id: 93d5034211fec0e3f1c3bdf8ef3a305d141097ad
2015-03-25 23:43:40 -07:00
Jeremy Long
a1187acc31 changed default timeout to 10 seconds
Former-commit-id: 0240be0f5ec3db514310c1ce47eaf906d198bc3a
2015-03-20 09:01:13 -04:00
Jeremy Long
fe4a24a651 removed nexus auth test code
Former-commit-id: 9b5f8cbceb5a6a273dfd7ba85bf16510dab3ddb5
2015-03-18 10:07:01 -04:00
Jeremy Long
3dcce572d3 added the capability to follow more then a single redirect when downloading a file
Former-commit-id: cc3382fec2c168119474ee6bae7b5f250163c2da
2015-03-18 05:47:37 -04:00
Jeremy Long
ece69014ce added auth to nexus search
Former-commit-id: eb0b5e8ab0dcb27fe2edcb79b9dc9898c13bcb6b
2015-03-16 06:50:12 -04:00
Jeremy Long
fc6bb67e56 version 1.2.10-SNAPSHOT
Former-commit-id: aa597102bf8e24cb876b1d7c805ba8f2e06fda22
2015-03-06 19:49:05 -05:00
Jeremy Long
968de2947b fixed javadoc
Former-commit-id: e5736e49452f0d620438d2e6174cb35bcf236eaf
2015-03-06 19:40:29 -05:00
Jeremy Long
6f9ba0033f version 1.2.9
Former-commit-id: f775a71e328b2ff44d9b004b9991b4bbad8a4725
2015-03-06 05:59:59 -05:00
Jeremy Long
4d4672fc4d corrected & operator to use &&
Former-commit-id: cb1dd513f85db07ec54b1fa94328f2ec057eff94
2015-03-05 06:16:31 -05:00
Jeremy Long
70859eb719 checkstyle correction
Former-commit-id: 6ce90b5c6d192835568995cd33d56330cea53cfb
2015-03-05 06:15:43 -05:00
Jeremy Long
ae9daf7f33 updated (c)
Former-commit-id: 305ab5d6faa8f05a1689b57aabf551dd66fed070
2015-03-03 05:59:52 -05:00
Jeremy Long
ff0daa8d66 reverted to lucene 4.7.2 - new versions of lucene are built using JDK 1.7+ and cause issues for the dependency-check Maven Plugin
Former-commit-id: 514cc4922c7f00f55b1dcd102f6d45491e90a5d8
2015-03-01 21:43:52 -05:00
Jeremy Long
09f1a0ac92 checkstyle corrections
Former-commit-id: 6e12b975c1975566ebef47fedef24c179a753e05
2015-03-01 10:00:13 -05:00
Jeremy Long
e562be77f6 additional hints added for spring
Former-commit-id: e9e26f6c31b4ae220e1e7686efe6388638ec7c99
2015-03-01 08:22:56 -05:00
Jeremy Long
af7c6bc2a0 additional patch for issue #196
Former-commit-id: 10b55f932b5ee52fa1f9ae3b96c15649dd5d6062
2015-03-01 07:01:24 -05:00
Jeremy Long
e49cbcf345 Merge pull request #198 from colezlaw/master
Modified NexusAnalyzer to download POM if required

Former-commit-id: 286748f7227706fb0dd49ecd3fd26c127581e7a6
2015-02-28 13:36:27 -05:00
Jeremy Long
b4218ff0e8 added maven-plugin-plugin to the checkfule suppressions
Former-commit-id: 1e523645f46c51cef743370271db819ec00001a1
2015-02-28 13:34:40 -05:00
Jeremy Long
4af174d27b updated checkstyle configuration so file summary is not displayed
Former-commit-id: ee580f6fd2c78cedb96a2dd43917040a4df24133
2015-02-28 13:34:06 -05:00
Jeremy Long
203a7da23a added test scope to test dependencies in the dependency management section
Former-commit-id: 63281cbc83c6003cba2c8a441e0117ade505e5a4
2015-02-28 13:33:19 -05:00
Jeremy Long
9833ff20d1 changed access modifier so tests will pass
Former-commit-id: 95ccefd362c0dbea2dbc33f7aeea2d515f5e8b6c
2015-02-28 07:13:52 -05:00
Jeremy Long
638b3c0695 checkstyle correction
Former-commit-id: 01f643ad33e0475d2c2daaa5076ec604952df8d6
2015-02-28 06:46:10 -05:00
Jeremy Long
01ef2e1061 checkstyle corrections
Former-commit-id: b821a8b9a680c875a3013099a362b0277d97119f
2015-02-26 09:15:28 -05:00
Jeremy Long
56aea8ad24 Merge branch 'master' of https://github.com/jeremylong/DependencyCheck
Former-commit-id: 9d51cd721bb160351b4fc6ff27e835b8e3d2820b
2015-02-26 08:47:30 -05:00
Jeremy Long
d530eddc57 final commit to patch issue #185
Former-commit-id: 1e77bec21239a0ea228795df7bfa5678d9930d6c
2015-02-26 08:47:07 -05:00
Will Stranathan
1eab76aab8 Updated error messages to reflect Nexus
Former-commit-id: 60bd62aebbf52844150a58fe4afea45be867f249
2015-02-22 14:56:25 -05:00
Will Stranathan
167dbd7368 Merging upstream/master
Former-commit-id: f77993de8ea6e0de68d4b5cd0da653692ffcbaa9
2015-02-22 14:55:27 -05:00
Jeremy Long
2594fb1c5f removed unused collection
Former-commit-id: 5f3c6eab38eae99fef70909650a5eddf2a374a56
2015-02-22 10:57:52 -05:00
Jeremy Long
c57d21e9bc Merge pull request #199 from hansjoachim/upgrade
Upgrade jmockit to latest version

Former-commit-id: 3e0228c85439742b8188b6b3bf3ba8c8e16bfb82
2015-02-22 10:28:47 -05:00
Jeremy Long
9c15bdfe41 Merge branch 'master' of https://github.com/jeremylong/DependencyCheck
Former-commit-id: 7a189b5240ff2c831c6d6f42555148f5f00586bd
2015-02-22 10:24:59 -05:00
Jeremy Long
64dedf892d work in progress
Former-commit-id: 74f303b69fa5af225b75d6643aed60e66a4cf081
2015-02-22 10:24:45 -05:00
Jeremy Long
d6fc456039 work in progress
Former-commit-id: 0ff4b90e22accc5adb1d91735fe4979838fdc651
2015-02-22 10:23:31 -05:00
Jeremy Long
df606674db added referenced projects to the report to resolve issue #185
Former-commit-id: 61eb8b70dccedf12b745d4c9a73e8f6bc2a0f9c8
2015-02-22 10:22:44 -05:00
Jeremy Long
1e3a7ff4ba Merge pull request #200 from hansjoachim/issues
Fixes SonarQube Issues

Former-commit-id: dff1448e1897a6691a99977130b063a424645e8a
2015-02-22 10:18:34 -05:00
Hans Joachim Desserud
b53de8c69b Move jmockit to dependencyManagement so that we get a common version in all places it is used
Former-commit-id: 2cfab936074b17a8f9b080a5272c6da757e32921
2015-02-22 12:50:52 +01:00
Hans Joachim Desserud
0f3ffaf270 Use dependencyManagement to keep track of version numbers
Former-commit-id: 954e599f46ab4a18e00cbd09a968e2d5dd6e0d0d
2015-02-22 12:46:54 +01:00
Hans Joachim Desserud
25238d5fb5 Prefer interfaces over concrete classes. I have updated internal usage and accepted parameters. I have not touched return values for public/protected methods since they may be called externally and I don't want to break assignments from these.
Former-commit-id: e534f9acf569a258dd72a568dfe69e70486eb697
2015-02-22 12:19:49 +01:00
Hans Joachim Desserud
cf677bd70e Prefer checking isEmpty over size() > 0. Plus fix some typos
Former-commit-id: 754f300c0b120c0c9098c17c19dbd11aa7a39844
2015-02-22 11:42:14 +01:00
Hans Joachim Desserud
42939e4922 Compare with equalsIgnoreCase instead of changing casing
Former-commit-id: ab89ed68cb5e25d14d5fbd7ba93dc93948523d82
2015-02-22 11:20:36 +01:00
Hans Joachim Desserud
7c4cc1334b Place array designator on the type instead of the variable
Former-commit-id: 2e29bc1c61400e3bdb6b35b0b21a5cbb04cbf37a
2015-02-22 11:05:58 +01:00
Hans Joachim Desserud
ff4a1e0ac6 Place modifiers in expected order
Former-commit-id: 0cf3616fd9a737f4ca143b6f46165bdbf0e14aec
2015-02-22 10:58:31 +01:00
Hans Joachim Desserud
069e22049d Upgrade jmockit to latest version
Former-commit-id: 8e429f8b304f6c4db4ed7a88ee775f78e80260b3
2015-02-21 16:35:45 +01:00
Jeremy Long
135ed5c614 fixed NPE
Former-commit-id: 05f57ec103791b6c5ea019c54c828b3c97a415b9
2015-02-21 10:29:41 -05:00
Will Stranathan
13d7d29630 Modified NexusAnalyzer to download POM if required
NexusAnalyzer previously would just get GAV for a
match, but the POM may be separate from the jar
and contain other valuable information. This
includes refactoring of the analyzePom into
PomUtils.


Former-commit-id: f7311e08324d8bc6a5860f4be2b0e409fdcf9ba3
2015-02-19 21:08:45 -05:00
Jeremy Long
889f315c0a general checkstyl, findbugs, and PMD corrections
Former-commit-id: ec59d464725a33d8c07c79bf7128036a10fe1890
2015-02-18 21:09:38 -05:00
Jeremy Long
5a0e280899 Merge pull request #197 from ahi/master
Removes the test for default Maven repository directory.

Former-commit-id: cc261e0e6b54e169862118003bb639d52f5c94ba
2015-02-18 20:17:17 -05:00
Jeremy Long
ccb5e234b3 moved methods from JarAnalyzer to the new PomUtils so that a POM could be parsed and analyzed within other analyzers (part of patch for issue #196)
Former-commit-id: 4e649f678e59f4eaf379eba21a6ad87348fe8525
2015-02-18 20:14:04 -05:00
Jeremy Long
2caccab85f set flag on URLConnection indicating that redirects should be followed (part of patch for issue #196)
Former-commit-id: 52758186ebf2f818b6cf107af1e12b92e3c2e370
2015-02-18 20:11:30 -05:00
Jeremy Long
085ab48f3f added code so that the Downloader now follows 1 level of redirection to download the file (part of patch for issue #196)
Former-commit-id: ecd914dbcacad1e12a243fdff90f043ef114c160
2015-02-18 20:10:44 -05:00
Jeremy Long
a28c2819fa added pom URL as part of patch for issue #196 and improved the URL provided for the jar file itself
Former-commit-id: 8f485f53031a7e244d4a8f8d0c055e6b38fca746
2015-02-18 20:09:42 -05:00
Jeremy Long
40beec2e40 additional parsing of the data from Central was used to determine if the POM file is available in Central (part of the patch for issue #196)
Former-commit-id: 1805be75b101546b166c9eb4ad1efc30e53983cf
2015-02-18 20:08:14 -05:00
Jeremy Long
d136aeda84 pom parsing was externalized so that it could be used in multiple locations to assist in the resolution of issue #196
Former-commit-id: cbdde3b4b2dcabf0ff9e3f49cc3d36c62e67a1bb
2015-02-18 20:06:51 -05:00
Jeremy Long
fdd6c47cd5 if pom was not found/analyzed by the JAR Analyzer and the POM exists in Central it is downloaded, parsed, and the resulting evidence is added to the dependency to resolve issue #196
Former-commit-id: 9a36b30d4d4c265a41ae95bf5a9e95b281349425
2015-02-18 20:05:00 -05:00
Jeremy Long
c5a2b5b3d8 minor code cleanup, reformatting, and added some additional verbose logging
Former-commit-id: 9d6cf651a22a679f155a04313a09de56c90e0399
2015-02-18 19:56:56 -05:00
Ahmet Kiyak
babe4739c5 Removes the test for default Maven repository directory.
Error: If the M3_REPO directory is not set to a path that contains */m2/repository/* the DependencyCheck doesn't read <library>.pom file. Some dependencies like "spring-core-3.2.0.RELEASE.jar" are not found due to this error.

Fix: Remove the test for default Maven repository directory. The existing check for the existence of <library>.pom file is sufficient.

Former-commit-id: 8d7c51f611b5d26d505cfc3fe9f8b94c12174000
2015-02-17 18:57:24 +01:00
Jeremy Long
49e8ee443c added generic methods to get references to resources to resolve issue #181
Former-commit-id: 465d3310b1ad5b54e49ab65e5e0e4b003f79998b
2015-02-13 06:18:56 -05:00
Jeremy Long
a5d8ce07d8 added @Ignore due to test case failure - this analyzer may need to be removed
Former-commit-id: d3a2112342b66ab1b012678a7adf5b5492e9669f
2015-02-13 06:17:29 -05:00
Jeremy Long
babc016b48 added project references
Former-commit-id: ba4a058648203b8749b31e889994a5ddfc72d7b3
2015-02-12 20:49:04 -05:00
Jeremy Long
a5f378d755 removed commented out code
Former-commit-id: db1075a0d07f4c5af904691e200b3792533521b3
2015-02-12 20:48:36 -05:00
Jeremy Long
ebf995537e added project references
Former-commit-id: e6e63edce05c2985fd20b544839a033f5f050d20
2015-02-12 20:47:55 -05:00
Jeremy Long
49edb6c2e1 nop
Former-commit-id: 90c0ace35561abff762037b4388f5aedd6adfa4f
2015-02-08 19:28:29 -05:00
Jeremy Long
423f26852f updated URL to central
Former-commit-id: b2b0741a5c32de3dbfd6e2d7953447b3348ad7e5
2015-02-08 19:28:04 -05:00
Jeremy Long
f931412bee changed the url for Maven Central
Former-commit-id: cfe3c6efd45094b1a12d8e147e1d121064b48630
2015-02-08 07:50:29 -05:00
Jeremy Long
bef0657801 fixed unit test
Former-commit-id: 7bd2d15b7ae30f5a84f2ef4ce62bf893fb7c03e4
2015-02-08 07:49:56 -05:00
Jeremy Long
d79d5b5f33 added project references as part of patch for issue #185
Former-commit-id: 3146c47f89031eaf09e513b6eb757bcc98ee9edf
2015-02-08 07:17:16 -05:00
Jeremy Long
4c5489efd3 added project references as part of patch for issue #185
Former-commit-id: 5a4473d0b91b28de8c5caaba51ceed42e670532c
2015-02-08 06:59:06 -05:00
Jeremy Long
d5753b9589 updated to address issue #193
Former-commit-id: 8361c2fdbec4191e52db16b870406e3e45d97d0d
2015-02-07 18:16:07 -05:00
Jeremy Long
a841027d48 added additional supporessions
Former-commit-id: a9810fa2e2051204d481e975de0922ec7d4183ef
2015-02-07 18:15:41 -05:00
Jeremy Long
73bea8e63f removed ignoreTrivial from the cobertura configuration to resolve NPE exceptions
Former-commit-id: 228db3acc3260c5c0e8b4b0f4cf701993c33aaa1
2015-02-04 07:26:06 -05:00
Jeremy Long
bbc8bab4da Updated the explanation of the report
Former-commit-id: 5542025ae1e49797d224afabee822a6ca4460c23
2015-02-04 07:21:31 -05:00
Jeremy Long
019f6dfb8b added properties file to the documentation
Former-commit-id: 6e409f83b42828d97258d5bcdbb70e3c02d5ba80
2015-02-03 23:04:17 -05:00
Jeremy Long
3b6a2a2908 added test dependency to verify the fix for issue #180
Former-commit-id: 7f90c990b90b7a76a06be2318e578a98f8a7db13
2015-01-30 05:31:42 -05:00
Jeremy Long
c2b757ad6f re-added the struts1/2 fix and fixed other bugs in patch for issue #180
Former-commit-id: 93d45b91a46171788ac1a6c703055e5f196dcc0d
2015-01-28 18:50:51 -05:00
Jeremy Long
efeba40f2b fixed bug in patch for issue #180
Former-commit-id: a547268f56b373a6959d1be212629f39d66581d6
2015-01-27 06:57:51 -05:00
Jeremy Long
018e4bc382 patch for issue #180
Former-commit-id: 95760c8ee82b1e382dc3785525ac6027c0be8069
2015-01-25 11:15:43 -05:00
Jeremy Long
88924ea520 changed where the flag is set to only update once in a multi-module project (from issue #168) to resolve issue #191
Former-commit-id: 56b8342ffeead397b2c9554c36bf360cb4c2b7fe
2015-01-21 19:27:13 -05:00
Jeremy Long
4461c2e4a4 patch to resolve the issue with xmltooling discussed in issue #186
Former-commit-id: c3327bee9055c91659648d4835f8436478e7f41d
2015-01-21 18:58:51 -05:00
Jeremy Long
1c4aceb0fb added additional optional dependencies for testing purposes for issue #186
Former-commit-id: 5111120fee1f04a39e3144beb234895275581899
2015-01-21 18:58:08 -05:00
Jeremy Long
a5b396a60d Merge branch 'hansjoachim-site'
Former-commit-id: 4639280f19d7dcf26836321dfdd8da566c08be0b
2015-01-21 06:55:56 -05:00
Jeremy Long
efd96ed892 Merge branch 'site' of https://github.com/hansjoachim/DependencyCheck into hansjoachim-site
Former-commit-id: 43d9f4c5b73321bb945e1e57610f221d8fa2d4d7
2015-01-21 06:48:51 -05:00
Jeremy Long
fe88785846 Merge branch 'hansjoachim-comment'
Former-commit-id: 028894f4e5050e40a93a3fc7ec99c3ca149b9624
2015-01-21 06:45:52 -05:00
Hans Joachim Desserud
0dcb0fb325 Add comment/warning
Former-commit-id: a3f9bfa48cec45f8a55ce1bf6990f03b5f9290bd
2015-01-17 16:42:38 +01:00
Hans Joachim Desserud
0825843d0f Roll back version of maven-site-plugin
Former-commit-id: c2a9527e4050a7eb22e80a6e26c030d1b6fe6be6
2015-01-17 16:01:46 +01:00
Hans Joachim Desserud
8c4df134e4 Move out github plugin for maven-site and upgraded to 0.10
Former-commit-id: 45dad89f070e56febe09a3ccac2377db57bb3540
2015-01-17 16:01:13 +01:00
Hans Joachim Desserud
dfed5067f3 Upgrade maven-site-plugin to 3.4
Former-commit-id: e0f74e12a0a277f288ba0d50ef0c0960cafeb0df
2015-01-17 13:21:57 +01:00
Hans Joachim Desserud
2b78e8fdc1 Unify maven-site-plugin version
Former-commit-id: 1c22ab1a8eec75474f7612f3892d12490269f2ed
2015-01-17 12:41:37 +01:00
Hans Joachim Desserud
63c7a9d926 And since the annotation was switched to avoid name collision, the full name is no longer needed
Former-commit-id: ddbe16d074ca2fed635c2e9f4ca8157af0fe9c24
2015-01-11 11:09:02 +01:00
Hans Joachim Desserud
6609481cc1 Switch to non-deprecated FindBugs-SuppressWarnings tags which should avoid name collision
Former-commit-id: a4a978ee4a6621033064488a71577bdb93cddab4
2015-01-10 21:23:44 +01:00
Hans Joachim Desserud
a37853def6 Also StandardAnalyzer can use the Version-less constructor. The superclass Analyzer will actually default to LUCENE_CURRENT which is equivalent with LATEST which was sent in
Former-commit-id: 43c8e3350b72bac8eb952ff138887c7232ecb39c
2015-01-10 19:52:42 +01:00
Hans Joachim Desserud
9f348cfa16 The Version-less constructor for StopFilter will simply default to Version.LATEST under the hood which is exactly what we send in.
Former-commit-id: cc3010532e9203d663d977f0df0892d8f5694b5f
2015-01-10 19:41:25 +01:00
Hans Joachim Desserud
52293f2596 More elaborate comment on issue which should be fixed once the next release of ant-testutil is out
Former-commit-id: e65ea8afeeb2cc631385ad6bf1e80c7cee745c7a
2015-01-10 19:28:12 +01:00
Jeremy Long
54d3a73282 Merge branch 'hansjoachim-annotation-plugin'
Former-commit-id: 0a6db65e7fb24c2d6ba88390cf001dc9eb481813
2015-01-08 05:19:11 -05:00
Jeremy Long
ab2d3b70cb Merge branch 'annotation-plugin' of https://github.com/hansjoachim/DependencyCheck into hansjoachim-annotation-plugin
Former-commit-id: c9f32139e631cea5ea1ba8baa9424ae8e85e5dd5
2015-01-08 05:18:52 -05:00
Jeremy Long
451df460f6 Merge branch 'hansjoachim-deprecated'
Former-commit-id: ae805c6225dba9b15d406b7ccfb4e8240b1e9e46
2015-01-08 05:17:24 -05:00
Jeremy Long
b4afa01887 Merge branch 'deprecated' of https://github.com/hansjoachim/DependencyCheck into hansjoachim-deprecated
Former-commit-id: 201977aad5d979ef4615fa590f5d9113e9ff5727
2015-01-08 05:15:21 -05:00
Jeremy Long
2ea95f5bf9 Merge branch 'hansjoachim-plugins'
Former-commit-id: 222f2760d05cbf73dfff28488b4ce86faf50561e
2015-01-07 20:42:37 -05:00
Jeremy Long
22602f42f2 moved the reports from the site plugin to the reporting section
Former-commit-id: 885270d15bd24e921ddc97b112d612aaa7c48ac4
2015-01-07 20:42:07 -05:00
Jeremy Long
b2c5183043 add reporting section and the hamcrest-core test dependency
Former-commit-id: c0e857a71fe3c5136bdf261737cec165191bdafb
2015-01-07 20:41:38 -05:00
Hans Joachim Desserud
9f6559c7fb Upgrade maven-plugin-annotations to latest version
Former-commit-id: 4465128b4f06f0c1f17551afdc7652617ef7ceec
2015-01-07 19:03:20 +01:00
Hans Joachim Desserud
ef04c16237 Removed deprecated classes
Former-commit-id: 7b4de8148c8de485d39842b2fdecc8cbc2895da3
2015-01-06 21:23:47 +01:00
Jeremy Long
dd85bfd2ab Merge branch 'plugins' of https://github.com/hansjoachim/DependencyCheck into hansjoachim-plugins
Former-commit-id: 8666df46726bab861cbecd01319bad0219693092
2015-01-06 06:23:13 -05:00
Jeremy Long
7152a05bfd Merge branch 'hansjoachim-deprecated'
Former-commit-id: 72e1c4591f35bcd74a6c420c5a7322e263935169
2015-01-06 06:21:54 -05:00
Hans Joachim Desserud
754c2fc9bf Replaced deprecated constructors which contained parameter Version.
When looking into the code, these ended up toggling behaviour if Lucene version was later than 3.1.


Former-commit-id: b7641118b16ccfc904c8aaab3b2636d909d5b1d9
2015-01-05 21:51:11 +01:00
Hans Joachim Desserud
85ad0b881f Also removed old version number from gpg-plugin
Former-commit-id: 278ebc103fb3fb54e6f01f14cacfb2d93bbd074a
2015-01-05 20:04:14 +01:00
Hans Joachim Desserud
db6c471cc6 Add gpg-plugin to pluginManagement and upgrade it to 1.5
Former-commit-id: 28c94304a02bd3148a07ce37ef96a9259d61d7f9
2015-01-05 19:49:37 +01:00
Hans Joachim Desserud
300d990276 Set required maven version to the strictest option for all modules
Former-commit-id: 998498cd118460f42e35c10dfc42162e8f717de9
2015-01-05 19:36:25 +01:00
Jeremy Long
9c55b889cb updated version to 1.2.9-SNAPSHOT
Former-commit-id: bab73b0b3361a9b9689f272030e7a5b51e73a962
2015-01-04 12:43:18 -05:00
Jeremy Long
735f76cc0b Merge branch 'hansjoachim-minor-fixes'
Former-commit-id: b28f3820f63001c20a5c0d94efeb8afde58de9a4
2015-01-04 12:35:54 -05:00
Jeremy Long
d1c27a4298 Merge branch 'minor-fixes' of https://github.com/hansjoachim/DependencyCheck into hansjoachim-minor-fixes
Former-commit-id: b9de007127351691152d0403fa9d7a8656195fd2
2015-01-04 12:35:44 -05:00
Jeremy Long
650f09bbc5 Merge branch 'hansjoachim-dependencies'
Former-commit-id: 55ff93bf9425fc4d06f2282ed282d9b66982a8c9
2015-01-04 12:34:40 -05:00
Hans Joachim Desserud
08bf16971a Removed redundant semicolon
Former-commit-id: 45e93e66ff7a8f4fc67cb8680ffdbd362d763d5f
2015-01-04 15:01:56 +01:00
Hans Joachim Desserud
ccb149240e Removed duplicate groupId already covered by parent
Former-commit-id: 4db4a1186c947238339aef227154bad363d7ee85
2015-01-04 14:44:50 +01:00
Hans Joachim Desserud
ae22719985 This deprecated value should be fixed at least
Former-commit-id: b65317611bbe1784b0b8b14b7c31e86623952cf8
2015-01-03 22:11:05 +01:00
Hans Joachim Desserud
55c4d729bb Upgrade maven-release-plugin to version 2.5.1
Former-commit-id: 969df121db73b824e40137c9b6420bc85ec03e4d
2015-01-03 17:28:59 +01:00
Hans Joachim Desserud
429f0966f0 Move maven-enforcer-plugin and -plugin-plugin to pluginManagement. Upgraded them to the latest version
Former-commit-id: a8226623cddfbc034b6293f48946e2109c426dde
2015-01-03 17:22:42 +01:00
Hans Joachim Desserud
7a246b90b9 Upgrade maven-shade-plugin to 2.3. This requires building with maven 3.0 or later for that module
Former-commit-id: 9792754be3cb1c931a1736c41a258fa31556912a
2015-01-03 16:42:13 +01:00
Hans Joachim Desserud
d2e7de5505 Unify cobertura-maven-plugin version number
Former-commit-id: f3c995b91cf8b480f4c03ccec8d9371dba75eb35
2015-01-03 16:34:08 +01:00
Hans Joachim Desserud
a9eab16502 Add and upgrade assembly-plugin
Former-commit-id: e8c20c61a1bd78065f7ae4eed6751015a3d414c8
2015-01-03 16:30:28 +01:00
Hans Joachim Desserud
d59cce8080 Move non-version configuration out of pluginManagement
Former-commit-id: c3983849102331d42aa5dd562ccc319b1c5e9104
2015-01-03 16:09:06 +01:00
Hans Joachim Desserud
9390e71dd9 Upgrade Apache Lucene to 4.10.3. Would have needed to import the type for a parameter in one constructor, but since it was unused I took the liberty of simply removing it
Former-commit-id: 6e65307276619ed29354269fab2d5458b532766e
2015-01-03 14:23:57 +01:00
Hans Joachim Desserud
65992243fa Upgrade dependency-plugin to 2.9
Former-commit-id: 028218cd6c24e75216a41e14e79bd23a2073515a
2015-01-03 13:48:12 +01:00
Hans Joachim Desserud
c81b8b0171 Excplicitly state version numbers for some plugins used
Former-commit-id: b33cbe06b416423593c8b405747295cc86e998a7
2015-01-03 13:45:17 +01:00
Hans Joachim Desserud
0671d12628 On second thought, try to upgrade the version numbers for this profile manually.
Former-commit-id: 6ee31dfb9407fa9d04c1a2dd8e1eae2b2047109f
2015-01-03 13:31:42 +01:00
Hans Joachim Desserud
a892c5e7b7 Turns out surefire-plugin was used a different place too, which is why the old version number still turned up.
Former-commit-id: afab74d409527aae0e60094f18e48ed9e044ac37
2015-01-03 11:53:40 +01:00
Hans Joachim Desserud
b5c21ffbf0 Unify maven-failsafe-plugin version and upgrade it to 2.18.1
Former-commit-id: 73383c93e2bd5aecc2ad5005fe2cfaeaac700ca7
2015-01-02 22:49:08 +01:00
Hans Joachim Desserud
bb2b25cca5 Unify maven-jar-plugin version and upgrade it to 2.5
Former-commit-id: b0da5b80252e9b07ccb7d955487f595caef4d4bc
2015-01-02 22:15:49 +01:00
Hans Joachim Desserud
b3867244ba Unify maven-surefire-plugin version and upgrade it to 2.18.1
Former-commit-id: 0c5f41e379f4b20f32efb8435ab9efe9fd77d7d8
2015-01-02 21:46:13 +01:00
Hans Joachim Desserud
6bf8d396e0 Upgraded Apache Lucene to 4.7.1.
Former-commit-id: 2f723dc78ed258dc53685c917cb83aacf6f1eb25
2015-01-02 18:03:01 +01:00
Hans Joachim Desserud
6394c1a7b4 Upgraded to Apache Lucene 4.6.1. The method BaseTokenStreamTestCase.checkOneTermReuse was removed in http://svn.apache.org/viewvc?view=revision&revision=1525362, updated copied test case accordingly.
Former-commit-id: 0344bfcec4a08040eb693ca49c91218badbb2c96
2015-01-02 17:41:04 +01:00
Hans Joachim Desserud
ccd656845d Use a common version number for resources-plugin
Former-commit-id: 253864d637907491e2e21500540c3c2f6e03627c
2015-01-02 16:44:19 +01:00
Hans Joachim Desserud
2931e8454c Upgrade maven-compiler-plugin to version 3.2
Former-commit-id: 870aad70a81c782bd209f9c49288460234f69fca
2015-01-02 15:53:52 +01:00
Hans Joachim Desserud
112b158795 Move maven-compiler-plugin (along with common configuration) in under pluginManagement so we have the information in a single place
Former-commit-id: e729555a7edb1e41759bf8f1851cbfc81bd8917a
2015-01-02 15:51:41 +01:00
Hans Joachim Desserud
921001000f Require maven 2.2.1 (based on current plugin usage)
Former-commit-id: e8d8d98e84982792405af30b6dec11d201ac6895
2015-01-02 15:35:47 +01:00
Hans Joachim Desserud
3e3a8e9f98 Added comment on now-deprecated class
Former-commit-id: b5a365e8a60440462e25f132b4533ccb63a618f3
2015-01-01 21:39:22 +01:00
Hans Joachim Desserud
7440a039fd commons-cli doens't seem to be used in -core
Former-commit-id: 944ab0af44b76fb756d1364f3668a46f30e6db57
2015-01-01 15:25:09 +01:00
Hans Joachim Desserud
e73f9ab02f Upgrade h2 to latest stable 1.3.x release. Changing to 1.4.x resulted in test failure, though from reading their website 1.4.x seem to still be a beta release.
Former-commit-id: caaf2c9ab015efea1d9fb9e1a27cef2d80a2a8df
2015-01-01 15:03:51 +01:00
Hans Joachim Desserud
59815b858e Upgrade commons-compress
Former-commit-id: 10854e2ace5adda595f1c128967cd5b3651a8dee
2015-01-01 14:38:31 +01:00
Hans Joachim Desserud
7df7f59d93 Coordinated lucene version numbers
Former-commit-id: e01b8f67226f02b8e717b455053444d1388c6afd
2015-01-01 14:18:43 +01:00
Hans Joachim Desserud
e971bc1991 Upgrade some dependencies in core
Former-commit-id: 46e52a37b74f817b74c0c74f594ae848cdaa7de6
2015-01-01 14:09:16 +01:00
Hans Joachim Desserud
a3f0f12779 Upgraded dependencies for maven plugin to latest version
Former-commit-id: 8ec25f0991a91799e58b75e09cf78ae4ae3ebcb8
2015-01-01 13:41:21 +01:00
Hans Joachim Desserud
2a9c214593 Upgrade ant to latest version
Former-commit-id: ca9562702accbce4d924dd877d7045bfa603a3f4
2015-01-01 12:59:09 +01:00
Jeremy Long
3fc37f3e5e Merge pull request #178 from hansjoachim/junit4.12
Upgrade to junit 4.12

Former-commit-id: ea40044f7576c2281e734699b1f8a1d538b038f5
2014-12-31 17:09:05 -05:00
=
ebe4423e25 Upgrade to junit 4.12
Former-commit-id: 7cd88ac5702a5035d7a2e15b157ab6f8468d6f43
2014-12-31 16:45:56 +01:00
Jeremy Long
cfafb4a101 ensured CentralAnalyzer is not enabled during some tests
Former-commit-id: 69ca1ebf12080c448b4a3113f6c90da90e2e6da9
2014-12-31 07:49:27 -05:00
Jeremy Long
8d538a9977 improved error reporting to assist users dealing with issue #177
Former-commit-id: bc9191cb97d11b3c5455a5e1980d1be9c0bbc4d5
2014-12-31 07:43:30 -05:00
Jeremy Long
cc2953d6a3 version 1.2.8
Former-commit-id: 8c68d365e0dd05957ad26273a635dbb2c6a8871a
2014-12-28 09:26:14 -05:00
Jeremy Long
c888019068 added link to the documentation on the Central Analyzer
Former-commit-id: dc4553820a6c5907760e100e95379360492cc056
2014-12-28 09:16:01 -05:00
Jeremy Long
56639d3965 updated information about the nexus analyzer and how it relates to the central analyzer
Former-commit-id: 9d3f9b4f3ea30744f6f8f8c2883fc9d8b0be3a0d
2014-12-28 09:15:34 -05:00
Jeremy Long
09ff99823e added information about the central analyzer
Former-commit-id: a01e805f5692b0db9b6260a0385271c60116b7b9
2014-12-28 09:15:07 -05:00
Jeremy Long
5078e32dc7 updated the documentation showing the aggregate goal instead of the aggregate property
Former-commit-id: 81e2b937c98ec3e87a53ed0573885359ff448c2a
2014-12-28 09:14:39 -05:00
Jeremy Long
ecaadff0d8 added documentation regarding disabling the central analyzer and that the aggregate property has been replaced by the aggregate goal
Former-commit-id: 01d67e8ceeae8ab6c0bec54a694cf39d6688a0b7
2014-12-28 09:13:35 -05:00
Jeremy Long
f2ad8cc7d1 added the ability to disable the Central Analyzer (issue #175)
Former-commit-id: e56475fdf3dc94ea60b7acf8badd6a23197881d5
2014-12-28 09:12:22 -05:00
Jeremy Long
c8d77eb213 added documentation about disabling the central analyzer
Former-commit-id: 62ac08aa90599f8c624f4d928bd77528e0676208
2014-12-28 09:11:55 -05:00
Jeremy Long
fe3d9e8bf6 added the ability to disable the Central Analyzer (issue #175)
Former-commit-id: f154f7ab2eec81a90290ee38cb2ecb823f056216
2014-12-28 09:11:30 -05:00
Jeremy Long
6c4171be75 added documentation about disabling the central analyzer
Former-commit-id: b5773b6b4877b16f8b5b92640a55ad96e2ae1295
2014-12-28 09:10:54 -05:00
Jeremy Long
4bbb466e43 added the ability to disable the Central Analyzer (issue #175)
Former-commit-id: f9c25a4f2e7680026d8124623c3f2d2ae316bb67
2014-12-28 09:10:17 -05:00
Jeremy Long
c478415667 initial version
Former-commit-id: cf662ed17ec8b525dcef9826021c3a3be92a0c47
2014-12-28 06:46:39 -05:00
Jeremy Long
fc832b67c5 made BaseTest public
Former-commit-id: d18c65e8485e0c32e15a3b399ffb5f9a3618fb9a
2014-12-28 06:44:08 -05:00
Jeremy Long
943a9ea97e added synchonization to the open method
Former-commit-id: 8be1fcc1b96744dbf4d4f5754f2402be33ed4032
2014-12-28 06:43:45 -05:00
Jeremy Long
2c7ab297d7 removed serialization as Lucene's classes are not serializable
Former-commit-id: 06758ffeca109cb558ca2ac567672153cca71b50
2014-12-28 06:43:11 -05:00
Jeremy Long
d8299f7db1 checkstyle correction
Former-commit-id: a517ce0a86a30e5ffdf1edfa80958d016fe98f56
2014-12-27 07:39:55 -05:00
Jeremy Long
4deeb33f08 added JavaDoc to resetFileTypeAnalzyers()
Former-commit-id: 7feb30ff1750684d60d69a01c76733df0d32b62c
2014-12-27 06:57:21 -05:00
Jeremy Long
3bf4cf8c85 corrected logging statements
Former-commit-id: 55ebf05bbf831c8e87ca8f5b9b74d18e1cfa252c
2014-12-27 06:55:21 -05:00
Jeremy Long
e0217fc6c3 checkstyle correction
Former-commit-id: 0bc46c51151eca7d8b6c0abff3b7b9a47cb0529f
2014-12-27 06:52:37 -05:00
Jeremy Long
62a3efa23a Corrected duplicate code identified by CPD
Former-commit-id: 223a20b4a61a69a6dd0714e1683633dd73eb4302
2014-12-27 06:52:14 -05:00
Jeremy Long
cc7ebe6d52 removed old, unused test cases
Former-commit-id: 57e354d428df6eeed595afddc08359d72bef3067
2014-12-27 06:44:17 -05:00
Jeremy Long
5d920e4b44 added BaseTest to initialize the Settings for tests in the maven-plugin
Former-commit-id: 7da3f4712abcbebf157c8d26174cf0fe2f19f12b
2014-12-27 06:44:03 -05:00
Jeremy Long
1264ea54a1 moved setup to a base test that can be used in other test classes later
Former-commit-id: fe87e1ce9e9230e628bb5b8e90b0c2e85acd8245
2014-12-27 06:42:58 -05:00
Jeremy Long
caa1d77d23 improved error messages to resolve issue #176
Former-commit-id: 57d4e59b50aab93124f321004d05239cd9cd5c3d
2014-12-27 06:23:10 -05:00
Jeremy Long
20a55b3342 added test case
Former-commit-id: 4b24fb1a31b103c56c51f99d1c6e1aaa05c73a4b
2014-12-26 07:11:30 -05:00
Jeremy Long
8bfe67fc60 additional error handling, checkstyle corrections, and added resetFileTypeAnalyzers to enable reuse of the engine as part of resolution to issue #173
Former-commit-id: b964d2fd30a5520abb732a6768b9e89ba3978749
2014-12-26 07:10:22 -05:00
Jeremy Long
d42a1c6ab1 added a scan artifacts method to enable scanning of a MavenProject as part of resolution for issue #173
Former-commit-id: 7db9d35d2b0327ed678502bd8ad3c9050613eefb
2014-12-26 07:09:11 -05:00
Jeremy Long
80a89ef6d1 additional changes to resolve issue #173
Former-commit-id: 30edb64043b45c028aea77ec172d1ed127672a45
2014-12-26 07:07:27 -05:00
Jeremy Long
1a0e605f0c added jmockit for testing
Former-commit-id: 5fe09b31551fac79670505f709c0b0783431d8a8
2014-12-26 07:06:38 -05:00
Jeremy Long
573c8eb509 added a reset() method as part of resolution for issue #173
Former-commit-id: b07e6a477ebd1b008f9be6f249a531fcb911865a
2014-12-26 07:06:16 -05:00
Jeremy Long
e676e3a14b added a reset method to re-enable the file type analyzers so the engine could be reused to scan files as part of resolution for issue #173
Former-commit-id: 4b2cca05cf9724d58e3a8a7970eb2d05bb553346
2014-12-26 07:05:48 -05:00
Jeremy Long
af8c807ee0 added a getter for the FileTypeAnalyzers to resolve a problem while fixing issue #173
Former-commit-id: 359b9e41a03bd2bd0c9c63e437540bf082c7c92d
2014-12-26 07:04:45 -05:00
Jeremy Long
dfaa5df965 re-enabled summary and fail build on CVSS scores
Former-commit-id: f4568c46bfd2933aebf3e8bfe270749846fc4c01
2014-12-24 08:34:05 -05:00
Jeremy Long
32055ecdcc updated error message
Former-commit-id: 1dff15f05f6380565b2df230093bccbeb4cbbe25
2014-12-24 08:07:07 -05:00
Jeremy Long
9db71c5f0c replaced with new classes
Former-commit-id: 2b09e2533af5748b2ff41b551482bef8e012e2fe
2014-12-24 07:59:25 -05:00
Jeremy Long
99856bf285 cleaned up maven report aggregration by removing the aggregate configuration and creating an aggregate goal
Former-commit-id: bba05b6052a2b2347b055884ffdf678d7ed8f17f
2014-12-24 07:58:53 -05:00
Jeremy Long
4d006b3e05 updated to resolve class loading issues with CPEAnalyzer and updated to use execution root instead of root parent project to store context flags
Former-commit-id: 948ce11556e157e3d127be8f04cc2e4abfba2712
2014-12-24 07:47:22 -05:00
Jeremy Long
4e37165ba6 fixed bug that prevented verbose logging when target directory does not exisst
Former-commit-id: 442092011e791576ce629091a6bee4fb45c43b7d
2014-12-24 07:42:24 -05:00
Jeremy Long
38a5834785 added type checking for CPEAnalyzer to avoid exceptions
Former-commit-id: 6f407c839f4c2f74900f46901f4a8452abe83e06
2014-12-17 11:25:16 -05:00
Jeremy Long
d6e1352869 made serializable
Former-commit-id: e826b6b05017739cc35641dcdd882e4c62946a12
2014-12-17 11:24:46 -05:00
Jeremy Long
bf1b7bd7a2 added logging statements
Former-commit-id: 399ad8e258b88b32eecf9082b62bc27c4387c64a
2014-12-17 11:16:13 -05:00
Jeremy Long
2306327057 added logging
Former-commit-id: ab39408750a77fb70d05b7115bf6c6ace4f7ff52
2014-12-17 11:15:32 -05:00
Jeremy Long
2d389ba73f updated to version 1.2.8-SNAPSHOT
Former-commit-id: d8c12eae66b9fa54188ebde2da3323a132a4d9d2
2014-12-09 06:38:26 -05:00
Jeremy Long
ce8d5bc635 hack resolution to issue #172 - more information is needed to fully resolve the issue though
Former-commit-id: 366299924689cca0e277fd82b9f7bd40b9c19490
2014-12-09 06:36:04 -05:00
Jeremy Long
8fdc2007e0 fixed unit test
Former-commit-id: e1571c23fc236d810b60037f9cd8f7a804b69195
2014-12-09 06:35:07 -05:00
Jeremy Long
88a97769de added additional fine grained logging
Former-commit-id: 782dca3f3ed72da8e6c0b4eb9ee38783dd5690c8
2014-12-08 06:39:51 -05:00
Jeremy Long
589c761cb0 resolved null pointer exception
Former-commit-id: 3cc97c878a2bcc09c8a2cea3802278974d56b954
2014-12-08 05:41:58 -05:00
Jeremy Long
3e6787fd61 fixed null pointer exception
Former-commit-id: d66364e752e80fc90fb2fe226b272ba63879d104
2014-12-07 16:30:00 -05:00
Jeremy Long
aff52ee3f5 version 1.2.7
Former-commit-id: 9e666f3f6e65b67e7e144e6fc9ac75a3754c3ebb
2014-12-07 10:13:30 -05:00
Jeremy Long
4555b02592 checkstyle, findbugs, and pmd corrections
Former-commit-id: 85573816e82855343af1d41576ffc2479e8595ed
2014-12-06 13:16:06 -05:00
Jeremy Long
e1d4599a93 added test cases for issue #82
Former-commit-id: e823eb5eb2d19b252cb5bd65c3f74891478a69ee
2014-12-06 11:35:49 -05:00
Jeremy Long
1a1e141cb8 added jmockit
Former-commit-id: 385bef77dce7476ac0983c573b5909b4667e7899
2014-12-06 11:35:20 -05:00
Jeremy Long
33218f41e8 minor changes to support testing
Former-commit-id: ef1a8934c2a118216a06aeba786be0f732a6060a
2014-12-06 11:34:50 -05:00
Jeremy Long
8772cda47a added property to resolve issue #82
Former-commit-id: 711d6f538901aff6a9467fba460b62905dce75b4
2014-12-06 10:20:46 -05:00
Jeremy Long
512eb713e4 added EngineVersionCheck to resolve issue #82
Former-commit-id: ffc483a673187cf7f4a1c3a0ba8a46eb86532316
2014-12-06 10:18:46 -05:00
Jeremy Long
0f90d48c62 added EngineVersionCheck to service loader
Former-commit-id: 8047a173070d8ccaff0e5401472d885245b9ffba
2014-12-06 10:18:03 -05:00
Jeremy Long
658860e396 added new save properties method to support changes for issue #82
Former-commit-id: 56480f2d0233a03aed83ec0e8c8092f599cd0a62
2014-12-06 10:15:28 -05:00
Jeremy Long
7522dae557 changed settings to use a keys instead of hard-coded strings
Former-commit-id: a7c06468b17bd063ac7cf54bbd4982f29fcf529f
2014-12-06 10:14:31 -05:00
Jeremy Long
e34e65a3ba added filtered site resource
Former-commit-id: b6e3475b23a304841a655c4656ec753c9a81b707
2014-12-06 10:13:22 -05:00
Jeremy Long
5a001a2c32 moved withinRange to a utility class
Former-commit-id: d7bd22e42e6a96306e17229e449b9b052ddcb627
2014-12-06 07:44:07 -05:00
Jeremy Long
13a03eb250 moved withinRange to a utility class
Former-commit-id: aab76247ebf674c0e8cdeba56abedb1d510de41c
2014-12-06 07:37:47 -05:00
Jeremy Long
cd863b6cca added additional settings keys
Former-commit-id: 232c1cee317c0c7b7775dd111c82f1ad44882ab9
2014-12-06 07:36:42 -05:00
Jeremy Long
83b182dda5 modified Settings.getString to use a key instead of hard-coded string
Former-commit-id: 6c047637c1e2bb865d4bb504ff67851398a0d88e
2014-12-06 07:36:15 -05:00
Jeremy Long
3b90d1a564 updates to ensure that the logger is initialized correctly
Former-commit-id: c468df5c8dbd16edefae8e65ac28eed394c1fa87
2014-12-03 15:54:03 -05:00
Jeremy Long
d724855dfc minor updates and addition of JavaDoc
Former-commit-id: ac465b9c252dec453f8528b7e466bd61f8d7adb4
2014-12-03 15:53:22 -05:00
Jeremy Long
78008330fe changed order of operations to ensure the Maven engine doesn't call initialize twice
Former-commit-id: bbf613387adc87b605d0003b923421274979313d
2014-12-03 15:44:29 -05:00
Jeremy Long
e716aad224 corrected catch to use a more specific exception
Former-commit-id: 8bcd641d5be83f7ec8d182a55e0b5b52a73136d6
2014-12-03 05:57:10 -05:00
Jeremy Long
aa0d7cb4e9 added initialize method to resolve issue with initializing the logger
Former-commit-id: 9123f1243375c4443e6617db1de69bbcceaf1130
2014-12-03 05:56:33 -05:00
Jeremy Long
0cd43ce35c updates to reduce load times in multi-module projects per issue #168
Former-commit-id: adfaaaddffffa9b078d6b78a1ac031e6d8343f21
2014-12-02 06:43:54 -05:00
Jeremy Long
ac98c8e395 corrected the order of operations so that report aggregation can include the last module
Former-commit-id: 4169dedceee6f35c5357ee9841e94123acec575d
2014-12-01 06:51:57 -05:00
Jeremy Long
70a8fc09c6 Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: f91bf00c7865a26cff5e6d4c8d3ea67d8c472a70
2014-11-30 07:47:14 -05:00
Jeremy Long
5b00d05e2e resolved issue #171
Former-commit-id: 28a30d4d76b2bb44247e26fae4601d32c2df12df
2014-11-30 07:46:28 -05:00
Steve Springett
28c1730a02 Merge remote-tracking branch 'origin/master'
Former-commit-id: 43610b7be6f438085abee3054254daedd7c09177
2014-11-26 15:03:37 +02:00
Steve Springett
c54483d36f Adding missing central analyzer config to scan agent
Former-commit-id: 948e67459ba06c7a4f76efaba16d0dfbbba1aa44
2014-11-26 15:03:10 +02:00
Jeremy Long
2dd02ff8cb Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 17a1b6ffc03aea4c52760a0e8f721f2a017f9c18
2014-11-26 07:03:42 -05:00
Jeremy Long
46c5501b7a changed ensureDataExists method to resolve startup time delays as part of a fix for issue #168
Former-commit-id: 15e85be9e5e01253f4864d18178da4c395b008eb
2014-11-25 05:58:16 -05:00
Jeremy Long
f154826749 added additionial verbose logging
Former-commit-id: 5d65d0186914d7045b6e5d51c10bc2feb8b2aab4
2014-11-25 05:57:02 -05:00
Jeremy Long
96383ef985 added a check to the open function to prevent losing a reference to an open database connection
Former-commit-id: 62e8386dce392d8c7fbc58febc4f5d4bc35e84f0
2014-11-25 05:55:59 -05:00
Jeremy Long
ab4b19dbab added a database check to ensure data exists - this replaces an older method and reduces startup time to help resolve issue #168
Former-commit-id: 4a8b2db9adf91cef2d89148f0c9b9c2327240221
2014-11-25 05:55:01 -05:00
Steve Springett
cdc53ac570 Minor changes to allow for more flexible use of ReportGenerator outside of the core.
Former-commit-id: ce728f6d7a229571d093ed93e829b6597d084507
2014-11-21 17:29:52 -06:00
Steve Springett
143cc1912e Merge remote-tracking branch 'origin/master'
Former-commit-id: 056feebeb11b34d5da1fb40f90cd1bd9aabeeb9a
2014-11-21 16:21:28 -06:00
Jeremy Long
0d90b676bc changed logging message that indicates default state was moved to the log file rather then standard console output
Former-commit-id: e67218ff539a0c2b34cc78d0208f42d815248d7e
2014-11-21 06:36:28 -05:00
Jeremy Long
5fadbb3d25 changed logging level indicating that the central analyzer is being used instead of NexusAnalyzer - since this is the standard use case it clutters the output, the message now only goes to the log
Former-commit-id: d3faf76c59cf5a80070299a99410b1593c91187c
2014-11-21 06:16:05 -05:00
Steve Springett
0ec99a3e12 Merge remote-tracking branch 'origin/master'
Former-commit-id: 9dab9bc03f82335c16dce4026f6a3a4fc860e5d1
2014-11-17 17:04:24 -06:00
Jeremy Long
1efbc44cc4 reformated
Former-commit-id: 60c32e7e0ccd8d1586e1c691ff1671d192646895
2014-11-17 06:45:19 -05:00
Steve Springett
735fcfeee2 Merge remote-tracking branch 'origin/master'
Former-commit-id: 5eb272a53b94c6346b7c43ee5f0acd45c2e2911c
2014-11-16 12:53:37 -06:00
Jeremy Long
4a77150566 version 1.2.7-SNAPSHOT
Former-commit-id: dfd0fd2bfa6929271e82c833ae5f3abc231219a6
2014-11-16 12:46:46 -05:00
Jeremy Long
180a420219 changed checkstyle off on markers
Former-commit-id: 1a6a854e34d834cf7532439279f55e5538eb1b5d
2014-11-16 12:46:28 -05:00
Jeremy Long
d12ba8f3ef version 1.2.7-SNAPSHOT
Former-commit-id: 8721c2c03a5ecb7f81ebaab4febefda2ff968991
2014-11-16 12:45:51 -05:00
Jeremy Long
f333ef76d9 version 1.2.6
Former-commit-id: d32ff0d840fc1d1a3153da73158adc125a589efc
2014-11-16 09:44:11 -05:00
Jeremy Long
af5ba6854e minor format change
Former-commit-id: 138be9fe55a362d21021b428b36ac65e621fd88a
2014-11-16 09:43:26 -05:00
Jeremy Long
8b7ce06793 initial version
Former-commit-id: efb4fec83ee9d788b3a5b21c683f52dd91113ec0
2014-11-16 08:25:13 -05:00
Jeremy Long
297a5e516f switched to using commons.io.FileUtils to delete files
Former-commit-id: e63309f20e7af759233db5486acc85f2c5c6806d
2014-11-16 08:24:55 -05:00
Jeremy Long
92b11526be updated log messages
Former-commit-id: 4f58ed64efbee2a2d604bdc5bd51394e152bd408
2014-11-16 08:24:17 -05:00
Jeremy Long
299350f655 correctly closed streams when extracting a gzip archive
Former-commit-id: 0a0c917cc3e4c4a004823fba9b7f8ab53f90d557
2014-11-16 06:21:02 -05:00
Jeremy Long
127eafc9b3 removed unused field
Former-commit-id: f44e6398f946abe2faa8ab1b2e3813a6831b9c66
2014-11-16 06:20:27 -05:00
Jeremy Long
ad1ad3a997 turned off checkstyle for a few lines
Former-commit-id: 62bf63649427363c0d86bd72acbb76a9772d1da3
2014-11-16 06:20:07 -05:00
Jeremy Long
82151c5b3f initial version of the test for DownloadTask
Former-commit-id: 5c82a5dda739525be25eed5ee763effe839758d0
2014-11-15 08:23:54 -05:00
Jeremy Long
90457c89ff updated NVD CVE URLs to use gzipped files
Former-commit-id: ca3c5ec40458f200a19cfcda36d518cf4de5a65a
2014-11-15 08:23:13 -05:00
Jeremy Long
3f3ac86d38 minor change to test cases
Former-commit-id: bbfc241e7576b508af819f7fe66892da0511e549
2014-11-15 08:22:43 -05:00
Jeremy Long
aa126039e5 updated NVD CVE URLs to use gzipped files
Former-commit-id: 25c0c2e5df3a6626fae5401209fac93b105b3392
2014-11-15 08:21:44 -05:00
Jeremy Long
662815b1ee added an extract phase if the downloaded file is a .gz
Former-commit-id: 0385e9a7922bc18eccb3b3075cc866c462ae6f2b
2014-11-15 08:21:03 -05:00
Jeremy Long
243c36849c noop
Former-commit-id: e155fa37527c62925bdb7e52d539329e3f9ebabe
2014-11-15 08:20:15 -05:00
Jeremy Long
52d5baaf3f reformated and added checkstyle corrections
Former-commit-id: c68e06287fdd09768c9fade7e534ca421899c9c5
2014-11-12 16:04:23 -05:00
Jeremy Long
89217f778e added package-info
Former-commit-id: 78bd4ce6243fadc58524ec48bb0d964205e044cd
2014-11-12 15:44:43 -05:00
Jeremy Long
9bc9bc9169 made enabled final
Former-commit-id: ded2d5de559091d8383ec26941f166018c33bb7a
2014-11-12 15:44:18 -05:00
Jeremy Long
6b73430473 added javadoc and changes suggested by checkstyle
Former-commit-id: 5f216b873b2d1845747fa4a77159399e818aef5a
2014-11-12 15:43:36 -05:00
Jeremy Long
5ca5bca3df updated javadoc
Former-commit-id: 7b00991a0cf90ca34c8c54b8297014b01e676b04
2014-11-11 15:13:01 -05:00
Jeremy Long
89ab382a18 added additional tests for compareto(version)
Former-commit-id: 0a02681251a30e6b675461b7487198a1cc7eb850
2014-11-11 14:43:47 -05:00
Jeremy Long
bad425c0d7 added test for isAffected
Former-commit-id: 36a6d28ff03e41307574ee40381b0833c5c4ab01
2014-11-11 14:43:15 -05:00
Jeremy Long
cdbbb1b94c made isAffected protected instead of private so that tests could be added
Former-commit-id: e7fd58900b4c8ebbaf06d476870defa4fc921628
2014-11-11 14:42:34 -05:00
Jeremy Long
0a9d8a9b22 reformated and changed logging level from info to fine
Former-commit-id: 035ca7c4d83322734f16f0b51f695bf7e4caa7b0
2014-11-11 14:41:40 -05:00
Jeremy Long
e662041d06 reformated and changed isEnabled to a getter by adding checkEnabled that is called during initialization
Former-commit-id: 3bfb0dd2da37d718708d047e425fb8b125dddf34
2014-11-11 14:41:08 -05:00
Jeremy Long
155464bc87 reformated and changed isEnabled to a getter by adding checkEnabled that is called during initialization
Former-commit-id: d5c1224709469fccacfad7e22cf5a44eecdcab36
2014-11-11 14:40:48 -05:00
Jeremy Long
06cd811ae4 fixed xlint unchecked call warnings
Former-commit-id: b74ee0e63568b7b222f0459ad66a7e281b2f2e2f
2014-11-11 13:41:20 -05:00
Steve Springett
1b2cd354db Merge remote-tracking branch 'origin/master'
Former-commit-id: 9856f3f26b7c6e53d8497b5ef87d7a070abe4e06
2014-11-10 11:32:52 -06:00
Jeremy Long
1b31268f59 Merge branch 'colezlaw-master'
Former-commit-id: fdb3a7414550752692ed807d71782f54cabbdac6
2014-11-10 05:41:10 -05:00
Will Stranathan
b57ef7291f No more separate proxy configuration for Central search. Renamed everything to do with Solr to Central.
Former-commit-id: 4bcee86abf4415bfafc386d10018d9fcb2f6cec4
2014-11-09 21:07:26 -05:00
Jeremy Long
c3bf6aa3f8 updated documentation to reflect change with NexusAnalyzer
Former-commit-id: 6a16bb3fc9f45a77d030d4d0f9999b764fd6fa12
2014-11-09 20:07:22 -05:00
Jeremy Long
d2fa14bbe2 updated documentation to reflect change with NexusAnalyzer
Former-commit-id: bbe1286d3ff9e4886b2eb52fe0ff04962922dd06
2014-11-09 20:06:32 -05:00
Jeremy Long
9b6e55e90c Merge branch 'colezlaw-master'
Former-commit-id: 80adf73356e1a2d24a53cf0f20af1356638084d8
2014-11-09 19:54:03 -05:00
Jeremy Long
afb07b651f Merge branch 'master' of github.com:colezlaw/DependencyCheck into colezlaw-master
Former-commit-id: 1158591ef47032ceed72654ebde6ef5f20782f75
2014-11-09 19:53:26 -05:00
Jeremy Long
e6806fdf2b patch to resolve issue #137 - the output path can be a file name if the format is not ALL
Former-commit-id: 05c638b21f09842781e105259ff58819e4bd3e8c
2014-11-09 19:52:42 -05:00
Will Stranathan
e5ff2cff4e Squashed commits for the new Solr/Central Search capability
Former-commit-id: 28ca3ca0ff5de4e097082f6f73003c0a67455efd
2014-11-08 10:54:02 -05:00
Will Stranathan
17d7d47b9a Renamed Solr to Central search
Former-commit-id: b8bdca6be89497f9baf29c8762803b4652e4974b
2014-11-08 10:53:17 -05:00
Will Stranathan
64e32061ab Re-making due to merge conflict from origin
Former-commit-id: 34a9f3410131b51048ee7f89e8aed2189dafe7fb
2014-11-08 08:50:53 -05:00
Will Stranathan
931110ba6c Initial checkin of work on a Solr analyzer which will replace Nexus on Internet checks
Former-commit-id: 09337f6416fa3140c00413426e17e39c4a1fadc6
2014-11-08 08:47:42 -05:00
Jeremy Long
d90e7820cd improved file path validation and error handling
Former-commit-id: 20d4011b031ac956e9803e807de75e7e505172ae
2014-11-08 06:08:21 -05:00
Jeremy Long
824898dba5 patch for issue #155
Former-commit-id: 57b144d94354c48c9bebabae2cc3d0c120fd2138
2014-11-07 06:42:54 -05:00
Jeremy Long
761dd61ed4 added additional test jar for issue #155
Former-commit-id: 0f8bf0a058eb263f13bd5d0d4262255153201eb5
2014-11-07 06:42:00 -05:00
Jeremy Long
89c63e6d87 checkstyle corrections
Former-commit-id: 77b519236f1afe7ad8eab0407d055e7f9ab4745f
2014-11-05 21:52:52 -05:00
Jeremy Long
a2361f9327 checkstyle corrections
Former-commit-id: b0ad94a8b1ce31891f788fd44e1a9df59775a691
2014-11-05 21:42:32 -05:00
Jeremy Long
ea15205be8 pmd corrections
Former-commit-id: 7cdc5b009285b9b428d4e731cb4b493a24453a9f
2014-11-05 21:31:00 -05:00
Jeremy Long
0a45048535 checkstyle corrections
Former-commit-id: 8807237a0a38f390298a19507ed55d9df156663f
2014-11-05 21:24:34 -05:00
Jeremy Long
1c51655ce3 checkstyle corrections
Former-commit-id: b7acf0b29d86a17f03f996d8d4b7a47e3a9f5eb9
2014-11-05 21:08:34 -05:00
Jeremy Long
7749f0da7c updated to exclude apache ant code from checkstyle
Former-commit-id: 06ab2cb9c3b15c182dac3cd1d0580f6002d607f8
2014-11-05 21:07:08 -05:00
Jeremy Long
5695238f95 updated to exclude apache ant code from PMD and findbugs
Former-commit-id: ce8b95e5f7ba4a98036cce46edc066ff2f2afb79
2014-11-05 21:06:23 -05:00
Jeremy Long
e1feeb7e21 removed failing test case
Former-commit-id: ab7f81d133a7c8cbfed52300e3f31a92121206b7
2014-11-05 19:18:41 -05:00
Jeremy Long
84fecaf040 updated documentation to show that Ant style paths and excludes can now be used
Former-commit-id: be99efc13478905e282d292986821a1851d0f389
2014-11-05 06:26:58 -05:00
Jeremy Long
da77727673 changes to support Ant style paths to resolve issue #153
Former-commit-id: b1666d6652891c4b012457fd5de7f8230938fb45
2014-11-05 06:20:15 -05:00
Jeremy Long
f8c913a3e8 small modification to warnings
Former-commit-id: 1ee729d27fdd7f394df0ea00efcb9f5e2bf663cd
2014-11-05 06:19:43 -05:00
Jeremy Long
2024881ee1 fixed logging level when files cannot be deleted
Former-commit-id: d62acbe447b5cc78b992d910c9431c006e658b2e
2014-11-05 06:19:14 -05:00
Jeremy Long
35ed3a51e5 initial version of InvalidScanPathException
Former-commit-id: a1f909f4e3988ae2f5f00fe72033bfdd7ef89676
2014-11-05 06:17:27 -05:00
Jeremy Long
24b1c4d0a4 removed wild card pattern matching during scan
Former-commit-id: 183963237c378641467f7277f68ba74156442485
2014-11-04 05:50:58 -05:00
Jeremy Long
7ec2458fb5 moved CliParser
Former-commit-id: 69ea743196109849d078df8f7071af0a3027fe99
2014-11-04 05:33:18 -05:00
Jeremy Long
175feaea23 added a modified copy of DirectoryScanner from Apache Ant to resolve issue #153
Former-commit-id: e37eb42cc574e4255533a0e7fbe78f5ed0c83146
2014-11-04 05:27:46 -05:00
Jeremy Long
dda6cf728b added suppression for opendj-ldap-sdk to fix issue #165
Former-commit-id: e8dc84bea2350eb5539475cf77650fafb118f3a4
2014-11-01 07:08:00 -04:00
Jeremy Long
a7fd410b01 stopped trimming org and com off of the groupid so it is consistent with other analyzers
Former-commit-id: c22d3b7af9af00c28ee0df80ba706f70399b80ef
2014-11-01 06:51:05 -04:00
Jeremy Long
d281c36733 updated suppression rule for jersey-client
Former-commit-id: 81920e19da3c29de46207c2132f225cb8c77a840
2014-11-01 06:35:28 -04:00
Jeremy Long
dc91e44c0a added jersey-client 1.11.1 as an optional test dependency
Former-commit-id: d837418656cbfd857adb90662a4d2604fd77a78e
2014-11-01 06:35:05 -04:00
Jeremy Long
7967a858f4 Merge branch 'ctrl-alt-dev-master'
Former-commit-id: 18b9ce0c578195a3275c4cb54ed14f6aff953d2b
2014-10-25 08:10:14 -04:00
Jeremy Long
2081407e38 added pom evidence to dependency - yes, this moves some analysis to the plugin; but in this case that is okay and will allow future enhancements
Former-commit-id: f69fd0701a8db1ab729199c4090dee1cd023d114
2014-10-25 08:09:45 -04:00
Jeremy Long
976eabd527 noop
Former-commit-id: 8c867c80dfb8180ba308837a09b33ac17fd8273a
2014-10-25 08:08:26 -04:00
Jeremy Long
b6d6a5de2b minor changes to clean up test cases
Former-commit-id: 62d409fa6f50d3bbec881277a4604acca7278faa
2014-10-25 08:07:56 -04:00
Jeremy Long
2d58cfe0ce fixed link to the NVD
Former-commit-id: 73ca530e569d4376999c155a8bc1256d935209bf
2014-10-25 08:07:20 -04:00
Jeremy Long
9df8bdff5f cleaned up code to use isEmpty instead of "".equals(string)
Former-commit-id: 8469f91a948ab2ab5b0ce61865a0b11cd6d11717
2014-10-25 08:06:56 -04:00
Jeremy Long
c86b821951 suppressed warning on unchecked cast
Former-commit-id: 633151a31b613071c7bd3e939c6a5c16864b8b88
2014-10-25 08:06:15 -04:00
Jeremy Long
4def086bf9 removed comments
Former-commit-id: 2c48f5b93a97a0642fbc37edd603b0d0baca4368
2014-10-25 08:05:26 -04:00
Jeremy Long
885c890d7d changed the analyzer to use the actual file name rather then the display name
Former-commit-id: 9cc348aaef8fac5e6c64220d94428f168ea8855b
2014-10-25 08:05:01 -04:00
Jeremy Long
06060a6694 improved error handling of invalid search strings
Former-commit-id: 97250e44b27e009b2480d25f8c2ebb7566038086
2014-10-25 08:04:33 -04:00
Jeremy Long
70667814f6 changed display name of files contained in archives so that it doesn't look like an invalid path
Former-commit-id: db3a7edadef81dd7e66c68cf0f4cdf43e12936b6
2014-10-25 08:03:47 -04:00
Jeremy Long
766b7a940c changed scan methods to return a list of dependencies instead of void
Former-commit-id: f0fd1e06708de3159acff0147968b5508a54fc05
2014-10-25 08:02:36 -04:00
Jeremy Long
0c37586357 added Xlint:unchecked
Former-commit-id: e26970bf2cd4606b777bddfc806ba74227da9cba
2014-10-25 08:00:11 -04:00
Jeremy Long
b4aa55ce1f Merge branch 'master' of github.com:ctrl-alt-dev/DependencyCheck into ctrl-alt-dev-master
Former-commit-id: 4d1ab5ecacf0ca7354f57d3a49accd5a173e0a26
2014-10-24 05:36:40 -04:00
Jeremy Long
109443ce77 changed the name property of dependencies identified within an archive
Former-commit-id: 5d778afea68c881efea628d9ecc28596d3cbc9d6
2014-10-23 06:09:39 -04:00
Will Stranathan
5f38741831 Initial checkin of work on a Solr analyzer which will replace Nexus on Internet checks
Former-commit-id: 7b51d0cb1d23122bc73261424b66df24f72370cd
2014-10-22 22:35:03 -04:00
Jeremy Long
c6f391501d added test case for patch to issue #156
Former-commit-id: 8fa1de0566760a41d65614921f4bb764178151f8
2014-10-22 21:43:23 -04:00
Jeremy Long
d1f3105fbd added appropriate sorting to resolve issue #156
Former-commit-id: b5d0dd3e9d337417ea3483b491035009269eaa5c
2014-10-22 21:42:51 -04:00
Jeremy Long
8f88ca9d3d corrected compareTo to use file path, not just file name
Former-commit-id: 98e19c402cd5824aed4b3b4923b7ef72359752cf
2014-10-22 21:12:40 -04:00
Erik Hooijmeijer
f9e4ca0cc2 corrected javadoc
Former-commit-id: 3e0533a8a36afcacb647610f352bfd854e505272
2014-10-22 19:10:54 +02:00
Erik Hooijmeijer
5caf023677 added excludeInternalGroupIds configuration parameter that allows the exclusion of groupIds of internal projects. This is to speed up analysis as internal projects have no public vulnerabilites nor a sonatype listing but do frequently have names that collide with other libraries. The parameter can have multiple values, e.g. <excludeInternalGroupIds><groupId>nl.someinteral.project</groupId><groupId>org.another.one</groupId></excludeInternalGroupIds>
Former-commit-id: ffa0716366c6c7b65d1181f2bd945472b75b5483
2014-10-22 19:08:33 +02:00
Erik Hooijmeijer
35c2f4873c values from the project pom.xml are now taken into account as well
Former-commit-id: ca6c5b40f09959f162b337f2cb4268a57ce46d3d
2014-10-21 20:09:54 +02:00
Jeremy Long
1ed7bab375 additional updates for issue #162, if no pom is present in the jar, but it exists in the repo the pom from the repo will be used
Former-commit-id: 0d1603f45420b57b00149764acca1fe5bd3f3c83
2014-10-17 20:55:58 -04:00
Jeremy Long
f0d1bfb777 added an additional suppression for issue #162
Former-commit-id: 9c3403814b15cbcdebdc9e0d43253016548efb23
2014-10-16 06:57:24 -04:00
Jeremy Long
42519ac843 version 1.2.6-SNAPSHOT
Former-commit-id: 0b301bfa4a942e43976a34195a32982000f34d12
2014-10-14 06:28:14 -04:00
Jeremy Long
8869e13385 Merge pull request #161 from hansjoachim/exceptionTests
Uses ExpectedException to test for exceptions

Former-commit-id: 38f9b007311032db7edec0e1c345130409518855
2014-10-13 05:47:54 -04:00
Hans Joachim Desserud
8f9cbfe806 Unrelated: remove unused before/after
Former-commit-id: 68524208b8c0a197e9682aceec25cff0bc30ff56
2014-10-12 18:29:27 +02:00
Hans Joachim Desserud
6481938626 Test for exceptions with ExpectedException
Former-commit-id: 47c6c559196b4c10a5deb3698805ff7276f0aa83
2014-10-12 18:27:03 +02:00
Jeremy Long
9c7cc2acbf corrected the documentation
Former-commit-id: 428b6b3e07ed250ac11fb6c917c90888c0d20246
2014-10-10 20:03:36 -04:00
Jeremy Long
89a57d4ed3 removed velocity-tools to close issue #160
Former-commit-id: 5ca46405a5aa7521bd0a0de54500d848156491a6
2014-10-10 06:36:47 -04:00
Jeremy Long
732378592b corrected link to the unfortunate realities pdf
Former-commit-id: 285bcfd78f00fa514d3f96b5dcbac2fd18384177
2014-10-08 06:47:27 -04:00
Jeremy Long
19dc46660b corrected link to the unfortunate realities pdf
Former-commit-id: 75332bd18e6ac3ecac5dddda2f3945ae4003bd06
2014-10-08 06:21:55 -04:00
Jeremy Long
4aad3471af fixed javadoc
Former-commit-id: 2402251f2157864ee3c51dd571cb9d21e17856e6
2014-10-08 06:21:20 -04:00
Steve Springett
533b455356 Merge remote-tracking branch 'origin/master'
Former-commit-id: da6ffef3c01da250ecbceadac8a6e955bb47f83f
2014-09-16 18:52:44 -05:00
Jeremy Long
92bd305b00 version 1.2.5
Former-commit-id: b3fe4ea80c4286684eda15a3b9f46cebc4f09ee8
2014-09-16 19:47:17 -04:00
Jeremy Long
f71eb09f74 updated sample report
Former-commit-id: 1de33769f71be8c86116b4a17d8282c69e0abed6
2014-09-16 19:47:07 -04:00
Jeremy Long
83d4a7bc18 moved test case dependency,jersey client, to the allTests profile
Former-commit-id: 58da4d9c21803362133f74c168aea256c51a5824
2014-09-16 05:24:43 -04:00
Steve Springett
58807d9021 Merge remote-tracking branch 'origin/master'
Former-commit-id: d3c49db24c64c2869257d1b3f9a8493e7925e7a7
2014-09-15 01:11:34 -05:00
Jeremy Long
29595324c4 added suppression rules for jersey-client
Former-commit-id: cb8f4081c6d0fc2128a3a3dfda294a541c16adec
2014-09-13 07:10:17 -04:00
Jeremy Long
f9064e526f added test jar to the extended profile test dependencies
Former-commit-id: b24966e3936afd9337dbea5476a696ddf46efc65
2014-09-13 07:09:54 -04:00
Jeremy Long
93ec2e8639 fixed javadoc
Former-commit-id: d06907a74a6fd4cf9ac5e5774af63eda5aba02b3
2014-09-13 05:50:49 -04:00
Jeremy Long
0e2a31709a added test cases to ensure setting the base flag will prevent the identifier from being added to the suppressedIdentifiers collection
Former-commit-id: d369797a3b14fc2c42621d273d6f314e968848b9
2014-09-13 05:45:05 -04:00
Jeremy Long
c785b39eda added assertion to validate that the base flag is being processed
Former-commit-id: 0364e57af8f548d010f17f948492e9472433c675
2014-09-13 05:44:09 -04:00
Jeremy Long
8fab2f58da added the base property and skipped adding the vulnerability or identifier to the suppressed collection if this is a base suppression rule
Former-commit-id: a668d7d8b9345b6ad44bfff1ced4ab783a1f90d8
2014-09-13 05:43:16 -04:00
Jeremy Long
e44ee3bfe1 added parsing of the base flag
Former-commit-id: 02f533177846bcd4a98b31f851e91f438e1ddeaa
2014-09-13 05:42:01 -04:00
Jeremy Long
62065c9d28 corrected the removal of an identifier so that iterator.remove was correctly used
Former-commit-id: 252507772242cc7ff42ef9f310cfca3bec7cb075
2014-09-13 05:41:26 -04:00
Jeremy Long
c76275275f added the base=true flag to all base suppressions
Former-commit-id: ac77f3fc4ff80c182b7736554a1960e186e67d69
2014-09-13 05:40:37 -04:00
Jeremy Long
257f78879d added base attribute to suppression rules
Former-commit-id: bcadbd75b99471a56d604c2f158570305e9b4010
2014-09-13 05:40:06 -04:00
Jeremy Long
894263809c added base flag to one suppression entry
Former-commit-id: 7d6bbf36e5e35c2ee2fe8c901281996a34706036
2014-09-13 05:39:38 -04:00
Steve Springett
bc9458101c Merge remote-tracking branch 'origin/master'
Former-commit-id: 16fb5a44d47fb699282b6babd112848276cb6bab
2014-09-12 10:50:08 -05:00
Jeremy Long
c503935d6a updated to correctly close the ObjectOutputStream based on guidance from the CERT Java Secure Coding Standard
Former-commit-id: 1c7b929055f273d49b1203c117d7bb12162cfdb2
2014-09-12 06:36:00 -04:00
Jeremy Long
d4756c9eb8 updated base suppression list to include sandbox:sandbox - a php app
Former-commit-id: 087a4c5af2afd03a1d4703d2e1e5a1607a2e7ac9
2014-09-12 06:34:23 -04:00
Jeremy Long
0004767775 added fix for issue #147 to address springsource, non-core spring, jars being idenified as cpe://a:springsource:springframwork
Former-commit-id: 0a3182123be78a3f450cdef0bcc395907d27730a
2014-09-10 17:55:04 -04:00
Jeremy Long
74908642c7 added test dependency
Former-commit-id: fa4846dfa384639114f32ed3b7a0d91347b8dabf
2014-09-10 17:39:31 -04:00
Jeremy Long
aadfb71c98 fixed test case by removing a temporary test entry in DetermineCPE_full
Former-commit-id: 0f91c7b8e1d536c9d15176dc2d9a439da4e8ccdc
2014-09-10 17:37:54 -04:00
Jeremy Long
1244af649d updated to improve CPE matching so that if a broad match occured (cpe with no version number) we use the highest confidence version when generating the CPE identifier
Former-commit-id: 6e8c87a71522b1ca7cfa9d72ca419a792d1b17e7
2014-09-09 15:10:08 -04:00
Jeremy Long
7bd48cc811 updated version analysis to reduce false positives and increase accurate detection
Former-commit-id: 6097160434b7e98182738706790d82cdbd867175
2014-09-09 15:07:28 -04:00
Jeremy Long
8f3ce38418 re-ordered operations so that a new lucene index is no longer created on each call to calDetermineCPE_full
Former-commit-id: e2af1d893b47afe1ed36d1ab1e6840d47757b509
2014-09-07 08:28:44 -04:00
Jeremy Long
1b2d9b4245 fixed minor display bug
Former-commit-id: 65e1adcdc7677490907ee6eca68bf1174d355a3c
2014-09-07 07:20:45 -04:00
Jeremy Long
c6b2b34fde removed duplicative test of downloading XML
Former-commit-id: 97d1371609af2cc9583b0ac071a8606c93a34fbe
2014-09-07 06:59:50 -04:00
Jeremy Long
e58fc13fdb additional looping corrections in determineCPE() to break early if an identifier is found
Former-commit-id: 4ec4ffe598d9870a793da8980bb863633c1967d7
2014-09-06 19:09:38 -04:00
Jeremy Long
922d53d2e4 Increased the confidence on the pom artifact and groupid
Former-commit-id: b052b50353197e0f7cb419e6f618f2320da11183
2014-09-06 19:08:22 -04:00
Jeremy Long
fec53b3951 corrected looping in determineCPE()
Former-commit-id: 329f20687223f38273b2e23601b05fcea2b9122f
2014-09-06 06:37:12 -04:00
Jeremy Long
e72e2c6a02 corrected documention error with the reporting sets
Former-commit-id: ab503e5a710a69624a3216edea880e614b003ba8
2014-09-01 08:19:46 -04:00
Jeremy Long
08d001ee05 checkstyle corrections
Former-commit-id: ecc262c75890ef4c8760cb41e7948cb6decdf5d5
2014-09-01 08:13:53 -04:00
Jeremy Long
99d8a07f4a updated documentation as part of resolution for issue #144
Former-commit-id: f47171e52e22e75c582bed47c9d0e9df3945e148
2014-09-01 08:13:34 -04:00
Jeremy Long
eef565134b update to correct issue #79 - the internal report format is no longer supported
Former-commit-id: 4dc9a83008a75d97f3838aa1a41f1d93eb39f2de
2014-09-01 07:39:54 -04:00
Jeremy Long
9d78293437 fix for issue #128 - the application will no longer throw an exception on large files when generating the hash digest
Former-commit-id: aae811e5d10ca0ee5ac7316fa992b5c45e43d2be
2014-09-01 07:30:04 -04:00
Jeremy Long
fc0a556e5f checkstyle and findbugs corrections
Former-commit-id: 2bf90876b7c88bccb93135a0be43f01e49c3cd30
2014-08-30 15:51:24 -04:00
Jeremy Long
b6b070584f checkstyle corrections, added javadoc, etc.
Former-commit-id: 2b806cb8527a627d400644465bcf9f04d687d729
2014-08-30 15:19:52 -04:00
Jeremy Long
e13225eee6 initial version of aggreation completed for issue #19 - some cleanup still needs to happen before final release
Former-commit-id: 98c9af3004e2c725d0dca5d6847b65a4646c6a73
2014-08-30 07:50:27 -04:00
Jeremy Long
da20fb2922 added velocity-tools to base suppression as it should not be reported as struts
Former-commit-id: 4649d95a091def05ae249da42aa7d6f845b14d59
2014-08-30 07:48:02 -04:00
Jeremy Long
459c2beb12 noop
Former-commit-id: a51d953d0c60c39d845d69d66c87db8b904382c4
2014-08-29 05:41:31 -04:00
Jeremy Long
f1cc44dead removed the externalReport option
Former-commit-id: 4cc3ec2638140f8320eb8946d2154dae330786b0
2014-08-29 05:38:40 -04:00
Jeremy Long
d24cfdc382 resolved merge conflict
Former-commit-id: 4806c0c99bd35d64135ee22a12018e6a92c54059
2014-08-16 07:41:55 -04:00
Jeremy Long
ae4cc543f6 corrected outputFile name to correctly use the target directory from project.getBuild().getDirectory()
Former-commit-id: 7ef2ca45e502e945e7356f9c63845eb4e7b532fc
2014-08-16 07:30:34 -04:00
Jeremy Long
abdb3d17f9 added initial plumbing to support report aggregation per issue #19 - report aggregation is still not complete
Former-commit-id: df248d0c1a7f3628653717029f034a46afde742b
2014-08-16 07:29:35 -04:00
Jeremy Long
4095c5da38 made serializable
Former-commit-id: 27d8084ea981766791df05c5e9ef61dbe40ba32c
2014-08-16 07:27:28 -04:00
Jeremy Long
78fab728e4 added an additional generate method
Former-commit-id: 44b78b525da45918f3b4bc77b368f88e49361c95
2014-08-15 06:22:54 -04:00
Jeremy Long
52097a6867 initial version of the ReportAggregationMojo
Former-commit-id: e15575413d625c6b5c5f3d73f5a739e1890eec27
2014-08-15 06:02:04 -04:00
Jeremy Long
cb990b55b5 added the apache 2.0 license to the header
Former-commit-id: f7d5558f565abe9c3e1a04f79666137e4f67e017
2014-08-15 06:00:30 -04:00
Jeremy Long
5070fe303a added the configuration value mavenSettingsProxyId to inform users that if you have multiple proxies defined in settings.xml you can choose which one should be used
Former-commit-id: 20fa4a92d446fd30a882e07c37897907fb1638b1
2014-08-15 05:59:39 -04:00
Jeremy Long
b4405ebf3e minor changes to the TOC table - removed # of related dependencies and renamed CVE Impact to Highest Severity to clear up ambiguity
Former-commit-id: b8b14ab120d889057864eb6f93cadad9773b9171
2014-08-15 05:58:10 -04:00
Jeremy Long
d9e6bf5068 Merge pull request #145 from erik-wramner/fix-maven-proxy-bug
Modified Maven plugin to use proxy host as is, not as an URL. This works...

Former-commit-id: 53e28e6799ef13ca3d88ed00aaa1e0c3f24aa04b
2014-08-15 05:37:14 -04:00
erik-wramner
6822188f52 Modified Maven plugin to use proxy host as is, not as an URL. This works correctly for our proxy server with Maven 3.
Former-commit-id: 02e97e359b1c5d6d9f1dc9149c9fbed510d31559
2014-08-10 12:15:00 +02:00
Jeremy Long
15858d03ff moved reporting functions from the core maven plugin to a utility class
Former-commit-id: d63d2a7a5031038b9f86bbe94fc4a198374bd9f3
2014-08-08 14:44:26 -04:00
Jeremy Long
814a733258 moved reporting functions from the core maven plugin to a utility class
Former-commit-id: 0d8507b8534320189ea5f36d0fc1cac7d0843c0f
2014-08-08 14:43:00 -04:00
Jeremy Long
3ce85d8ca9 rework of report generation and added fix for proxy (patch for proxy was from Erik Wramner) to close issue #136
Former-commit-id: afc81123b31189618ade397b830bf421db2918f8
2014-08-08 14:42:23 -04:00
Jeremy Long
d3bff2f39d version 1.2.5-SNAPSHOT
Former-commit-id: 85ed1238022348f1e9496ffe3c95d4ff8e3d09c3
2014-08-05 18:55:30 -04:00
Jeremy Long
f2272730ac version 1.2.4
Former-commit-id: 4de7e508eb1885bb72e866960fa5402f72bf8e49
2014-08-05 18:45:36 -04:00
Jeremy Long
fe19c97d86 corrected link syntax
Former-commit-id: 01b9ea03864248a9c5427af6d7238c435c0a4fa7
2014-08-05 18:45:25 -04:00
Steve Springett
d49556bf3d Merge remote-tracking branch 'origin/master'
Former-commit-id: 1ed0b6e8621fb68a823b8127775fc5f86932cc00
2014-08-05 14:25:20 -05:00
Jeremy Long
56b447493e added additional error messages about the proxy if the download fails per issue #136
Former-commit-id: 7a5dcc58ab959a70b7e086a984f5d9289d749b99
2014-08-05 10:58:43 -04:00
Jeremy Long
e45b68eda7 fixed issue #140 - false positive is now suppressed
Former-commit-id: 4b584884e1eb5efa214b1af87d555e6866db917a
2014-08-05 10:44:33 -04:00
Jeremy Long
8df1ef5986 removed unused values for variables and fixed javadoc
Former-commit-id: 1fb0be5d88301c5a1043d88b93c052edcebe3c5c
2014-08-05 09:26:04 -04:00
Jeremy Long
dac34cda82 checkstyle corrections
Former-commit-id: a888649ce7d75b721e053d305a406ecddbdcdbc4
2014-08-05 09:25:08 -04:00
Jeremy Long
9925e30c8b removed useless parens
Former-commit-id: 00ddea8b437494cc32e47e3066a448015d95467b
2014-08-05 09:24:48 -04:00
Jeremy Long
dc5566b5ae updated the exclusion list for generated code
Former-commit-id: eeaccab472347cc5fcfe21552c7fc1e9ab8ea1de
2014-08-05 09:24:16 -04:00
Jeremy Long
8132ee651a added documentation for issue #139
Former-commit-id: 95fdcf4d95cbe50ba884be561fbec0e9977578a0
2014-08-05 09:23:47 -04:00
Jeremy Long
f49a134a3d updated sample report
Former-commit-id: 7f312fec5ffbd8daa609299efdc53b83e83e6bd6
2014-08-05 09:22:54 -04:00
Jeremy Long
bd955cda06 improved TOC per issue #138
Former-commit-id: 7cc7ccb9d0dd8257588438220bf61d78caa2bcec
2014-08-05 09:22:28 -04:00
Jeremy Long
c6dbc01912 ensured FileInputStream is correctly closed
Former-commit-id: 6e0362476f456e5af07e686fdccf04e600a97de8
2014-08-05 09:19:35 -04:00
Jeremy Long
fabe1aa940 checkstyle corrections
Former-commit-id: d23c5d17629f8484c1c07d328c9c1b74a678e062
2014-08-05 09:19:00 -04:00
Jeremy Long
ba5dbb94b8 removed fully qualified class name from jaxb instantiation
Former-commit-id: 15d5f9e2013daba62f7e32618958743e87e8ea79
2014-08-05 09:18:35 -04:00
Jeremy Long
6ccc053d7e added more documentation
Former-commit-id: 87a761ffe89d36fb2011d5a38d607c35178d70ec
2014-08-05 09:16:38 -04:00
Jeremy Long
cf21dfaa3a changed warning log message
Former-commit-id: 9a7fd59cd15e627ed103a6e797bc47518805276b
2014-08-04 08:05:31 -04:00
Jeremy Long
54ceb630de fixed project descriptions and corrected site deployment issues
Former-commit-id: 39373b0805b84b99c3e84dbad1c8a2301f277221
2014-08-04 06:24:00 -04:00
Jeremy Long
0a0c302cb2 re-orered the module listing
Former-commit-id: 1ec7ccbc98463c5b2af09c973a1bc83319630ec8
2014-08-04 06:22:11 -04:00
Jeremy Long
f6eef54566 added fix for issue #136
Former-commit-id: c259a419769b41e138d3cbb3811f1c24652601d5
2014-08-01 15:09:41 -04:00
Jeremy Long
a69804f84d updated documentation
Former-commit-id: e8b6c86e47cff66f72ffb53ccba4bef18479b43e
2014-08-01 14:31:19 -04:00
Jeremy Long
0b06b194b0 added XmlRootElement attribute
Former-commit-id: a3263e63c8c7b12c90ad388c8eda1ab09e43786c
2014-08-01 14:22:40 -04:00
Jeremy Long
73f6ce304c corrected jaxb newInstance
Former-commit-id: 32a1b759ad1e127784ae9bff902cca01c6faaad7
2014-08-01 14:21:55 -04:00
Jeremy Long
195818a432 minor changes to logger and added a catch for throwable
Former-commit-id: 0ca337442a3f60db9655c3527711ba16af3096a6
2014-08-01 06:02:22 -04:00
Jeremy Long
47c817de1c performance improvement for checksum calculations - using MappedByteBuffer
Former-commit-id: 5024926737f1abbae47da5e95615dd2f2bddbcc6
2014-07-20 07:54:54 -04:00
Jeremy Long
8b3894f213 removed version from maven usage
Former-commit-id: 234d0bc0e147cdb9ebf7d1c59e5ef53421589d42
2014-07-20 06:49:31 -04:00
Jeremy Long
a411252f07 Merge branch 'bkimminich-patch-1'
Former-commit-id: abe645b3693a6a387de9b36ffedf32382bd24f58
2014-07-20 06:39:13 -04:00
Jeremy Long
d7626aeb3f Merge branch 'patch-1' of github.com:bkimminich/DependencyCheck into bkimminich-patch-1
Former-commit-id: aa6a0fc0a9352a1a2d3d4a0dfceb428242b455fd
2014-07-20 06:38:58 -04:00
Jeremy Long
3565098650 converted abstract class to a final class with a private constructor
Former-commit-id: 582a421e69eac2bfc008ca8ee2fe88c7734c9a31
2014-07-20 06:36:33 -04:00
Jeremy Long
803fcf146b minor fix to test case
Former-commit-id: bf20319aed4f100d124cdeb7abeafe6598778891
2014-07-19 13:58:30 -04:00
Jeremy Long
d9d646c5fb fixed connection string property
Former-commit-id: 951cf212c80a52909cc2dd66e843b63b35991045
2014-07-19 13:57:36 -04:00
Jeremy Long
034a274b07 fixed copy paste error
Former-commit-id: 83c51cb5b43c635088025a2076121911af32a7ec
2014-07-19 13:57:15 -04:00
Jeremy Long
718d7af8bc updated to use the new getConnectionString implementation
Former-commit-id: c5bd68b3d2fb4c2470d6c50dc5f8f9f6036b9fce
2014-07-19 07:38:51 -04:00
Jeremy Long
860d3d9c8b made the ensureDBExists method perform a correct check rather then the previous hack
Former-commit-id: 5fae859fa7531761e78022eb2e8c4c41e6d5d150
2014-07-19 07:38:08 -04:00
Jeremy Long
f28b566992 added data.file_name and data.version
Former-commit-id: e692a13a216ec6808e3fd92397fd3c50854cfa56
2014-07-19 07:37:11 -04:00
Jeremy Long
1c261c7463 added more tests
Former-commit-id: 75a4e44d06838221b060c0569716e85e1c6fc996
2014-07-19 07:36:35 -04:00
Jeremy Long
226b2482b1 added data.file_name and data.version
Former-commit-id: 6f33c306170f96f344bb85aa7820cc94cd4d5eeb
2014-07-19 07:36:16 -04:00
Jeremy Long
ff346dc429 changed getConnectionString to allow a more dynamically constructed string based on more setting keys
Former-commit-id: 1fb18720ab1a1c6d947bc94366b8ee2ca9cb711e
2014-07-19 07:35:48 -04:00
Jeremy Long
2dcef25175 performance improvements for large files
Former-commit-id: 6a49a7066cb01c613b5c6f07c8497601a88e7f8d
2014-07-19 07:34:50 -04:00
Jeremy Long
46702bbb5c moved checkSumTest.file, checksum.java, and checksumTest.java to dependency-check-utils
Former-commit-id: 0c05e466b5fe071ca55552660d471431572c0558
2014-07-17 06:03:21 -04:00
Jeremy Long
5600c9bc69 removed commented out property
Former-commit-id: 2a07ced007c986d3ab127d8ff216f49c332f41c3
2014-07-17 06:01:59 -04:00
Jeremy Long
d7e46b1693 corrected the connection string in the test properties
Former-commit-id: 1c37d4bd4de49cddc34b92a27875e0a07eee600f
2014-07-17 06:00:59 -04:00
Jeremy Long
fe8c60ade1 added additional setting keys and methods getDataDirectory and getConnectionString
Former-commit-id: 5e8a55c498fa7ae5331ba4fbeb86cd68b9fd8eda
2014-07-17 06:00:06 -04:00
Jeremy Long
288892441f corrected javadoc
Former-commit-id: c0c7d8da486a08dfc3e9232b57166d4c496bb798
2014-07-17 05:59:10 -04:00
Jeremy Long
e1179a8e22 moved getConnectionString to the Settings class
Former-commit-id: d35df6d103505888ac4d87f964d8d615996ce614
2014-07-13 06:56:40 -04:00
Jeremy Long
4b06d0fd87 upgraded version on commons-compress to 1.8.1
Former-commit-id: 2dc8698035e18764e101b36b11faf9e5c7188c5b
2014-07-13 06:54:59 -04:00
Jeremy Long
464d91f45a fixed resource leaks found by coverity
Former-commit-id: 0e2d3b866853e2b906b9683e27602fd244298e55
2014-07-08 06:17:36 -04:00
Björn Kimminich
5cc7aa25cc Update README.md
- set version in POM snippet from 1.0.2 to 1.2.3
- set URL to Ant Task docs to http://jeremylong.github.io/DependencyCheck/dependency-check-ant/installation.html

Former-commit-id: 8a2176aee9948b5bfd0c1f08c6c7bb9fdadc45a1
2014-07-04 14:17:57 +02:00
Jeremy Long
20ec224070 updated version to 1.2.4-SNAPSHOT
Former-commit-id: 65d0e1ba5ed781e9f70ec7fd0c115a027e3bbc00
2014-06-28 08:14:49 -04:00
Jeremy Long
9cbcc29ddb added utils to the parent site
Former-commit-id: 2a80ad86f5ab94fb21131786d9dce3439269f8cb
2014-06-28 08:14:35 -04:00
Jeremy Long
0badbfc4a0 version 1.2.3
Former-commit-id: c355adf9813220c4b3dac3450e80a83a245209a6
2014-06-28 06:06:33 -04:00
Jeremy Long
e042148c62 Merge branch 'colezlaw-master'
Former-commit-id: 5654a0e5cd8b8524ac317a55a2af5a52408bc8ca
2014-06-26 20:33:45 -04:00
Jeremy Long
d8ba04ae7f Merge branch 'master' of github.com:colezlaw/DependencyCheck into colezlaw-master
Former-commit-id: 27bac793e5284df49c0804361c07d4ef559cb251
2014-06-26 20:33:35 -04:00
Jeremy Long
314d5fdad2 Merge branch 'colezlaw-suppression-fix'
Former-commit-id: 1e7d9df774347ea043fef8ef3f5d6ca4aebaa15a
2014-06-26 20:32:07 -04:00
Will Stranathan
5c874cafd1 Fixed suppression analyzer to load from input stream fixing failure
Former-commit-id: 4e6f8d7fddcf7ed26ad60b7aa8bc3a6b22ae19cc
2014-06-26 15:14:55 -04:00
Will Stranathan
8cafc14d09 Updated to 1.1 of GrokAssembly.exe to deal with exceptions
Former-commit-id: 8c1d6ad04e378f2a19e2fcdc9ebc1eab12be9aef
2014-06-24 10:16:53 -04:00
Jeremy Long
25ac5033fc snapshot version 1.2.3
Former-commit-id: 58f96e7ef71987a53626287f95b332f04b60a6f6
2014-06-22 21:33:58 -04:00
Jeremy Long
848be0db6c version 1.2.2
Former-commit-id: 8da06e1a2f4b41bccc22105d7bc758442bb14e57
2014-06-22 21:31:58 -04:00
Jeremy Long
0f9da0731e updated text
Former-commit-id: 7749b9ec6b0ce9502e1c7129bdec902ce5b43595
2014-06-22 21:22:32 -04:00
Jeremy Long
8bc2364cce added site information to the dependency-check utils
Former-commit-id: 7d8c4c3c2b98e0d492f4447e5f1dc1f071a2241a
2014-06-22 19:56:14 -04:00
Jeremy Long
b64916ce3f added file analyzer documentation
Former-commit-id: c0c29021cd1197f26942ff36c8b63220d1267c21
2014-06-22 19:55:21 -04:00
Jeremy Long
452955667c checkstyle correction
Former-commit-id: e5a891ea5b438e64e8a3aa5e697cb859d1a1f09a
2014-06-22 19:54:25 -04:00
Jeremy Long
f38bbf4cc7 minor javadoc correction
Former-commit-id: 45e621682304820fe17c17e92bd0aa5ac5dfd023
2014-06-22 19:53:59 -04:00
Jeremy Long
25eaa11a52 updated description
Former-commit-id: c8cb8b041ce351c2d33a3621f772e75d02950193
2014-06-22 19:53:38 -04:00
Jeremy Long
4b4da8d467 checkstyle/pmd/etc. corrections
Former-commit-id: 59883bd0b03c8690ce9a20120eafefe7c61384cd
2014-06-22 19:03:33 -04:00
Jeremy Long
13116c5381 added support for suppression by GAV (issue #124), created base suppression.xml (issue #123), and fixed false positives related to spring security (issue #130)
Former-commit-id: 330134211d022fec336dc1ca39205a94a088ee84
2014-06-22 16:34:39 -04:00
Jeremy Long
d2cd406a62 added additional test resources
Former-commit-id: b788c7420b82d8a108cd2335c536be667c2ab293
2014-06-22 16:32:48 -04:00
Jeremy Long
acbce05fbf updated to support suppression by maven coordinates (GAV) per issue #124
Former-commit-id: 3cff74ded9b0c352fb1d45e784d89c3c20f55467
2014-06-20 06:47:46 -04:00
Jeremy Long
bee4d3a338 fixed bug that left false positive, previously fixed, due to the file name modifications that the archive analyzer makes - regex needed updating to not just look for the start of the filename
Former-commit-id: 922a9edaf9123524585b97e6cb9f8efd4a389031
2014-06-14 07:04:02 -04:00
Steve Springett
b9003a2f02 Merge remote-tracking branch 'origin/master'
Conflicts:
	dependency-check-ant/src/main/java/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.java
	dependency-check-ant/src/site/markdown/configuration.md
	dependency-check-cli/src/main/java/org/owasp/dependencycheck/App.java
	dependency-check-cli/src/main/java/org/owasp/dependencycheck/cli/CliParser.java
	dependency-check-cli/src/site/markdown/arguments.md
	dependency-check-core/src/main/java/org/owasp/dependencycheck/agent/DependencyCheckScanAgent.java
	dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/AssemblyAnalyzer.java
	dependency-check-core/src/main/java/org/owasp/dependencycheck/data/nexus/NexusSearch.java
	dependency-check-core/src/main/resources/dependencycheck-resources.properties
	dependency-check-maven/src/main/java/org/owasp/dependencycheck/maven/DependencyCheckMojo.java
	dependency-check-maven/src/site/markdown/configuration.md
	dependency-check-utils/src/main/java/org/owasp/dependencycheck/utils/Downloader.java
	dependency-check-utils/src/main/java/org/owasp/dependencycheck/utils/Settings.java
	dependency-check-utils/src/main/java/org/owasp/dependencycheck/utils/URLConnectionFactory.java
	dependency-check-utils/src/test/java/org/owasp/dependencycheck/utils/DownloaderIntegrationTest.java
	src/test/resources/data.zip

Former-commit-id: 65443535a6c7cc240eb3999f60ea82044e9fff6a
2014-06-10 10:57:45 -05:00
Jeremy Long
bce226002b added data.zip back after cleaning up history
Former-commit-id: 6d227bf38e8023eeb134c965f48fbf859aeb9600
2014-06-01 11:31:09 -04:00
Jeremy Long
a417db7c7a updated documentation to replace deprecated proxyUrl with proxyServer
Former-commit-id: 165e14fcb6b57d8a522875eaa65f5ee766c9b1af
2014-05-31 06:43:07 -04:00
Jeremy Long
0ffef12a8b deprecated the proxyUrl field replacing it with proxyServer; getter and setter for proxyUrl now just wrap proxyServer
Former-commit-id: 5f1fbdf2eda6f05252f81dd8bf7acd44c01b7b6f
2014-05-31 06:42:27 -04:00
Jeremy Long
4539b040e0 deprecated proxyUrl and replaced it with proxyServer
Former-commit-id: 3330de9b2c36742a0b93d478b7dadaccea00cd4a
2014-05-31 06:39:36 -04:00
Jeremy Long
f85014a86d deprecated proxyUrl and replaced it with proxyServer - using the deprecated configuration will still work but will generate a warning
Former-commit-id: d9ff32d6b6e2f4d088f95d52ee33f1d0df3457fd
2014-05-31 06:38:50 -04:00
Jeremy Long
d90d07c68b added code to disable the analyzer if initialization fails
Former-commit-id: 202baa329f07fb24921ce83660d596d46b71b663
2014-05-30 05:26:03 -04:00
Jeremy Long
ce292b84fa fixed spelling error in property name
Former-commit-id: 106e8e9128bc371ff78f3a73c3f0da6012761cba
2014-05-30 05:25:20 -04:00
Jeremy Long
01690860db renamed PROXY_URL to PROXY_SERVER to avoid confusion
Former-commit-id: 1fbc025fba68aff644a8b8582657e5ef30024a24
2014-05-24 07:06:59 -04:00
Jeremy Long
89fb2d4915 fixed error messages and added status code checks
Former-commit-id: d21ff11466908f07ca02a50269f08d76f16a243e
2014-05-24 07:06:46 -04:00
Jeremy Long
5cc3a42832 renamed PROXY_URL to PROXY_SERVER to avoid confusion
Former-commit-id: 730eebed21baddfbd90c42a95769f8781de95b56
2014-05-24 07:05:05 -04:00
Jeremy Long
6b303410d1 added a new initialize method that accepts a properties file path to load to make the class more versatile
Former-commit-id: b6bee9569b075380b656faf9d2f1bf1c9aae849a
2014-05-21 06:42:43 -04:00
Jeremy Long
60b0145e04 added a new initialize method that accepts a properties file path to load to make the class more versatile
Former-commit-id: 00ec19b51a20c4ce3329a7c3c075a1f3ba16859e
2014-05-21 06:42:43 -04:00
Jeremy Long
8cae2f24b1 Moved some of the utility classes from core to a new utils module
Former-commit-id: 6c2ba353e41c6a43fef326896ea77ede300591ec
2014-05-21 06:29:46 -04:00
Jeremy Long
ce48823d38 Moved some of the utility classes from core to a new utils module
Former-commit-id: 2e6ff9631ff4c843f10db1e022e41e728394e420
2014-05-21 06:29:46 -04:00
Jeremy Long
0a04d753ea renamed CallableDownloadTask to DownloadTask
Former-commit-id: b4f805b231d3706c63a718ad23bc9b28a08cbb5f
2014-05-20 21:08:15 -04:00
Jeremy Long
d43fee5585 renamed CallableDownloadTask to DownloadTask
Former-commit-id: 4ed8987945722d99e0f23b2f379321a652f76348
2014-05-20 21:08:15 -04:00
Jeremy Long
35402c7bd3 fixed test cases
Former-commit-id: d76e5ba0431fdfc80847e7adbff9f0216ee7a191
2014-05-17 08:04:20 -04:00
Jeremy Long
5dc9e51dd4 fixed test cases
Former-commit-id: 081ea17023cef3313ce59dbf8ce7f2a8cff706eb
2014-05-17 08:04:20 -04:00
Jeremy Long
847a97f61c if maven identifier already exists we now update it with a hyperlink instead of adding a new one - the Jar analyzer may add a maven identifier based on the pom.xml
Former-commit-id: 00b8ca069e60a8fed72e767748380d0d6fa6908d
2014-05-17 08:04:03 -04:00
Jeremy Long
235fcccbd7 if maven identifier already exists we now update it with a hyperlink instead of adding a new one - the Jar analyzer may add a maven identifier based on the pom.xml
Former-commit-id: db0ae1145d000089fb10e0357566f03632a559b9
2014-05-17 08:04:03 -04:00
Jeremy Long
fac27a6120 cleaned up pom evidence collection and added a maven identifier if the GAV is available from the pom.xml
Former-commit-id: 83974c844dc91237ab3f174971f218e1678f47b4
2014-05-17 08:03:04 -04:00
Jeremy Long
91c971b8fd cleaned up pom evidence collection and added a maven identifier if the GAV is available from the pom.xml
Former-commit-id: 0400863fea2cfe86a5601b3ae134e7e98a4b29c7
2014-05-17 08:03:04 -04:00
Jeremy Long
2e24eda00d fixed false positives related to Apache POI and MS Office CPE/CVE per issue #126
Former-commit-id: 8cc26dc25ef613dd308388452c08a9f5852843ad
2014-05-14 19:17:47 -04:00
Jeremy Long
e43003cadc fixed false positives related to Apache POI and MS Office CPE/CVE per issue #126
Former-commit-id: cfde8d86cb339a9f2cf0b8c1f72f5ca198efab8a
2014-05-14 19:17:47 -04:00
Jeremy Long
7a653abf22 Update JarAnalyze to resolve issue #127
Updated JarAnalyzer to resolve issue #127 - duplicate package and package name evidence in the report.

Former-commit-id: ed40398c0b00e5fd5065705772ad15afaf5c7e0c
2014-05-14 18:01:12 -04:00
Jeremy Long
9a96165655 Update JarAnalyze to resolve issue #127
Updated JarAnalyzer to resolve issue #127 - duplicate package and package name evidence in the report.

Former-commit-id: 067643f7e99a7a4f36438b18c07e92a5e8544089
2014-05-14 18:01:12 -04:00
Jeremy Long
ae09229107 updated version to 1.2.2-SNAPSHOT
Former-commit-id: affbbe1f04a1e3de600e7498faa4f11c0d6d93c1
2014-05-10 08:41:37 -04:00
Jeremy Long
994aef411c updated version to 1.2.2-SNAPSHOT
Former-commit-id: e1b07457515dcab0f00c6a0b36fadb58ecc3deeb
2014-05-10 08:41:37 -04:00
Jeremy Long
be35f48bdd updated to release version 1.2.1
Former-commit-id: 1564da513f47b9256cb2e79918fcd2d6dd0091bb
2014-05-10 08:32:34 -04:00
Jeremy Long
094a180935 updated to release version 1.2.1
Former-commit-id: d908eed4538f0928c8b108348d9d46ce6d2f57e0
2014-05-10 08:32:34 -04:00
Jeremy Long
846173844e updated sample report
Former-commit-id: 35d6cb454ad1c6440d60c4717f33cf1eed733c2b
2014-05-10 07:25:42 -04:00
Jeremy Long
74e9de6370 updated sample report
Former-commit-id: c55ddb623e21f046c90493b0724f7eb34225ea29
2014-05-10 07:25:42 -04:00
Jeremy Long
59c28d8e51 fixed typo in log statement
Former-commit-id: 9109a644f1360571d83ff39d4ff5b05898c791ac
2014-05-10 07:23:18 -04:00
Jeremy Long
c7f31b3d79 fixed typo in log statement
Former-commit-id: 08192210f3c5bb322160fba678a56acb36af3198
2014-05-10 07:23:18 -04:00
Jeremy Long
abdfa3ccf6 pmd correction to logger
Former-commit-id: 500aa687bfa3dd9c126898e79121425e5e7e2e9d
2014-05-10 07:16:50 -04:00
Jeremy Long
98d0239d03 pmd correction to logger
Former-commit-id: 3c3b26ec8fbf4d2602c681ff02f460fe7e712914
2014-05-10 07:16:50 -04:00
Jeremy Long
99ad6634c4 checkstyle corrections
Former-commit-id: f0470062a3123825041e4db04fa128398a35994d
2014-05-10 07:13:07 -04:00
Jeremy Long
ffeab147ce checkstyle corrections
Former-commit-id: f9ae61d41ba01b6931892a339a9b701ae3c91ce2
2014-05-10 07:13:07 -04:00
Jeremy Long
84556fb055 updated version of presentation
Former-commit-id: 9660d3fb6b20e43c9b677f97f8756e2c341ae66d
2014-05-10 07:12:56 -04:00
Jeremy Long
90bdbd6b84 updated version of presentation
Former-commit-id: ec47594f35f5cca92888e6c8578b0d123d31b898
2014-05-10 07:12:56 -04:00
Jeremy Long
26e14e0151 added additional test file
Former-commit-id: e3a9aee97727ad8e60fc1a2a7c9a8abd7dc71e88
2014-05-10 07:01:24 -04:00
Jeremy Long
e29dd3cd33 added additional test file
Former-commit-id: 8487a2f4ba7287f54f0b5f69bc39e63bee455172
2014-05-10 07:01:24 -04:00
Jeremy Long
3df2daa5cb updated to remove archive files from the list of dependencies - additionally, if a zip file appears to be a jar it will now make a copy of the zip and scan it as a jar
Former-commit-id: e3b30cc5eaee14aa4ee7626adf2411972b26376a
2014-05-10 07:00:43 -04:00
Jeremy Long
23b95178ff updated to remove archive files from the list of dependencies - additionally, if a zip file appears to be a jar it will now make a copy of the zip and scan it as a jar
Former-commit-id: d927daea530abad2d578dbe0ff38b97d044b4775
2014-05-10 07:00:43 -04:00
Jeremy Long
c55efddc81 patch to remove additional false positives due to SCM entries in the pom
Former-commit-id: 7f889606bf9ece29121a14167b01ad6f5b93df76
2014-05-10 06:59:34 -04:00
Jeremy Long
9bde80357f patch to remove additional false positives due to SCM entries in the pom
Former-commit-id: 6101fae1b5957254ddbece5afc2db8edeb7bf9b8
2014-05-10 06:59:34 -04:00
Jeremy Long
a59c8908f0 updated to use displayFileName field instead of FileName when writing information about dependencies
Former-commit-id: 1ee4a19dda8de0678329c6d43a759696b16d363c
2014-05-10 06:58:51 -04:00
Jeremy Long
1485733715 updated to use displayFileName field instead of FileName when writing information about dependencies
Former-commit-id: bd3383ac4831bc44db6b63083e47802cce04b520
2014-05-10 06:58:51 -04:00
Jeremy Long
a421c5f952 added displayFileName field to the dependency class
Former-commit-id: 0b4af6346a1bfd1034a3b65e766c11a42dfcdf65
2014-05-10 06:57:44 -04:00
Jeremy Long
d125a7f09d added displayFileName field to the dependency class
Former-commit-id: 248f5397d37ea6e2f333dc0fe357188865bdb446
2014-05-10 06:57:44 -04:00
Jeremy Long
37b0612d45 removed additional false positives as part of patch for issue #93 and #119
Former-commit-id: 1d9275cc6f466beaa18a362515be98bafe9608b3
2014-05-10 06:56:53 -04:00
Jeremy Long
77486dffd4 removed additional false positives as part of patch for issue #93 and #119
Former-commit-id: 86f48b30150f2ba4db99dfc2eb15a0ac50a6e383
2014-05-10 06:56:53 -04:00
Jeremy Long
07bc94f9f6 fixed spelling error
Former-commit-id: 0bc1ec7d8a265a37751c23aa00733a9f002e6231
2014-05-07 19:33:59 -04:00
Jeremy Long
c84bcb433f fixed spelling error
Former-commit-id: d3aed24d6691b58ef132e00f9827e27fceb9fc73
2014-05-07 19:33:59 -04:00
Jeremy Long
82511880ac Merge pull request #122 from colezlaw/master
Fixed logging order of GrokAssembly for bad assemblies. Using resources ...

Former-commit-id: 78c484c7803b80bcb21b15351989805a627d38fd
2014-05-07 19:31:59 -04:00
Jeremy Long
f1e5221257 Merge pull request #122 from colezlaw/master
Fixed logging order of GrokAssembly for bad assemblies. Using resources ...

Former-commit-id: 65a41d23df6ccfa8c4f05235da3d7c613e4290a0
2014-05-07 19:31:59 -04:00
Jeremy Long
2f5cc6a8a4 added checks before warning that a file could not be deleted
Former-commit-id: b98d25e875e7523288df2cb0fed0b4518e4b52f4
2014-05-07 19:31:21 -04:00
Jeremy Long
b8bf01acc3 added checks before warning that a file could not be deleted
Former-commit-id: 098ea1889b49ade0c73385919906398c86627ab2
2014-05-07 19:31:21 -04:00
Jeremy Long
f9a0f5e7a1 fixed display bug when only one CPE exists for a given CVE
Former-commit-id: c1a96d619ce9bcbf78d91322d95168333a76fea9
2014-05-07 19:30:45 -04:00
Jeremy Long
65aa7bd1de fixed display bug when only one CPE exists for a given CVE
Former-commit-id: 18535dc408a51e516626ec4c43a3e72b01fd28f0
2014-05-07 19:30:45 -04:00
Jeremy Long
47b083eaca fixed display bug when only one CPE exists for a given CVE
Former-commit-id: 970b24e3f4d3203f17dc1269cec4156c98479d3a
2014-05-07 19:29:52 -04:00
Jeremy Long
6f511444a7 fixed display bug when only one CPE exists for a given CVE
Former-commit-id: 3b791d0a0fbe2587390e048cffc4453567ddf74a
2014-05-07 19:29:52 -04:00
Jeremy Long
8fcf5ee760 fixed bug causing vulnerabilities to be missed
Former-commit-id: e625225c6be3be1b471fab48c6eda0a616febfb9
2014-05-07 07:05:37 -04:00
Jeremy Long
ef5174d89f fixed bug causing vulnerabilities to be missed
Former-commit-id: 5c6421ea8475db16f7184340fa5b8b2033d53b29
2014-05-07 07:05:37 -04:00
Jeremy Long
f2006206d3 moved duplicated code to a method
Former-commit-id: ad0575ad74b7b5b3f420e466ca9a79f0ee2a2d69
2014-05-07 07:03:38 -04:00
Jeremy Long
e2a97e75d8 moved duplicated code to a method
Former-commit-id: f6cb80dc56ef86294f2490729bb84658d98e6c9a
2014-05-07 07:03:38 -04:00
Jeremy Long
c32361a428 fixed off by one string truncation issue
Former-commit-id: deead918832638cf9c7aadec194dad38f976946b
2014-05-07 07:03:02 -04:00
Jeremy Long
9fc6e265eb fixed off by one string truncation issue
Former-commit-id: f25894627402e9e2d310b25163dae7d7db1457d9
2014-05-07 07:03:02 -04:00
Will Stranathan
ac83c2bc3c Fixed logging order of GrokAssembly for bad assemblies. Using resources for logging
Former-commit-id: f2f833e67e20468ded70394ab71b481708c63d2a
2014-05-03 19:12:39 -04:00
Will Stranathan
f81c42b1fd Fixed logging order of GrokAssembly for bad assemblies. Using resources for logging
Former-commit-id: 611d665c7f5312462c19c8dcf8e87dc672184f67
2014-05-03 19:12:39 -04:00
Jeremy Long
32808c16e7 updates to help resolve issue 119
Former-commit-id: 89dd3034c595b658693a3cde0dac7259403bcf14
2014-05-03 14:46:48 -04:00
Jeremy Long
8594e146eb updates to help resolve issue 119
Former-commit-id: c8778008b91b7999cb8d88382efe8a83ebe87102
2014-05-03 14:46:48 -04:00
Jeremy Long
e4e2433396 updated test case and related data
Former-commit-id: ef8350d1502f69dd7c677fd688e76855f7d9985a
2014-05-03 12:30:29 -04:00
Jeremy Long
cda0dfdafe updated test case and related data
Former-commit-id: 513602f48b6d599b43848f0a88537190084e9cbf
2014-05-03 12:30:29 -04:00
Jeremy Long
8196b6e69e updated to begin fixes for issue #90 and #119
Former-commit-id: 36248efb48af1a7cfc174b8d23be673fe7ca93e8
2014-05-03 12:30:07 -04:00
Jeremy Long
363568b02c updated to begin fixes for issue #90 and #119
Former-commit-id: 1ceae6236ecd83e15f91ddab549027082e269e0b
2014-05-03 12:30:07 -04:00
Jeremy Long
8dd49b6156 added local copies of the NVD CVE data to speed up some of the test cases
Former-commit-id: 04f220ef62303f672afb10ba44fdb4c44af35a09
2014-05-03 11:02:23 -04:00
Jeremy Long
443ab02788 added local copies of the NVD CVE data to speed up some of the test cases
Former-commit-id: 54a264872bf151034706f6ed52de3a99ed961b04
2014-05-03 11:02:23 -04:00
Jeremy Long
c4ab83a801 updated to use local copy of data files to speedup the test case
Former-commit-id: 896363f35802484057cfcb3cefe8b6cd1782a02c
2014-05-03 11:01:31 -04:00
Jeremy Long
65784d6dc4 updated to use local copy of data files to speedup the test case
Former-commit-id: 5bb1d67156500ba74124ced18bcae599e4c5dc7a
2014-05-03 11:01:31 -04:00
Jeremy Long
2c51b7b835 removed duplicative test
Former-commit-id: 6b8ccf6c0e94827b165d6cabc935086905858675
2014-05-03 11:00:48 -04:00
Jeremy Long
da805d037f removed duplicative test
Former-commit-id: e403e85cef541416ccb3cf13704d019f4c2b5f92
2014-05-03 11:00:48 -04:00
Jeremy Long
bab49d04b7 added additional informational log statements
Former-commit-id: 25218345994ffef6506f38f8aa517abd78ceec2c
2014-05-03 11:00:21 -04:00
Jeremy Long
d383776245 added additional informational log statements
Former-commit-id: 9dfe02f737cffc05838dcffeec1cfca77c3100e1
2014-05-03 11:00:21 -04:00
Jeremy Long
6963d66240 updated settings cleanup to prevent issue with the update process
Former-commit-id: deba93c236f7f441df73e44ec57a4fc52260f965
2014-05-03 10:59:47 -04:00
Jeremy Long
51eba8da73 updated settings cleanup to prevent issue with the update process
Former-commit-id: e883b7d37c583b581b41da368dbe9b8d1bafae89
2014-05-03 10:59:47 -04:00
Jeremy Long
8cbf3ffc6b updated the URL for the NVD CVE external link
Former-commit-id: 7bb12ada0d54613f4067b96fb94a47e874384183
2014-05-03 10:58:41 -04:00
Jeremy Long
14b4d64244 updated the URL for the NVD CVE external link
Former-commit-id: 18cd71abd7a1f0d94dde8dba2a3076b28405ab00
2014-05-03 10:58:41 -04:00
Jeremy Long
2a4693f6ed updated the URL for the NVD CVE external link
Former-commit-id: 506296925066d0ea1def5035b45dfb21302e9559
2014-05-03 10:58:16 -04:00
Jeremy Long
7cb7f68cda updated the URL for the NVD CVE external link
Former-commit-id: 83ad77fb9fe6029fdb95ba7ffc96663d88234631
2014-05-03 10:58:16 -04:00
Jeremy Long
217256746c updated the URL for the NVD CVE external link
Former-commit-id: e44b70462275d0f0ab71c56b24d60dba8ea84a42
2014-05-03 10:57:44 -04:00
Jeremy Long
83300d028b updated the URL for the NVD CVE external link
Former-commit-id: 7527c31dab810145d8aebc1225ba302aca9fc80e
2014-05-03 10:57:44 -04:00
Jeremy Long
6c90225024 updated settings cleanup to prevent issue with the update process
Former-commit-id: eed7771b12afdf7e7bdb506dee5798062b326cab
2014-05-03 10:55:56 -04:00
Jeremy Long
e891ce39c0 updated settings cleanup to prevent issue with the update process
Former-commit-id: 3452aec55b778224e10879175e1aba8060da4e42
2014-05-03 10:55:56 -04:00
Jeremy Long
92d8a894e3 updated settings cleanup to prevent issue with the update process
Former-commit-id: 7b290d8aacb8f78c1064fd210b1e100da5cb86b8
2014-05-03 10:55:15 -04:00
Jeremy Long
e58b7782ac updated settings cleanup to prevent issue with the update process
Former-commit-id: 07122c535d47f3f414659013555fa826ce0e9b9c
2014-05-03 10:55:15 -04:00
Jeremy Long
c89d619808 applied part of PR for issue #121 - classpath issue with some invocations of the ant client
Former-commit-id: 7c0a0531c753e2ccfb0bdb15a1b179697b9f8905
2014-05-03 09:54:11 -04:00
Jeremy Long
1ddb468a08 applied part of PR for issue #121 - classpath issue with some invocations of the ant client
Former-commit-id: 129a5fd9cd55c8a0abf393d0ae8405ddec412d51
2014-05-03 09:54:11 -04:00
Jeremy Long
31dd4f6305 added additional dependencies for testing
Former-commit-id: 9d15401c471ff20d1bac1e46073c79fac435e335
2014-05-03 09:52:57 -04:00
Jeremy Long
95e3f0e0d9 added additional dependencies for testing
Former-commit-id: 99be1ef0f35f040ca13b204e2a1689cbaa3cf41a
2014-05-03 09:52:57 -04:00
Jeremy Long
ff9715ede7 patched for issue #120 - duplicate evidence listed in reports
Former-commit-id: 172fe4eff369938d904ed5af871e96c281cc2b04
2014-05-03 08:52:45 -04:00
Jeremy Long
0edf017ddc patched for issue #120 - duplicate evidence listed in reports
Former-commit-id: 3cdc1854af586029911b70fb4b8ff54669bac022
2014-05-03 08:52:45 -04:00
Jeremy Long
ffd1e383c2 Merge branch 'bkimminich-master'
Former-commit-id: 5f2abec6e7aa3a88dcd9c6882b039d0d5d70b165
2014-04-30 19:23:23 -04:00
Jeremy Long
ad601fd1ee Merge branch 'bkimminich-master'
Former-commit-id: d4f3bd1ebe5237060251b1f81111b26b5f653f65
2014-04-30 19:23:23 -04:00
Jeremy Long
2cc4f8c2fe Merge branch 'master' of github.com:bkimminich/DependencyCheck into bkimminich-master
Former-commit-id: a514663f23bf03a247afd3e4edc54e32334a2249
2014-04-30 19:23:13 -04:00
Jeremy Long
e7eaccb5e0 Merge branch 'master' of github.com:bkimminich/DependencyCheck into bkimminich-master
Former-commit-id: 7fe67ea5fa1b94824d2f2c8df5bd099d89dbaf85
2014-04-30 19:23:13 -04:00
Jeremy Long
6f513eb359 version 1.2.1-SNAPSHOT
Former-commit-id: d5b3c6acf6a66d2577385a24c76f7b2a47ec350d
2014-04-30 18:30:46 -04:00
Jeremy Long
6b201da3ff version 1.2.1-SNAPSHOT
Former-commit-id: 62ed08de9077505ef8e5350b0470eb5c61089dc3
2014-04-30 18:30:46 -04:00
Jeremy Long
b235a5bb49 fixed issue #118
Former-commit-id: 2c9775a966f153a1cd0de5690547f0392899b744
2014-04-30 18:13:04 -04:00
Jeremy Long
a85a47bc20 fixed issue #118
Former-commit-id: dceb807f182be921c2d85338c1d8192361dc2c1f
2014-04-30 18:13:04 -04:00
Jeremy Long
25f1912573 fixed issue #118
Former-commit-id: 7866ad2b3a62c0dfeff69172657e16efa18827ae
2014-04-30 18:10:56 -04:00
Jeremy Long
69b8f51319 fixed issue #118
Former-commit-id: 6f7b38b0945c6bcf47ffae0b8a6be53b144269cc
2014-04-30 18:10:56 -04:00
Björn Kimminich
d24d6f6b52 Update AbstractSuppressionAnalyzerTest.java
Former-commit-id: 717f9e605912ff42843a8b150db191eb4bb79c90
2014-04-29 14:37:52 +02:00
Björn Kimminich
0d943ba805 Update AbstractSuppressionAnalyzerTest.java
Former-commit-id: 640d50086e6b5cd9302ca4a24ffed881c614fd54
2014-04-29 14:37:52 +02:00
Björn Kimminich
afdb156c84 simplified exception testing
Former-commit-id: cf543a3ec397e593e7de2249820bd48159132413
2014-04-29 14:29:46 +02:00
Björn Kimminich
56fe3b5892 simplified exception testing
Former-commit-id: f43f211c4cc3133e5dfc466a4badfb3606a3be0c
2014-04-29 14:29:46 +02:00
Björn Kimminich
643d3600b8 added test case for classpath suppression file and missing file
Former-commit-id: a423b1289f39757645adf4dae0122bc4cee2d1b6
2014-04-29 11:48:07 +02:00
Björn Kimminich
c177f12e1d added test case for classpath suppression file and missing file
Former-commit-id: 975cbe1f480ad52b0e527148c4fd30b76d5baa0e
2014-04-29 11:48:07 +02:00
Jeremy Long
9c51bff55b version 1.2.0
Former-commit-id: 328c54a365a210bfe9e664f4ae292af4666cbf8e
2014-04-28 08:58:09 -04:00
Jeremy Long
72f9564757 version 1.2.0
Former-commit-id: b678810925b242d0ab9c17cc43c7edc4583ef8e3
2014-04-28 08:58:09 -04:00
Jeremy Long
81c91b3877 excluded HelpMojo from PMD
Former-commit-id: dbd8aa2995ca6f652cb2bef522a5e74d995e87a0
2014-04-28 08:20:11 -04:00
Jeremy Long
ab1a80152d excluded HelpMojo from PMD
Former-commit-id: 01cd292267305c6b6ed017dfcbe40ea53d4313e8
2014-04-28 08:20:11 -04:00
Jeremy Long
3d365eb258 checkstyle correction
Former-commit-id: aa79d696daa8e21ba2f3004916e97e213bf0fca1
2014-04-28 08:19:54 -04:00
Jeremy Long
a87c677a35 checkstyle correction
Former-commit-id: 542c5817a18cc0f372dabd8e8010c4c93b5ef34b
2014-04-28 08:19:54 -04:00
Jeremy Long
6857f6d8f8 checkstyle corrections... javadoc, final variables, etc.
Former-commit-id: 6a37a968f805a218316d5acc60f2edc85ea68e2f
2014-04-27 17:16:49 -04:00
Jeremy Long
9e0ed57cec checkstyle corrections... javadoc, final variables, etc.
Former-commit-id: 87905c8a957efb5b57e1c142eda9e7c2e7312f78
2014-04-27 17:16:49 -04:00
Jeremy Long
81bd9991bb moved checkstyle configuration to match pmd
Former-commit-id: 63681c165564341bfff2579ef6eb2f8cd502bb45
2014-04-27 09:31:16 -04:00
Jeremy Long
767f4797b0 moved checkstyle configuration to match pmd
Former-commit-id: ef4ac52a2fa483d776b6191356ce98486832a250
2014-04-27 09:31:16 -04:00
Jeremy Long
056fa9ded2 updated to reduce exception messages during build when mono isn't available
Former-commit-id: 734c3b41743c1ed60c6dbc737050b7add409206f
2014-04-27 09:18:50 -04:00
Jeremy Long
8f8c9c4582 updated to reduce exception messages during build when mono isn't available
Former-commit-id: b6701c012669d3b5fc9e8b7cc168ac8d5df4d8f0
2014-04-27 09:18:50 -04:00
Jeremy Long
a3792c474b Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 34458ee1dd984113551fa25a1ccc309d86587a9e
2014-04-27 08:51:31 -04:00
Jeremy Long
9acfe3afdb Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 45916cc4a0b3334ac9d0fe5d849032556db59f8e
2014-04-27 08:51:31 -04:00
Jeremy Long
ec233dbb46 Merge branch 'master' of github.com:bkimminich/DependencyCheck into bkimminich-master
Former-commit-id: 1fda0dd76d7a20dba2edf63595eabb10ba7ce0bd
2014-04-27 08:50:59 -04:00
Jeremy Long
9c03962c26 Merge branch 'master' of github.com:bkimminich/DependencyCheck into bkimminich-master
Former-commit-id: a25a71286aed7adb384e7efde40278006e67d847
2014-04-27 08:50:59 -04:00
Jeremy Long
d89cd789ac moved pmd rules to follow the maven directory structure
Former-commit-id: bfe648b8a48a85b677ffd665386d317eb249e289
2014-04-27 08:50:03 -04:00
Jeremy Long
a135460caa moved pmd rules to follow the maven directory structure
Former-commit-id: 71f80a18aad5c92662a2eab142009f243e7416bf
2014-04-27 08:50:03 -04:00
Jeremy Long
69088e162d removed code duplication ensuring temporary directory exists
Former-commit-id: daa54e59b488a1d6646e652e124c9e7f62012f79
2014-04-27 08:42:02 -04:00
Jeremy Long
7f72ef88e0 removed code duplication ensuring temporary directory exists
Former-commit-id: fba6dfcd3a133378c5f46f4126fa97c02ab110be
2014-04-27 08:42:02 -04:00
Steve Springett
ec53bd4125 Cleaning up Velocity. Minor change to Engine and ServiceLoaders to optionally use custom ClassLoader.
Former-commit-id: c0a96b36f4959a8b28b6b73e24ad884845140bd6
2014-04-26 01:25:56 -05:00
Steve Springett
fa1adc5294 Cleaning up Velocity. Minor change to Engine and ServiceLoaders to optionally use custom ClassLoader.
Former-commit-id: 8c1a58247faeaa032ca7389106378b095ac45edf
2014-04-26 01:25:56 -05:00
Björn Kimminich
35a264d21c organized imports
extracted exception handling


Former-commit-id: 2ec171b680d77c0db1dca9ec667e72040040eab9
2014-04-25 14:39:56 +02:00
Björn Kimminich
579b526196 organized imports
extracted exception handling


Former-commit-id: 5fa0d46fc4241e8feae58e4f1e8fd365aedb27f5
2014-04-25 14:39:56 +02:00
Björn Kimminich
0372c2eccc attempt to locate suppressions in classpath when they cannot be found via URL or file path
Former-commit-id: 6ba46b24bd89465aef454ca87c20b783bc761eee
2014-04-25 14:33:15 +02:00
Björn Kimminich
654e6942cb attempt to locate suppressions in classpath when they cannot be found via URL or file path
Former-commit-id: 03e7f14d9561940bb83a38faab926a5e45f2748b
2014-04-25 14:33:15 +02:00
Jeremy Long
08c7ffc6d9 added new test case for the hint analyzer
Former-commit-id: 1c82a99d05a00d9b71e0cda8e9e9cf417576c6b0
2014-04-24 07:23:39 -04:00
Jeremy Long
b7ed1429de added new test case for the hint analyzer
Former-commit-id: 019194943dd81b11201ef41e00bb4f5d9aa6fe73
2014-04-24 07:23:39 -04:00
Will Stranathan
e386f6ac20 Updated PMD configuration to work with all the projects.
Former-commit-id: f423663a453370b917292bdecb581ff2b06c896d
2014-04-22 20:50:06 -04:00
Will Stranathan
6642c23761 Updated PMD configuration to work with all the projects.
Former-commit-id: 80b9aac40019ef95d95ac5dcd3cb417290c37d7e
2014-04-22 20:50:06 -04:00
Jeremy Long
60ab893888 checkstyle corrections
Former-commit-id: 5397dc05e185c48b7fc8041c3b356655188eb3c1
2014-04-22 09:01:53 -04:00
Jeremy Long
f2b908c859 checkstyle corrections
Former-commit-id: 8833f928a384474df1dd5b306e835ec8919a572a
2014-04-22 09:01:53 -04:00
Jeremy Long
f2d960c3eb removed unused variable and inner assignment
Former-commit-id: ca34c3a26716353dc7e7c619c18a4f7fad264b7f
2014-04-22 08:14:30 -04:00
Jeremy Long
709840ca02 removed unused variable and inner assignment
Former-commit-id: 24b669e885ae51c2812ed1b31d86241b0a13509d
2014-04-22 08:14:30 -04:00
Jeremy Long
fb88aeaeb9 checkstyle corrections
Former-commit-id: c64cd0ab69715dce4d0cb4671ff58844367e11a2
2014-04-22 08:10:54 -04:00
Jeremy Long
9fe596f3de checkstyle corrections
Former-commit-id: 2f6fb660cd0152de284b55de3aab9cbb1b22b0b0
2014-04-22 08:10:54 -04:00
Jeremy Long
94561de719 converted long running tests to integration tests
Former-commit-id: b43f6ed56766f5edd28c2224886c6a544944f449
2014-04-21 21:46:54 -04:00
Jeremy Long
228bb2fc86 converted long running tests to integration tests
Former-commit-id: 36a20d08b8de14b369a083d1c52e0f458b276d47
2014-04-21 21:46:54 -04:00
Jeremy Long
89ed18cea3 spelling corrections
Former-commit-id: f802ad882058ea1684458b8e85cde625e4907ef3
2014-04-21 21:01:10 -04:00
Jeremy Long
d07947f712 spelling corrections
Former-commit-id: 6b3c1ae8e8150cca82449f5e5b4448a9a829e680
2014-04-21 21:01:10 -04:00
Jeremy Long
b996fa234b spelling corrections
Former-commit-id: 5a3702b980e5970565b0aeab93653353626befd1
2014-04-21 20:59:18 -04:00
Jeremy Long
70022088fb spelling corrections
Former-commit-id: 43b77de6e21a4d586f7b66b6da0045572c097f42
2014-04-21 20:59:18 -04:00
Jeremy Long
f6cd5cb4b2 merged update from Will
Former-commit-id: 6c60ece52808b5feb312489a19fc6b4acdb7859d
2014-04-21 20:42:58 -04:00
Jeremy Long
9143564d41 merged update from Will
Former-commit-id: ee4020e643221aa4ea403a6fb59314e65ab9e1b5
2014-04-21 20:42:58 -04:00
Jeremy Long
6ac8caaf5f Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 25d67194a46eb3654415cd0dd91e67cd17befdb5
2014-04-21 20:31:48 -04:00
Jeremy Long
55440ae32b Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: ddb7a60c533bf82e5f6faa9a5fbd794ca7dfaf5f
2014-04-21 20:31:48 -04:00
Jeremy Long
e5a4145e37 spelling corrections
Former-commit-id: f1589557d0f3aa8fc7e5efbc137b248580d72fae
2014-04-21 20:31:26 -04:00
Jeremy Long
db65c0b422 spelling corrections
Former-commit-id: 35f1650765a5e8de33ef078a13b20bfa2994eb71
2014-04-21 20:31:26 -04:00
Jeremy Long
2c8b408bfb spelling corrections
Former-commit-id: 65fbce0a7f47161c2cc5f9c5327ce5f18cc483c1
2014-04-21 20:21:53 -04:00
Jeremy Long
f0297938b6 spelling corrections
Former-commit-id: 56795c1f9276347f4b383e911c8c1b35918d55d9
2014-04-21 20:21:53 -04:00
Steve Springett
58c5c04feb Removing Jenkins workaround for previous snapshot's race condition
Former-commit-id: f1cb67c38ef10426873f628c368695d165e28e91
2014-04-21 14:19:30 -05:00
Steve Springett
4d390b65fe Removing Jenkins workaround for previous snapshot's race condition
Former-commit-id: 69304c08687945ebecaf3f253e16861dd9627d43
2014-04-21 14:19:30 -05:00
Will Stranathan
b0d6070d28 Added PMD rule to find Loggers that weren't fields and corrected existing instances.
Former-commit-id: fac6dba1050e2c82a4ce090845c66bc284ce2966
2014-04-19 22:08:17 -04:00
Will Stranathan
294df359d5 Added PMD rule to find Loggers that weren't fields and corrected existing instances.
Former-commit-id: d1844676a9e2f9ccbbc584d51f9dc13ecc255c11
2014-04-19 22:08:17 -04:00
Jeremy Long
3728594f73 checkstyle corrections
Former-commit-id: 8cf3b2001eef9cd73809cfc3036e4662e0912f9d
2014-04-19 12:49:57 -04:00
Jeremy Long
a855d53542 checkstyle corrections
Former-commit-id: 8caae0e4f0dd1828419c84b081fbc32d4d7be93c
2014-04-19 12:49:57 -04:00
Jeremy Long
dc2f1eabb2 speed up test by disabling auto-update
Former-commit-id: c3fa8a4358bc3a40a3053fc1d83ec1bd1f25be48
2014-04-19 10:00:06 -04:00
Jeremy Long
57a0c48293 speed up test by disabling auto-update
Former-commit-id: 55e2cbff478577b7e2fc49b91f1e58c2e1563da7
2014-04-19 10:00:06 -04:00
Jeremy Long
eda08e7454 speed up test by disabling auto-update
Former-commit-id: acc20cbd55a13738097f8e4c142114f1928c0af6
2014-04-19 09:59:45 -04:00
Jeremy Long
bbc82d827e speed up test by disabling auto-update
Former-commit-id: 709c870c42d8b67b1e02ef8669981f2726c653e1
2014-04-19 09:59:45 -04:00
Jeremy Long
1bf4b6daa9 updated test case to perform autoupdate
Former-commit-id: d33a170f6d0ad9c822556003445b68187dcd30ed
2014-04-19 09:59:09 -04:00
Jeremy Long
742b49e302 updated test case to perform autoupdate
Former-commit-id: 3e93783a97af223a1c63cde2b8f5916158a729e9
2014-04-19 09:59:09 -04:00
Jeremy Long
f757266282 updated settings initialization
Former-commit-id: 87d35b16ee7cf213ca317fd98470bc027aca9af1
2014-04-19 09:58:40 -04:00
Jeremy Long
8716f14941 updated settings initialization
Former-commit-id: f53733aa65df96d09a817b74fd440da133b8be08
2014-04-19 09:58:40 -04:00
Jeremy Long
0321823125 removed singleton pattern from service loaders
Former-commit-id: eb822f5f15ca7bd87f9b3bff39467f77b64f27b7
2014-04-19 09:58:16 -04:00
Jeremy Long
8b7b41de47 removed singleton pattern from service loaders
Former-commit-id: 0e7b90141333548c47fbb4c9944b44fe295acfec
2014-04-19 09:58:16 -04:00
Jeremy Long
33d190afaa updated to initialize the settings object
Former-commit-id: c4b1d8c1cc26bd2f2c277e9d614adaecd1a00042
2014-04-19 08:59:04 -04:00
Jeremy Long
36fd4dbcf4 updated to initialize the settings object
Former-commit-id: 7920a16418cb0b539571058942606dfd3b142525
2014-04-19 08:59:04 -04:00
Jeremy Long
ff16c4f127 Merge branch 'master' of github.com:bkimminich/DependencyCheck into bkimminich-master
Former-commit-id: 380e108f1ca7960f5b973a523be4f5cf3ac5d989
2014-04-19 08:22:47 -04:00
Jeremy Long
291a8c2bfb Merge branch 'master' of github.com:bkimminich/DependencyCheck into bkimminich-master
Former-commit-id: 4b8d77255bef86d4cb4243eefd80eedadf5ca8f7
2014-04-19 08:22:47 -04:00
Jeremy Long
134728438e added a mechanism to copy the global settings object to forked threads
Former-commit-id: 2d312bb77e2de128689165f09636ef6ccf0a3521
2014-04-19 08:21:59 -04:00
Jeremy Long
a1db394d93 added a mechanism to copy the global settings object to forked threads
Former-commit-id: 2932ae216d79d3cd08f4fb57695f3bd979c95c59
2014-04-19 08:21:59 -04:00
Jeremy Long
754bd68a87 updated to use BaseTest to initialize the Settings correctly
Former-commit-id: b116cf7a8d61d4e3f194108344564f6d4c20940b
2014-04-19 08:08:53 -04:00
Jeremy Long
0933d96954 updated to use BaseTest to initialize the Settings correctly
Former-commit-id: 473e0db1cc94efe745c1d4664d2c204731e1b931
2014-04-19 08:08:53 -04:00
Björn Kimminich
bd32eeeaa2 fixed documentation of suppressionFile parameter
Former-commit-id: 5260eb964cd7183adff13f3ef180233499452015
2014-04-17 11:17:17 +02:00
Björn Kimminich
c4fcb6c88c fixed documentation of suppressionFile parameter
Former-commit-id: 937974c6952f8ba4d90ece584c46ada635da1d50
2014-04-17 11:17:17 +02:00
Björn Kimminich
1b9a3bd4bd extracted logger as field
Former-commit-id: e4d83411e9e2d529b0035748c52d9164e8837379
2014-04-16 16:35:40 +02:00
Björn Kimminich
2390b20e68 extracted logger as field
Former-commit-id: 3a9819dcd526191bb7156d2012c248bb7914cf29
2014-04-16 16:35:40 +02:00
Jeremy Long
584d369b0b made the settings ThreadLocal to solve a threading issue
Former-commit-id: 5fdcb13ae7147bfb65748aadbedf49fdf1febabf
2014-04-16 08:19:35 -04:00
Jeremy Long
a6fd0434de made the settings ThreadLocal to solve a threading issue
Former-commit-id: 052839b76cd6d914e66c79b2fe88321eef735146
2014-04-16 08:19:35 -04:00
Jeremy Long
0ebe052752 initial base test class to support the new Settings implementation
Former-commit-id: 8b8190c064409248798eb0d1eab17b972ea5178d
2014-04-16 08:18:40 -04:00
Jeremy Long
53b36472a0 initial base test class to support the new Settings implementation
Former-commit-id: 5414eb1c0b4b4e6c9462728f3ed0be270b2c8c01
2014-04-16 08:18:40 -04:00
Jeremy Long
535863bc52 added additional error handling
Former-commit-id: 2922b534e1f11f66c0d1bdff3136b560a467e3f1
2014-04-16 08:13:38 -04:00
Jeremy Long
ccefea6b59 added additional error handling
Former-commit-id: 7853689d3273afaa348a7e16c26d3c2cf14b5c9b
2014-04-16 08:13:38 -04:00
Jeremy Long
dd925cd92b updated to support the new Settings implementation
Former-commit-id: 471a24d23377d74b88e0693d4e9632bfb28a8511
2014-04-16 08:12:36 -04:00
Jeremy Long
b24c63cb49 updated to support the new Settings implementation
Former-commit-id: 2e275cd7333b0e44b46745d5f51f89f3f1687b8f
2014-04-16 08:12:36 -04:00
Jeremy Long
5529de3d95 updated to support the new Settings implementation
Former-commit-id: 455333dfde047ca2b92c80b60dbc905d7705cfb2
2014-04-16 08:12:16 -04:00
Jeremy Long
38f69fd7cc updated to support the new Settings implementation
Former-commit-id: e2a2b98e2742580e52750a1a1bcdbeddae3c5787
2014-04-16 08:12:16 -04:00
Jeremy Long
ce6b65adb8 updated to support the new Settings implementation
Former-commit-id: 530ce66039f4dfe4dd3db11790a9660f03cb873c
2014-04-16 08:11:56 -04:00
Jeremy Long
6a9ea3bc0f updated to support the new Settings implementation
Former-commit-id: 7382682e8fe7ab4d93c19dc35c7e1c300fd02886
2014-04-16 08:11:56 -04:00
Jeremy Long
9897109332 updated to support the new Settings implementation
Former-commit-id: e9087cbd7b7f017f8395331d66f43108b2dc2f0a
2014-04-16 08:11:09 -04:00
Jeremy Long
d1b4e93f9e updated to support the new Settings implementation
Former-commit-id: 50235f22de97afc2a352f8dc7d2de9120cf73c75
2014-04-16 08:11:09 -04:00
Jeremy Long
cfc851a99b minor javadoc update
Former-commit-id: f17a1efc613d815c7ad76e4bc7985bc4cba1bba8
2014-04-16 08:10:50 -04:00
Jeremy Long
9a6a61151d minor javadoc update
Former-commit-id: 0611618b0abde40a3f8fd5cb98c63ae5cc71c387
2014-04-16 08:10:50 -04:00
Jeremy Long
380178ccc8 removed un-needed methods
Former-commit-id: cd774ff66f89e34e489b7839809569ba1c47ba65
2014-04-16 08:10:24 -04:00
Jeremy Long
497d0f0c74 removed un-needed methods
Former-commit-id: 8276c1e9554a1c69c764103611c53ef85803a006
2014-04-16 08:10:24 -04:00
Jeremy Long
3227ddd9f9 updated to support the new Settings implementation
Former-commit-id: 21e0dd024fa968c090b1eb5731c185c305c9d29c
2014-04-16 08:09:47 -04:00
Jeremy Long
ecf1c90c22 updated to support the new Settings implementation
Former-commit-id: 8ec7546bb8437406da724d7296fea765781a9640
2014-04-16 08:09:47 -04:00
Jeremy Long
336be63237 updated to support the new Settings implementation
Former-commit-id: d0b45c8fdf2ecd50b39045e28fe27601abdf3360
2014-04-16 08:09:24 -04:00
Jeremy Long
1aa13c1c8c updated to support the new Settings implementation
Former-commit-id: 3e39bbadb32b7f3d447676ce04dfb7d4a22a4478
2014-04-16 08:09:24 -04:00
Jeremy Long
37c9b9e1f5 removed unused methods
Former-commit-id: 31836f1ee4b37e137b4fd56539bde39eef23dc16
2014-04-16 08:08:54 -04:00
Jeremy Long
251ad23a9e removed unused methods
Former-commit-id: 9b66b0a3362d6299c9c9b61ad9267f80bfe6cdc4
2014-04-16 08:08:54 -04:00
Jeremy Long
ebb3e02dcc removed unused methods
Former-commit-id: 832e1232386ca6df3cd37cf80a98246f0ccf45fa
2014-04-16 08:08:36 -04:00
Jeremy Long
22876e5a25 removed unused methods
Former-commit-id: 70d7e89ae7f62b42eb7fe2cd8085caa270c8f381
2014-04-16 08:08:36 -04:00
Jeremy Long
352505c54f updated to support the new Settings implementation
Former-commit-id: 82c5da6e4b3d7d34e8da2db091a55835f8ce97dd
2014-04-16 08:07:52 -04:00
Jeremy Long
12162e2aae updated to support the new Settings implementation
Former-commit-id: 572697ad9f84f341e1ac5a4f4e6036df0ed02f3a
2014-04-16 08:07:52 -04:00
Jeremy Long
0c7998712e updated to support the new Settings implementation
Former-commit-id: 918bd36285d2b7339c69e3c3f64b327ec28d38ea
2014-04-16 08:07:32 -04:00
Jeremy Long
2af09fb49d updated to support the new Settings implementation
Former-commit-id: 58ea4b5d184999aa7c2f67e00374a7c52fef639f
2014-04-16 08:07:32 -04:00
Jeremy Long
b9a20e7ac5 updated to support the new Settings implementation
Former-commit-id: d1d837e026bcff8be05501b6154f491f4f7669b4
2014-04-16 08:07:09 -04:00
Jeremy Long
c58589026c updated to support the new Settings implementation
Former-commit-id: 00b11fb5e4eb3c288d4017e8974dac39e7a6f2c6
2014-04-16 08:07:09 -04:00
Jeremy Long
7ab89b900c updated to support the new Settings implementation
Former-commit-id: 10625b4a050b79608d454677ff7fba04f1f735a0
2014-04-16 08:06:52 -04:00
Jeremy Long
5b83919eb2 updated to support the new Settings implementation
Former-commit-id: d559571b5adf664155b12075c7f42644c001d4be
2014-04-16 08:06:52 -04:00
Jeremy Long
9620956727 removed unused methods
Former-commit-id: 2cdae6c0c7fd6a09af79c5e37734bbf03097f5d9
2014-04-16 08:04:46 -04:00
Jeremy Long
f26f02c986 removed unused methods
Former-commit-id: cb23f2dbc928c46149be608144aa79fcdcd6e815
2014-04-16 08:04:46 -04:00
Jeremy Long
9b85768b7e updated to support the new Settings implementation
Former-commit-id: e72bbcdcbe0a673e4b7d6a26aee9210f3a52ff24
2014-04-16 08:04:13 -04:00
Jeremy Long
c5d16a49d0 updated to support the new Settings implementation
Former-commit-id: 00ccc5ae2b0ceac9b1bffae27e25dfb55b262f08
2014-04-16 08:04:13 -04:00
Jeremy Long
5276e1863d updated to support the new Settings implementation
Former-commit-id: 91439ca3788a26e66d665cd3b8298a1dfc4a93f5
2014-04-16 08:03:55 -04:00
Jeremy Long
260b2c3532 updated to support the new Settings implementation
Former-commit-id: 9cbc15ce470881f316a8ede89b94c7122c1381c1
2014-04-16 08:03:55 -04:00
Jeremy Long
0fc1a30a2c updated to support the new Settings implementation
Former-commit-id: 33d1bebf147cb93649b774a46030581a3b8b6e69
2014-04-16 08:03:36 -04:00
Jeremy Long
420da8f476 updated to support the new Settings implementation
Former-commit-id: 8eccff73254d27425813dfac1646b8832fac8604
2014-04-16 08:03:36 -04:00
Jeremy Long
8609b98b1c updated to support the new Settings implementation
Former-commit-id: 95a0da4c7f9ec9f506477bdd755b5660de05bd2f
2014-04-16 08:03:15 -04:00
Jeremy Long
c2a39d3296 updated to support the new Settings implementation
Former-commit-id: b2b4137934983f3688f115f31ced54004d33d2e9
2014-04-16 08:03:15 -04:00
Jeremy Long
c85514a17a updated to support the new Settings implementation
Former-commit-id: 16b747a5e88aafe600d35b67778a320dd8f81113
2014-04-16 08:02:50 -04:00
Jeremy Long
6cd4bf337e updated to support the new Settings implementation
Former-commit-id: a530f8ae502e47345f36c1e563c001797b223280
2014-04-16 08:02:50 -04:00
Jeremy Long
d00bef5546 updated to support the new Settings implementation
Former-commit-id: 89611b3261cb8bb4b2714027ee5efd74b2edeac2
2014-04-16 08:02:24 -04:00
Jeremy Long
095c48a942 updated to support the new Settings implementation
Former-commit-id: e34221085daf9880ce658cd71df15f9f8b0def9d
2014-04-16 08:02:24 -04:00
Jeremy Long
b905f46f98 updated to support the new Settings implementation
Former-commit-id: ab47079a0426c72cd71e9332faf81593045b33f0
2014-04-16 08:02:05 -04:00
Jeremy Long
e61ef1ae85 updated to support the new Settings implementation
Former-commit-id: 9715d8c76c5667d813a64c56d74a366fa83d2470
2014-04-16 08:02:05 -04:00
Jeremy Long
cdd4765d38 updated to support the new Settings implementation
Former-commit-id: ceae727c56f4f982692b6d48d9466756abc400e8
2014-04-16 08:01:45 -04:00
Jeremy Long
886b21af68 updated to support the new Settings implementation
Former-commit-id: bc891a90f8e0d234fbefcd19bc559bf828af5636
2014-04-16 08:01:45 -04:00
Jeremy Long
d62793f4ad updated to support the new Settings implementation
Former-commit-id: 4cb1a827fb87a56c8bd126a17448245239513523
2014-04-16 08:01:15 -04:00
Jeremy Long
7bba66737f updated to support the new Settings implementation
Former-commit-id: d6e86661ae20968179c729fd21bfb07df00858a7
2014-04-16 08:01:15 -04:00
Jeremy Long
d83d325a49 updated to support the new Settings implementation
Former-commit-id: 781f217da7507bbc13de6be59474d8ddda7fce2f
2014-04-16 08:00:55 -04:00
Jeremy Long
52fd2772cf updated to support the new Settings implementation
Former-commit-id: c84709a4cf38a6e55166de59b6a8b372c1f082e4
2014-04-16 08:00:55 -04:00
Jeremy Long
e5baf99814 updated to support the new Settings implementation
Former-commit-id: 5f75c0e202e3fb0aafc2f55db827cf727ca97843
2014-04-16 08:00:10 -04:00
Jeremy Long
48043b5ec4 updated to support the new Settings implementation
Former-commit-id: 39536545c92d2c56017a4a8279704f2184b8124c
2014-04-16 08:00:10 -04:00
Jeremy Long
b4aeab3501 updated to support the new Settings implementation
Former-commit-id: 68cba2d619cd31a7352d54cd3a3ff6b5c482ebd9
2014-04-16 07:59:13 -04:00
Jeremy Long
1f67ae82bd updated to support the new Settings implementation
Former-commit-id: 624d4c04e4fa208ef0da60245ca20ca755610c81
2014-04-16 07:59:13 -04:00
Jeremy Long
039bfd372d updated to support the new Settings implementation
Former-commit-id: d1469eeaea5cc3d776c2378f390ec20bd8a223b7
2014-04-16 07:58:50 -04:00
Jeremy Long
e7749c161d updated to support the new Settings implementation
Former-commit-id: dd98df72654badebf3d4b7fa24da718ff588339d
2014-04-16 07:58:50 -04:00
Jeremy Long
1a92de71d1 updated to support the new Settings implementation
Former-commit-id: 572af32243216c26ad1c0e7ed36a4d368cd42a12
2014-04-16 07:58:28 -04:00
Jeremy Long
144f913aa9 updated to support the new Settings implementation
Former-commit-id: 3b0db7eb50c088342b7c49d23f43ba23edd5458f
2014-04-16 07:58:28 -04:00
Jeremy Long
d8279e11aa updated to support the new Settings implementation
Former-commit-id: 41cb4630f5cd777cc3c24da7e3c6aee18151501a
2014-04-16 07:57:11 -04:00
Jeremy Long
e28b6b9f73 updated to support the new Settings implementation
Former-commit-id: dd2d8cdd1c8688482752a8f1df2fc54ef6f638c8
2014-04-16 07:57:11 -04:00
Jeremy Long
b1b8584641 removed unused methods
Former-commit-id: 93cac67323f6cd2205de672deb534fb4cabb0be7
2014-04-16 07:56:51 -04:00
Jeremy Long
691636de7b removed unused methods
Former-commit-id: 6e0577ad17ed28f5e6e4f72fa35c10c5250343b4
2014-04-16 07:56:51 -04:00
Jeremy Long
11e75df1a9 updated to support the new Settings implementation
Former-commit-id: 22be859d3d8b9455e203da58ba5146f957a0f28b
2014-04-16 07:56:23 -04:00
Jeremy Long
6f2b1b8f06 updated to support the new Settings implementation
Former-commit-id: 18ba158d3b4651b424ee2d3ec02907410f7ea8ba
2014-04-16 07:56:23 -04:00
Jeremy Long
25fc2bfbea updated to support the new Settings implementation
Former-commit-id: bbb7dae7e2e9969ff648e9bfa0ddb4ab23cf3cc9
2014-04-16 07:55:56 -04:00
Jeremy Long
139640e768 updated to support the new Settings implementation
Former-commit-id: 4731df058a88b10661ea70addb082aced7590e80
2014-04-16 07:55:56 -04:00
Jeremy Long
a93c84ff64 updated documentation
Former-commit-id: d597a6f1c4f212a054f2fd74c81d8c4e98fbcf2a
2014-04-13 07:47:50 -04:00
Jeremy Long
ae2fa19c0e updated documentation
Former-commit-id: c374ee235b5c0e1beff55f678e02523213ef5868
2014-04-13 07:47:50 -04:00
Jeremy Long
986a4182d9 reordered operations
Former-commit-id: b6afe2d503fd80e591b0db50855e25852c9001e9
2014-04-13 07:45:54 -04:00
Jeremy Long
f8867abe49 reordered operations
Former-commit-id: 1a487bcc4400d881c8dda7118318b183a68a0fe3
2014-04-13 07:45:54 -04:00
Jeremy Long
d38a8b109b Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 739b4d35b9cd96a634169d2de299ad842eeea25e
2014-04-12 05:33:02 -04:00
Jeremy Long
fd83e72177 Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 3a30dd648eef49290e9290be719fb0eb25f79764
2014-04-12 05:33:02 -04:00
Jeremy Long
711d8c8c6b improved error handling
Former-commit-id: a95f11da123ca42e4abe3e4b2a98f8cc44fc34e5
2014-04-11 06:38:13 -04:00
Jeremy Long
1ff45c8e02 improved error handling
Former-commit-id: f5086f9ebae6dab987fedf5e87d885c243af188e
2014-04-11 06:38:13 -04:00
Steve Springett
0d1d22aeff Added archive support for JAR, SAR, and APK file formats. Ticket #106
Former-commit-id: ec08dd184cc973e57b99e8b318c14c5b268395da
2014-04-10 23:39:52 -05:00
Steve Springett
608c338403 Added archive support for JAR, SAR, and APK file formats. Ticket #106
Former-commit-id: 19991f8b32e746d9691e48eeac15343178dd3e99
2014-04-10 23:39:52 -05:00
Jeremy Long
ac2231f0f3 updated connection string to use FILE_LOCK=SERIALIZED instead of AUTO_SERVER=TRUE
Former-commit-id: bf8d148e01da607545af39bcfeb19d00d20091c5
2014-04-09 06:40:25 -04:00
Jeremy Long
f23da0dd5a updated connection string to use FILE_LOCK=SERIALIZED instead of AUTO_SERVER=TRUE
Former-commit-id: 59bc2334093063d99c67bcef2c73690895ce9c72
2014-04-09 06:40:25 -04:00
Jeremy Long
21344dacfc redirected standard error to hide expected [fatal] message from being displayed during tests
Former-commit-id: ecbc294640ca1e1a3c418af871dd71a31bbcccdb
2014-04-09 06:34:57 -04:00
Jeremy Long
8c3f887cac redirected standard error to hide expected [fatal] message from being displayed during tests
Former-commit-id: 4a5d1e47a0e613e2b8a14e14fc8cd73b1bd4519a
2014-04-09 06:34:57 -04:00
Jeremy Long
ca22ba5bbc updated report to show suppressed vulnerabilities and identifiers per issue #66
Former-commit-id: b87d8df47ac115b1a9ad36fdc7d960e86ab6d2d9
2014-04-04 06:46:31 -04:00
Jeremy Long
6e6f16d6ee updated report to show suppressed vulnerabilities and identifiers per issue #66
Former-commit-id: 0669a01ae3cc11bbeb36951411e95d2a7f8c5cf8
2014-04-04 06:46:31 -04:00
Jeremy Long
fc64c34214 fixed formating in support of issue #66
Former-commit-id: bc8d195fb53a3c7e4041ea25f16aad7be1b2916d
2014-04-04 06:46:04 -04:00
Jeremy Long
8a83385c7f fixed formating in support of issue #66
Former-commit-id: 3b27d6fefb6745ffe2e6169d248166a3408791c9
2014-04-04 06:46:04 -04:00
Jeremy Long
c35bc2476d updated schema to 1.2 to support changes for issue #66
Former-commit-id: c102357c6beead34824d5f7053c7350b3d15130c
2014-04-04 06:45:35 -04:00
Jeremy Long
147bc797a2 updated schema to 1.2 to support changes for issue #66
Former-commit-id: fc7d7e8b8453bb8065be1d83cbc7ce3d5f47ea88
2014-04-04 06:45:35 -04:00
Jeremy Long
222826af95 added to simplify velocity templates
Former-commit-id: 2bb350d765993782f38d90d235bebb0e9e7d51a7
2014-04-02 06:54:25 -04:00
Jeremy Long
1735f36b82 added to simplify velocity templates
Former-commit-id: 0d9c1624b7cc81a7843ff7db4488b115405a9e74
2014-04-02 06:54:25 -04:00
Jeremy Long
db28db0bc7 Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: ed02b171d4a62eb4e22deea53dfcec07676a96d2
2014-04-02 06:52:59 -04:00
Jeremy Long
a782354874 Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 2ff2fbf86c9ebbf7bc1aec2aaf833bdd2ef00851
2014-04-02 06:52:59 -04:00
Jeremy Long
931f7d47ea simplified velocity report generation
Former-commit-id: 7c0f5bd492bce8a37c1633715d989970ee5b0d61
2014-04-02 06:52:26 -04:00
Jeremy Long
21a709cf89 simplified velocity report generation
Former-commit-id: dc690db1eb9186f1bfbf49472f893137e7602953
2014-04-02 06:52:26 -04:00
Jeremy Long
987ed1cefc coveritys copy paste analysis is awsome - identified a real bug that has been fixed
Former-commit-id: bb3b0cbdb32970534a5a17f351af8d13fb2d6838
2014-03-31 21:32:38 -04:00
Jeremy Long
76a0c1d96e coveritys copy paste analysis is awsome - identified a real bug that has been fixed
Former-commit-id: bccecaef9181eeb60a79873ebefc6f8ead259f71
2014-03-31 21:32:38 -04:00
Jeremy Long
3e9a77abfa updated test case to ensure suppressed vulnerabilities were tracked correctly per issue #66
Former-commit-id: 7bfbd0c0bb0cb1aa9bed756509d56690bdaee754
2014-03-30 06:31:52 -04:00
Jeremy Long
1c30e555dc updated test case to ensure suppressed vulnerabilities were tracked correctly per issue #66
Former-commit-id: 657213bab4b2f0a9538fb03319ff945971765b47
2014-03-30 06:31:52 -04:00
Jeremy Long
3879eb6b3a Updated to support the tracking of suppressed CPE/CVE per issue #66
Former-commit-id: 5f98715a8ffd45ac8d78ba7c103cbfb287cb1ddc
2014-03-30 06:26:50 -04:00
Jeremy Long
9bdff89833 Updated to support the tracking of suppressed CPE/CVE per issue #66
Former-commit-id: 12b514a914a1b1df96e92efd78e6a7ec6b9c42bd
2014-03-30 06:26:50 -04:00
Jeremy Long
5e5a2040fc updated to ignore coverity directory
Former-commit-id: a55a69442555d83365a2c96e6d6dfd00d8311653
2014-03-30 06:25:56 -04:00
Jeremy Long
08105eee48 updated to ignore coverity directory
Former-commit-id: 9db069c9e11d8a387dd944399023cb485ac4e63b
2014-03-30 06:25:56 -04:00
Steve Springett
eea44d7de2 Fix to prevent rules from being cached between Jenkins builds even if suppression file is not specified.
Former-commit-id: 747e4c585084807239ae2881944bd48a5908e143
2014-03-29 22:57:44 -05:00
Steve Springett
40e13184ca Fix to prevent rules from being cached between Jenkins builds even if suppression file is not specified.
Former-commit-id: 860fded462d768acb207ebe35464936d7f80f59c
2014-03-29 22:57:44 -05:00
Jeremy Long
3fcbf075fb updated commons-compress version
Former-commit-id: 44e8d9937c88c7eeced2d9be8ccdda73c257ba52
2014-03-29 08:56:04 -04:00
Jeremy Long
b5a65c5e43 updated commons-compress version
Former-commit-id: 4aeedcf31bb2a99b73c35aa68bd1dd1876512c67
2014-03-29 08:56:04 -04:00
Jeremy Long
b2641494cc specifically set InputStreamReader to use UTF-8
Former-commit-id: 1eacd242e19d5ca7b5582c1c8733f0868621cc8a
2014-03-29 08:37:39 -04:00
Jeremy Long
7eac65fec2 specifically set InputStreamReader to use UTF-8
Former-commit-id: 517159b6d919a98d83ebbf1037b5d375285f8390
2014-03-29 08:37:39 -04:00
Jeremy Long
c48a794aee updated to version 1.1.5-SNAPSHOT
Former-commit-id: ed43852f2d9459e5c0ec8c13d809a392fb9ef35c
2014-03-29 08:37:03 -04:00
Jeremy Long
9bc974661c updated to version 1.1.5-SNAPSHOT
Former-commit-id: 529545190847cf43edec6934ab6393583adc6e47
2014-03-29 08:37:03 -04:00
Jeremy Long
e53906aea8 updated to version 1.1.5-SNAPSHOT
Former-commit-id: 2362311dfb8e1f35408df2446b7bf8e72ceb0289
2014-03-29 08:36:43 -04:00
Jeremy Long
b8c41a91e1 updated to version 1.1.5-SNAPSHOT
Former-commit-id: 09c36d34a5390b22e3a870c8317e8e309083b5f2
2014-03-29 08:36:43 -04:00
Jeremy Long
05a4a1670f minor correction to unit tests
Former-commit-id: 20b80df37f0abb3c76d44e639c8d9c8c02f4ef71
2014-03-29 07:28:24 -04:00
Jeremy Long
3264becdc2 minor correction to unit tests
Former-commit-id: 44829f536b0940ed95750890262a1ab668c57745
2014-03-29 07:28:24 -04:00
Jeremy Long
4bd35852a5 version 1.1.4
Former-commit-id: 1f5787ebacba73ca5a582b05dd88f2628d29b1a8
2014-03-29 06:55:03 -04:00
Jeremy Long
845bf6ada1 version 1.1.4
Former-commit-id: 9d8e2cc70f7779b99e98aac396475f70980d7147
2014-03-29 06:55:03 -04:00
Jeremy Long
be4d56f8d2 FindBugs corrections
Former-commit-id: 22dfeaeb1493fdf25e790018c5d8c1761e935153
2014-03-29 05:58:56 -04:00
Jeremy Long
865ef2beb3 FindBugs corrections
Former-commit-id: 3bde1ba8aa05c0007a40be7594a6ded6675f5441
2014-03-29 05:58:56 -04:00
Jeremy Long
dfbcd616f2 find bugs corrections
Former-commit-id: f1823dd579d03b4caefd94123f4c51a3d8fb3f6c
2014-03-29 05:54:53 -04:00
Jeremy Long
ace5353595 find bugs corrections
Former-commit-id: 34820edd6de652dc6f62702de332447d0ba48398
2014-03-29 05:54:53 -04:00
Jeremy Long
dc0106348d checkstyle corrections
Former-commit-id: d511bf999738c60e35cefb66cdde1f28be1fea3f
2014-03-29 05:34:46 -04:00
Jeremy Long
56a43fe17b checkstyle corrections
Former-commit-id: c49596f06b497f80dbe6b5b9656a5221312c7e3f
2014-03-29 05:34:46 -04:00
Jeremy Long
f2666d4a30 updated cli help to indicate wild cards can be used to limit scan to specific file extensions
Former-commit-id: 1c034ba00859bc3140ca750c35bd1fc7f7b6d38d
2014-03-29 05:26:07 -04:00
Jeremy Long
46f36dc7ab updated cli help to indicate wild cards can be used to limit scan to specific file extensions
Former-commit-id: 1369c129ee4a774ce22fda28a4e74468b578da40
2014-03-29 05:26:07 -04:00
Jeremy Long
4220e58d26 checkstyle corrections
Former-commit-id: 4f20366676c43817c8f20200b47f6952c866a3a2
2014-03-29 05:23:49 -04:00
Jeremy Long
db0ac70b71 checkstyle corrections
Former-commit-id: 2d7107de4141937a5be66c42b170130118c7d613
2014-03-29 05:23:49 -04:00
Jeremy Long
07de43981a updated documentation to support wild card file extensions
Former-commit-id: 3e23e19d55056e0b24d6a738892828686335339d
2014-03-29 05:23:34 -04:00
Jeremy Long
6cfcc903df updated documentation to support wild card file extensions
Former-commit-id: fb64ad0e0997dfb3dc3c607ef6d2818afd0b3606
2014-03-29 05:23:34 -04:00
Jeremy Long
fa352c1a8f added back in scan methods that were removed by mistake
Former-commit-id: 043ae5b2fd012f06f107e1f46f50bc7157bba858
2014-03-28 05:28:17 -04:00
Jeremy Long
2ccae9f434 added back in scan methods that were removed by mistake
Former-commit-id: c4a26c76c2668a2b635f361a55d3c840a842f6f7
2014-03-28 05:28:17 -04:00
Jeremy Long
e5d582b30b updated delete file method
Former-commit-id: d7fcac28c99fe0a48aee6822ab288888181e5a51
2014-03-28 05:21:16 -04:00
Jeremy Long
139bf0ee35 updated delete file method
Former-commit-id: d5821f9476d9b230633eb0feac20d72f60baf337
2014-03-28 05:21:16 -04:00
Jeremy Long
8fb14ffdf3 added support for wildcard extensions in scan path for issue #95
Former-commit-id: 48b91add5bf6aa289dc03f1627046971dc0366e6
2014-03-28 05:03:37 -04:00
Jeremy Long
1ce6e37e78 added support for wildcard extensions in scan path for issue #95
Former-commit-id: d02eaf80664e4525d9b00ba5978bec5cced0970a
2014-03-28 05:03:37 -04:00
Jeremy Long
c16e85e7db fixed bug causing analyzer to hang reading from an empty error input steam
Former-commit-id: 1f4ed4fe5bb1900aff6ce2494e3f421312cd578f
2014-03-28 04:06:42 -04:00
Jeremy Long
462026e7e9 fixed bug causing analyzer to hang reading from an empty error input steam
Former-commit-id: 1b474a3376df612a13a62d8a31efb035c421afc5
2014-03-28 04:06:42 -04:00
Jeremy Long
25a72e3508 Merge branch 'master' of github.com:colezlaw/DependencyCheck into colezlaw-master
Former-commit-id: 5320c17bc9730b5bad2bb041d1125f54d06fc873
2014-03-28 02:40:26 -04:00
Jeremy Long
2f180510b8 Merge branch 'master' of github.com:colezlaw/DependencyCheck into colezlaw-master
Former-commit-id: 1eb983f1cbcd44b029b912b7a87f19ee78d6233e
2014-03-28 02:40:26 -04:00
Will Stranathan
20411da67b Updated waitFor semantics
Former-commit-id: 78be989fdaa6d3e0674050941c901ad37b33c944
2014-03-27 17:34:45 -04:00
Will Stranathan
53e67dfb27 Updated waitFor semantics
Former-commit-id: 1080c4eca42029535508f2503ac0a76e853a7fcc
2014-03-27 17:34:45 -04:00
Jeremy Long
81bfdc69dd added initial version of legal disclaimer - it will need to be updated
Former-commit-id: 363c2aa5a92422ce31934b1025849ccd7a804cf7
2014-03-27 15:35:59 -04:00
Jeremy Long
ff951130b6 added initial version of legal disclaimer - it will need to be updated
Former-commit-id: 776adc94aad64db842ce216f3f88354ffba79091
2014-03-27 15:35:59 -04:00
Will Stranathan
5e2829fe49 Squashed commit of the following:
commit 1d1a06a5ae7ea4f6e3adbf5a4b8163eba50562a3
Author: Will Stranathan <will@thestranathans.com>
Date:   Wed Mar 26 22:59:15 2014 -0400

    Updated unit tests and logging

commit bb00174e62c9657809d6e5a9cde7c7308d905593
Author: Will Stranathan <will@thestranathans.com>
Date:   Wed Mar 26 22:20:28 2014 -0400

    Updated GrokAssembly to not fail if the vendor can't be gotten

commit 27f7c9366acca8abbff9c6e9fa9ce1a1329da887
Author: Will Stranathan <will@thestranathans.com>
Date:   Wed Mar 26 22:18:33 2014 -0400

    Updated unit test to not care about version number


Former-commit-id: 6329e3f54f2808c54dd998514f0881dc3a976281
2014-03-26 23:02:17 -04:00
Will Stranathan
69ebb53a05 Squashed commit of the following:
commit 1d1a06a5ae7ea4f6e3adbf5a4b8163eba50562a3
Author: Will Stranathan <will@thestranathans.com>
Date:   Wed Mar 26 22:59:15 2014 -0400

    Updated unit tests and logging

commit bb00174e62c9657809d6e5a9cde7c7308d905593
Author: Will Stranathan <will@thestranathans.com>
Date:   Wed Mar 26 22:20:28 2014 -0400

    Updated GrokAssembly to not fail if the vendor can't be gotten

commit 27f7c9366acca8abbff9c6e9fa9ce1a1329da887
Author: Will Stranathan <will@thestranathans.com>
Date:   Wed Mar 26 22:18:33 2014 -0400

    Updated unit test to not care about version number


Former-commit-id: e700a5f81b7b0f6d6ccf392e846723e67fff591c
2014-03-26 23:02:17 -04:00
Jeremy Long
2aba09f090 added another test jar
Former-commit-id: 3f34dd46826010467e71127e61c8b8692dc2e46d
2014-03-26 07:38:13 -04:00
Jeremy Long
1a2a3d1945 added another test jar
Former-commit-id: c1eee9a685aed640be0d3a535f2888bf9e972990
2014-03-26 07:38:13 -04:00
Jeremy Long
38e27309fb updated engine to fix bug with archive analyzer prematurely deleting fiels
Former-commit-id: f123c77c3e111291d8e8064b31de2dacca3907fe
2014-03-26 07:33:52 -04:00
Jeremy Long
c8b967ba37 updated engine to fix bug with archive analyzer prematurely deleting fiels
Former-commit-id: dd4400e3c852f2d9bf7bf3b89f54913be79d6d68
2014-03-26 07:33:52 -04:00
Jeremy Long
6b586684e6 updated documentation for PR #98
Former-commit-id: abdb430bba5b53d5dccbf946394863733c04c69f
2014-03-24 23:55:36 -04:00
Jeremy Long
83b713a781 updated documentation for PR #98
Former-commit-id: 2121e1d535939646b3c7ce9b9b485c00f5b4bef8
2014-03-24 23:55:36 -04:00
Will Stranathan
773e280339 Switched default Nexus to SSL to fix 301 issues
Former-commit-id: 8a91f133e64ed6f74f7adcc2d239d36edb57d7e1
2014-03-24 19:59:13 -04:00
Will Stranathan
c930568df7 Switched default Nexus to SSL to fix 301 issues
Former-commit-id: 231a5f20652fd83123f614881198edf675dd1105
2014-03-24 19:59:13 -04:00
Jeremy Long
297a67cd00 applied PR from Steve to close issue #96 and issue #97
Former-commit-id: 7bc44a4778d78647c39390b5f39668d827c67995
2014-03-23 23:27:49 -04:00
Jeremy Long
95e2c6179f applied PR from Steve to close issue #96 and issue #97
Former-commit-id: d758d881a762c38b27d1a6ef1e17ebdab1efd5a7
2014-03-23 23:27:49 -04:00
Jeremy Long
ceb61ebe74 added configuration settings to the interfaces to support disabling of specific analyzers per issue #86
Former-commit-id: a13020f23231f9a9d80e3cfbfc2529198001f1fd
2014-03-23 23:08:03 -04:00
Jeremy Long
dfdf690575 added configuration settings to the interfaces to support disabling of specific analyzers per issue #86
Former-commit-id: ce5fe7e4340a4df6f0a59a78acee6429a10ba01b
2014-03-23 23:08:03 -04:00
Jeremy Long
6c85e3502e various findbug, checkstyle, documentation fixes
Former-commit-id: 66fc0bbef000fc9e4210054f15ab973909fe919f
2014-03-23 23:07:27 -04:00
Jeremy Long
db30517516 various findbug, checkstyle, documentation fixes
Former-commit-id: 436d6de72216aa90360c96b5f2d23adbbd733e7b
2014-03-23 23:07:27 -04:00
Jeremy Long
690192300f fixed bug where the analyzers were not being closed
Former-commit-id: 3ab4fa8484a65a2e3615549f4f778e63a3d36f4e
2014-03-23 23:06:14 -04:00
Jeremy Long
534b2e59a0 fixed bug where the analyzers were not being closed
Former-commit-id: 50f1859e79cf11a19837a389b4edd3c563d2c7c8
2014-03-23 23:06:14 -04:00
Jeremy Long
3ba963f474 added enabled properties in support of issue #86
Former-commit-id: 4d6205c4df71256ebf92a39c49a7ad042abf9f16
2014-03-23 23:05:41 -04:00
Jeremy Long
5028216058 added enabled properties in support of issue #86
Former-commit-id: e6df3962e1e96b28fad499694b580423cd1cb7b5
2014-03-23 23:05:41 -04:00
Jeremy Long
9b2cacc3a0 updated documentation
Former-commit-id: cb2c5c0fd7e0dfc33ce5a1b3cf75799c015c78df
2014-03-23 23:03:51 -04:00
Jeremy Long
173947fd7d updated documentation
Former-commit-id: b2036f354cc3d16db7e01bef9aad6aa494650fd2
2014-03-23 23:03:51 -04:00
Jeremy Long
315a616293 updated tests to fix issues with the analyzer disabling themselves
Former-commit-id: 48f1066590ba4b1e07943c089f5ad16e9cc4e746
2014-03-23 00:36:54 -04:00
Jeremy Long
9aa6ad216d updated tests to fix issues with the analyzer disabling themselves
Former-commit-id: 8286f053801efa11e10d3ea07529444a585859b8
2014-03-23 00:36:54 -04:00
Jeremy Long
3c56cd6738 added the ability to have a default value for getBoolean
Former-commit-id: 1c900a6f55f37c226a8d43df8dfc98913630838a
2014-03-23 00:36:10 -04:00
Jeremy Long
b2a5963f5a added the ability to have a default value for getBoolean
Former-commit-id: 3768e635a48b42f198fd9e11a248f93cc8662aaa
2014-03-23 00:36:10 -04:00
Jeremy Long
a48ac013e8 updated to allow turning off individual file type analyzers via configuration
Former-commit-id: 3f26c9e4540ed2d91d903db9c0f5abb50084ceb4
2014-03-23 00:33:00 -04:00
Jeremy Long
c80fdee99b updated to allow turning off individual file type analyzers via configuration
Former-commit-id: c492d41e1b5ad0c890cb750370dff326c3d0de05
2014-03-23 00:33:00 -04:00
Jeremy Long
258602ce1a fixed teest case
Former-commit-id: 27616b92421179fd720763cfacaf70de297c372d
2014-03-17 20:42:43 -04:00
Jeremy Long
270db7829d fixed teest case
Former-commit-id: 7ced3ad498d077c8bed116c161744dd817250d96
2014-03-17 20:42:43 -04:00
Jeremy Long
c85b547502 improved the abstract base class to support enabling/disabling each FileTypeAnalyzer
Former-commit-id: 9dd07ede35cdf2b5b4babb7d577f30d338c0af3c
2014-03-17 00:08:04 -04:00
Jeremy Long
5ff9ec9942 improved the abstract base class to support enabling/disabling each FileTypeAnalyzer
Former-commit-id: a2464c7041d292e6f3a2ec0d2b1e75f3bcfce425
2014-03-17 00:08:04 -04:00
Jeremy Long
d6266c36bf major revision to patch issue #86; file type analyzers will no longer initialize if no files were detected that they can process during the scan phase.
Former-commit-id: 6e7cb5893226f556359955295db2dc8116d4d480
2014-03-16 22:39:44 -04:00
Jeremy Long
2fc554e1d4 major revision to patch issue #86; file type analyzers will no longer initialize if no files were detected that they can process during the scan phase.
Former-commit-id: 1d9ef39d5f7898de73ac72bbb9573af763368e95
2014-03-16 22:39:44 -04:00
Jeremy Long
fdd7f30e9a updated initialization of the analyzers to use less looping
Former-commit-id: eab3ca87bdf55a46a530e20a84b0948a3c93b9c6
2014-03-16 07:50:41 -04:00
Jeremy Long
7a35c1638b updated initialization of the analyzers to use less looping
Former-commit-id: 517e0b87d6673c44d50ba60e4e4d50693f22ab98
2014-03-16 07:50:41 -04:00
Jeremy Long
3994ef3619 added a vulnerability suppression analyzer test case
Former-commit-id: d90596a3493f1fd557222fac0568955b5ab58b4f
2014-03-16 07:05:05 -04:00
Jeremy Long
916243468f added a vulnerability suppression analyzer test case
Former-commit-id: 415f214241e2ac6e882ea0291e6c11d991d4be8f
2014-03-16 07:05:05 -04:00
Jeremy Long
633028a63f updated class name
Former-commit-id: 222aa7b23da96eb54517087b3d41190fed3c5724
2014-03-16 07:04:36 -04:00
Jeremy Long
cb56bbc122 updated class name
Former-commit-id: 7cda28ba656b243a6b64d1101cd81a2868837c2c
2014-03-16 07:04:36 -04:00
Jeremy Long
013374e9db renamed class
Former-commit-id: a5b33cd29fb436a5cd95089fed73572cd82d19bd
2014-03-16 07:02:58 -04:00
Jeremy Long
d1b2d5cb27 renamed class
Former-commit-id: 216b78611cee90c521c36b2c20c9324cb5086f4f
2014-03-16 07:02:58 -04:00
Jeremy Long
4358b47e91 renamed class
Former-commit-id: 400624d6366ca83097508d0d65fcd2f5eff4047d
2014-03-16 07:02:34 -04:00
Jeremy Long
884b56a4ef renamed class
Former-commit-id: f27ba73aff027de16b9f950401b4fee125cb19eb
2014-03-16 07:02:34 -04:00
Jeremy Long
6decc1ce30 fixed a bug that caused the suppression file not to load
Former-commit-id: d90f00b1f051fa31c95e957786fd7215dbfdc913
2014-03-16 07:02:10 -04:00
Jeremy Long
eeb8d9cdf5 fixed a bug that caused the suppression file not to load
Former-commit-id: 3cc9ab64b4f9efbc51c497b82d9b63e2edd8376d
2014-03-16 07:02:10 -04:00
Jeremy Long
8a3dba3064 updated the base class name to be more accurate
Former-commit-id: ea9a8e202c24abc7b17a45ce67862c1d93bc0e3e
2014-03-16 07:01:24 -04:00
Jeremy Long
e8d7bbd280 updated the base class name to be more accurate
Former-commit-id: 38c9eed0e4226ce08d11f95b4e7f2a1ecca1f67c
2014-03-16 07:01:24 -04:00
Jeremy Long
27bcead1bc changed the logging level on the "entrance" log
Former-commit-id: f0219ea5cac2552ff0255096ba68e9f6c87b7e11
2014-03-16 07:00:44 -04:00
Jeremy Long
277ee4c4b2 changed the logging level on the "entrance" log
Former-commit-id: 92b0b110cbcf05ca71e22fc244d1daefd5072e26
2014-03-16 07:00:44 -04:00
Jeremy Long
acb9c01776 improved manifest parsing to exclude additional entries per issue #88
Former-commit-id: b4cad8c8d0182c17770be2163e0565378de3ae9a
2014-03-16 04:49:09 -04:00
Jeremy Long
efa6c8135d improved manifest parsing to exclude additional entries per issue #88
Former-commit-id: 0665b1d9967324f6c07e95b593d6b199da5b5ee3
2014-03-16 04:49:09 -04:00
Jeremy Long
79fd23d51b updated so that the Filename was properely escaped in Javascript so that it shows up correctly in the report to fix issue #91
Former-commit-id: e2de967442f9504ede9402760c33a1b7501a3536
2014-03-16 04:13:43 -04:00
Jeremy Long
cbb705c367 updated so that the Filename was properely escaped in Javascript so that it shows up correctly in the report to fix issue #91
Former-commit-id: ec161508db21c0a3d1f4f6f4130e5fdc63d9b367
2014-03-16 04:13:43 -04:00
Jeremy Long
776614d211 minor update to the generated report names
Former-commit-id: 1ee6a44db3df3c060033470b026799cfa8bd744d
2014-03-15 07:48:19 -04:00
Jeremy Long
44326cd8c1 minor update to the generated report names
Former-commit-id: e072df44801e468c7a5d46e2f8eb039a8733865e
2014-03-15 07:48:19 -04:00
Jeremy Long
b03a498cd7 updated to resolve issue #87
Former-commit-id: 56338ff8aee45193cf387ff9d2d0087afd7febaf
2014-03-15 07:46:29 -04:00
Jeremy Long
4592ab4bf5 updated to resolve issue #87
Former-commit-id: 03c12742bbd99b980c605d78b3d25fb1f89ab3cd
2014-03-15 07:46:29 -04:00
Jeremy Long
b612926fb6 minor update to the generated report names
Former-commit-id: 347cefef415fa91f7cf59e1c167772ebfd3f3ce3
2014-03-15 07:42:55 -04:00
Jeremy Long
870849f01a minor update to the generated report names
Former-commit-id: 2319209d909b7350447c91af693f88e57e437a7e
2014-03-15 07:42:55 -04:00
Jeremy Long
b67377f505 patch from davidkarlsen (PR #85) was applied to resolve issue #84
Former-commit-id: 0741248ece9a4df1b1a7595b74aef31c6f74652d
2014-03-12 23:40:42 -04:00
Jeremy Long
a00bcc3df2 patch from davidkarlsen (PR #85) was applied to resolve issue #84
Former-commit-id: ac2f1c66913d08ae2e39293e98a3e7e5b9318b50
2014-03-12 23:40:42 -04:00
Jeremy Long
2033acbe2a updated logo
Former-commit-id: 5c6034247fb4fba8cbd6f9028a01b66d177378fb
2014-03-11 11:59:54 -04:00
Jeremy Long
122dc5baf4 updated logo
Former-commit-id: 4ea34b9862eef2229bd1ba7c2e3868f12c336055
2014-03-11 11:59:54 -04:00
Jeremy Long
e435cfc489 version 1.1.4-SNAPSHOT
Former-commit-id: b7ee0f15a5390df86a06b2e80d66aec6a5c88cb7
2014-03-11 11:52:57 -04:00
Jeremy Long
a276d2da4f version 1.1.4-SNAPSHOT
Former-commit-id: 969be860afdca6a1e86f6ef03b2218c34cb07114
2014-03-11 11:52:57 -04:00
Jeremy Long
a3199a52af version 1.1.3
Former-commit-id: 8d19b8d203026e650047bf3af1b5738d5c6a595f
2014-03-11 11:49:32 -04:00
Jeremy Long
6f04d4d43b version 1.1.3
Former-commit-id: af8a66cf2ecda07b7005d20f9de9dbe14d61e187
2014-03-11 11:49:32 -04:00
Jeremy Long
99be870ab9 created a new getTempFile() to FileUtils that does not create the file, it only generates the file name
Former-commit-id: c3efa45ead91601442903ff190d058810196150d
2014-03-10 21:25:53 -04:00
Jeremy Long
a966f263a2 created a new getTempFile() to FileUtils that does not create the file, it only generates the file name
Former-commit-id: 04e275caade0deba97b3b03cf41fa48f962c0172
2014-03-10 21:25:53 -04:00
Jeremy Long
9b2ecb4701 minor checkstyle correctionn
Former-commit-id: 57438863b9635f339e1eacdd73913c5ed003348f
2014-03-10 14:53:06 -04:00
Jeremy Long
ac5a23ef29 minor checkstyle correctionn
Former-commit-id: 72cfe98796cc4b8ba335c1cf6de293b30e111d99
2014-03-10 14:53:06 -04:00
Jeremy Long
be7443a0a0 updated to ignore .LCKpom.xml~
Former-commit-id: dbbf41fb2d10206ef167f78d04de01e92c4d90ae
2014-03-10 11:25:40 -04:00
Jeremy Long
b82804018d updated to ignore .LCKpom.xml~
Former-commit-id: f81c6f5c3fb3e8529275ce8db56bb0919aa32953
2014-03-10 11:25:40 -04:00
Jeremy Long
0de6557872 updated to delete newly created file prior to attempting to copy a new file into its location
Former-commit-id: f170e09f4290b746808e0400a106ea9d33b992d6
2014-03-10 10:36:03 -04:00
Jeremy Long
35b0b684df updated to delete newly created file prior to attempting to copy a new file into its location
Former-commit-id: 584dc6abeab388acf65ab3d5379616005746db6b
2014-03-10 10:36:03 -04:00
Jeremy Long
258e890056 minor updates for issue #58
Former-commit-id: ffb30eb654dfb71317c32a5553074f45e4024ab9
2014-03-09 12:40:42 -04:00
Jeremy Long
a627ca2127 minor updates for issue #58
Former-commit-id: 6f4d0edc03654c73dc6de29a47d65e6297814613
2014-03-09 12:40:42 -04:00
Jeremy Long
d84bbad79a initial version of test cases
Former-commit-id: 10edfd3544b2231aa5fd5edaeb474cc5d1f1a435
2014-03-09 12:39:36 -04:00
Jeremy Long
05a1096e25 initial version of test cases
Former-commit-id: 7fc3697e5cf1dd2730ea15c4bf7de568033ef9eb
2014-03-09 12:39:36 -04:00
Will Stranathan
07e6477686 Fixed two discrepancies in the CLI options
1) Proxy port and Properties files were both using -p. Now the
properties file uses -P.
2) Nexus Proxy was defaulting to true, even if the properties said
false, so moved the check for its setting to happen after the properties
were merged and had it default to checking the properties file and
setting it to true if the properties didn't say.


Former-commit-id: 9dd50ca9af906a15143dae153b807700bb385054
2014-03-08 18:58:39 -05:00
Will Stranathan
9600e56344 Fixed two discrepancies in the CLI options
1) Proxy port and Properties files were both using -p. Now the
properties file uses -P.
2) Nexus Proxy was defaulting to true, even if the properties said
false, so moved the check for its setting to happen after the properties
were merged and had it default to checking the properties file and
setting it to true if the properties didn't say.


Former-commit-id: 6a4bcb9b457eea5a55e2cc74acc47d69637b7620
2014-03-08 18:58:39 -05:00
Jeremy Long
acde161412 updated grokassembly version in the test case
Former-commit-id: 27e9b36f3b3e72cf68592bd8f5ac7ee83702e565
2014-03-08 06:36:31 -05:00
Jeremy Long
1bb0871948 updated grokassembly version in the test case
Former-commit-id: 233cf163ecf40331a3ac175e764e16bd8d044273
2014-03-08 06:36:31 -05:00
Jeremy Long
8d8f9c6d26 updated to resolve issue #58
Former-commit-id: 4cd1d528f33c8db05a7d0b67460311b1b56426cd
2014-03-08 06:28:36 -05:00
Jeremy Long
6ff50689e1 updated to resolve issue #58
Former-commit-id: 8787dadc04127169c2ae4d19ee0ac96399b63b62
2014-03-08 06:28:36 -05:00
Jeremy Long
c7507d9743 corrected syntax error caused by copy paste
Former-commit-id: 32446494c36bf5ea4536b9825046783bb15d4f0f
2014-03-08 06:22:03 -05:00
Jeremy Long
9b025ddece corrected syntax error caused by copy paste
Former-commit-id: cd7b981f94fbc4e2f5124fc791162c1a96e2c7ce
2014-03-08 06:22:03 -05:00
Jeremy Long
ff970fde56 updated to correctly use the correctly configured temp directory
Former-commit-id: 407f3eb2c3ff887eaa6d7969517af75dda01878a
2014-03-08 06:21:08 -05:00
Jeremy Long
12fd77f0b2 updated to correctly use the correctly configured temp directory
Former-commit-id: 1080d1ae37304188818f59fff5234d29857c64f5
2014-03-08 06:21:08 -05:00
Jeremy Long
2c4a997c64 updated to correctly use the correctly configured temp directory
Former-commit-id: e4b08d63e8eee17f538a2e074dfdc394d446000b
2014-03-08 06:20:32 -05:00
Jeremy Long
0e60883b3d updated to correctly use the correctly configured temp directory
Former-commit-id: e470dd805e126a7b2aae56f067c8fbe4bb85613a
2014-03-08 06:20:32 -05:00
Jeremy Long
5c787e0b69 updated to correctly use the correctly configured temp directory
Former-commit-id: 364d0362f9d9107bbee6e83f495b575b8d657372
2014-03-08 06:20:12 -05:00
Jeremy Long
33b6bfe5be updated to correctly use the correctly configured temp directory
Former-commit-id: 048a7f7464f454810924a61110f0af18ac206c5b
2014-03-08 06:20:12 -05:00
Jeremy Long
41da8435cc added validation for pathToMono argument
Former-commit-id: 763f3960f4c83f45020d8b5144ea98518c797d10
2014-03-08 06:19:21 -05:00
Jeremy Long
8167146372 added validation for pathToMono argument
Former-commit-id: 5a2a58c96ee91b0d0dbf7b5a658a776da8a7141f
2014-03-08 06:19:21 -05:00
Jeremy Long
84ecc4c664 added option to download a file without using the configured proxy
Former-commit-id: 7153a34a12a02a53bf715fe023e820afd42899d2
2014-03-08 06:18:44 -05:00
Jeremy Long
21bbedaf04 added option to download a file without using the configured proxy
Former-commit-id: 234d9ba35d11459473a2f6311ffe4fc56003a083
2014-03-08 06:18:44 -05:00
Jeremy Long
d18a36af22 added the path to mono as a configurable setting
Former-commit-id: 7909cab0f29a44168ccee166170e29882a461a42
2014-03-08 05:42:32 -05:00
Jeremy Long
998aedde33 added the path to mono as a configurable setting
Former-commit-id: e0b0e5eed59f36060c4ad57052fe3e610ff2d637
2014-03-08 05:42:32 -05:00
Will Stranathan
b3e766aa50 Merge branch 'master' of github.com:/colezlaw/DependencyCheck
Former-commit-id: 256f7898af5f72762b6ef21bc1aa00fe8373a360
2014-03-05 21:52:56 -05:00
Will Stranathan
25050da2c9 Merge branch 'master' of github.com:/colezlaw/DependencyCheck
Former-commit-id: c9d90f875ca9fe981d2bb294a7ed416b1e299987
2014-03-05 21:52:56 -05:00
Will Stranathan
0cee54c51b Updated GrokAssembly to catch a couple of possible exceptions
Former-commit-id: 4c462a7b5abf98e7ee0898210c684cd68725e0d0
2014-03-05 21:52:19 -05:00
Will Stranathan
a74cf8ec4d Updated GrokAssembly to catch a couple of possible exceptions
Former-commit-id: dfc1b67da43178d3653c35ab80fa244bbfd3e70b
2014-03-05 21:52:19 -05:00
Will Stranathan
41e436a183 Updated GrokAssembly to catch a couple of possible exceptions
Former-commit-id: c0e10b5e201b6b04eecc58e2de215cd716336e8d
2014-03-04 13:18:04 -05:00
Will Stranathan
e06f0a5d49 Updated GrokAssembly to catch a couple of possible exceptions
Former-commit-id: 52c6ae3bd8ff6acccecd9aa709dceb3c2aed6265
2014-03-04 13:18:04 -05:00
Will Stranathan
743fc19fa3 Merge remote-tracking branch 'upstream/master'
Former-commit-id: 84ffe19906b355e930c8f36659a05c636e5d0b20
2014-03-04 13:13:01 -05:00
Will Stranathan
9d1ea4b551 Merge remote-tracking branch 'upstream/master'
Former-commit-id: c980e2c3cbcfbebd38bd99b62ffcca60f0153eb0
2014-03-04 13:13:01 -05:00
Jeremy Long
76e8c66b1b updated version to 1.1.3-SNAPSHOT
Former-commit-id: 62657e41c409c474918d0c6ac1d1f505e072a682
2014-03-04 07:33:27 -05:00
Jeremy Long
e0410783be updated version to 1.1.3-SNAPSHOT
Former-commit-id: b0d241a5d856244c5dac22f24d2ea135d2e4f545
2014-03-04 07:33:27 -05:00
Jeremy Long
4379ea63f0 corrected intellij idea link
Former-commit-id: be7f327b6641d0819a55f93c3aefe016deca557b
2014-03-03 19:54:46 -05:00
Jeremy Long
d064337c15 corrected intellij idea link
Former-commit-id: da919f5e5b81328e35e7a91f0f16f0c07f42a1e4
2014-03-03 19:54:46 -05:00
Jeremy Long
00ae54b4b2 version 1.1.2
Former-commit-id: 63c1f372e6d093b3d3fa08a0eab102d9422f78c4
2014-03-03 08:51:17 -05:00
Jeremy Long
6379bfb8b8 version 1.1.2
Former-commit-id: 876e8a1a02fdb24968779f6988652e0c11afc866
2014-03-03 08:51:17 -05:00
Jeremy Long
3a7fd7d271 minor update to formating
Former-commit-id: 6bd182ef660034549b2be16b4a22574171351a8b
2014-03-03 07:37:33 -05:00
Jeremy Long
220539e51a minor update to formating
Former-commit-id: b3c3f53e6d227c8b08ff908380bf2af94cb64b04
2014-03-03 07:37:33 -05:00
Jeremy Long
94a0c98bfe added more javadoc
Former-commit-id: 2befc7ec80f7ca2f8c7c25554b0b75e3e515eeb0
2014-03-03 07:32:43 -05:00
Jeremy Long
95cd215e9e added more javadoc
Former-commit-id: 5b42bdc4fdf6670ea5316d21c02a3223a44505d4
2014-03-03 07:32:43 -05:00
Jeremy Long
c2b2b2698d updated pre-flight to correctly skip the proxy if configured to do so
Former-commit-id: ee993ded2a19f2a7fbda3f93c8d53ece43c8b1d1
2014-03-03 07:12:58 -05:00
Jeremy Long
88c04714f8 updated pre-flight to correctly skip the proxy if configured to do so
Former-commit-id: eca1f3b7bf24d88b4e80cda9e296e31ad8c1215b
2014-03-03 07:12:58 -05:00
Jeremy Long
9bb630bae6 minor update to logging statement
Former-commit-id: bdf69f0747e0dbf4a368050df95b5650960420ad
2014-03-03 07:05:24 -05:00
Jeremy Long
6d47e32cac minor update to logging statement
Former-commit-id: 0f197a42a7bdf4eebefed860d5d03b5dd2634a1d
2014-03-03 07:05:24 -05:00
Jeremy Long
c47b2f5b18 corrected spelling
Former-commit-id: c40c47a6b198953b9ae4b5685ee08da5fcd7c0a5
2014-03-03 07:02:59 -05:00
Jeremy Long
fc34b40c0a corrected spelling
Former-commit-id: 9acb6efd615f2327a8235f13bd2054797d8b52f7
2014-03-03 07:02:59 -05:00
Jeremy Long
ecdc9a968d updated logging of properties
Former-commit-id: 6472713deca91c5492cd9895af0257338ed2d847
2014-03-03 07:01:19 -05:00
Jeremy Long
d95fa8a893 updated logging of properties
Former-commit-id: f9e224a9c5ad0972e2f8ae0fc5850947b1e59c2f
2014-03-03 07:01:19 -05:00
Jeremy Long
c041ff66e2 updated imports
Former-commit-id: 44995cd7c14577d508a97e6ecb70f7edbad29a3a
2014-03-03 06:36:25 -05:00
Jeremy Long
b48f83ff49 updated imports
Former-commit-id: f7c013937243063b60f2b5cb7012e476b1fdcc98
2014-03-03 06:36:25 -05:00
Jeremy Long
fe0e2d5c2d corrected long option name for nexus uses proxy argument
Former-commit-id: f8a8a902fb3fb9e3bdcaa875c7563078d798811f
2014-03-03 05:41:55 -05:00
Jeremy Long
c189b258b4 corrected long option name for nexus uses proxy argument
Former-commit-id: 4dfcd0fc4324828ff99138ca5d5903aa8e368a39
2014-03-03 05:41:55 -05:00
Jeremy Long
2cf3bca8de updated documentation
Former-commit-id: 026a64cd80c9870830dd11a37dcdeae0c6274659
2014-03-02 19:23:04 -05:00
Jeremy Long
06fc5e71c3 updated documentation
Former-commit-id: 0380144c003adf7a2e50d32d43f3605a30b6b089
2014-03-02 19:23:04 -05:00
Jeremy Long
b2a817e17b minor checkstyle patch
Former-commit-id: d81d0e9418963d01964eb42aac21d10f1b756a3f
2014-03-02 19:17:08 -05:00
Jeremy Long
8093927579 minor checkstyle patch
Former-commit-id: e72e6856d19861fcfcc18e723852ca5fec2ff58a
2014-03-02 19:17:08 -05:00
Jeremy Long
d1ca951ffa updated to address issue #74
Former-commit-id: d562b1785a7f9b32dff7cd84351eed96c775fdcf
2014-03-02 18:26:58 -05:00
Jeremy Long
d9eed4a460 updated to address issue #74
Former-commit-id: 9ebe411a6f1dae5c0ffb39399fe5b5c63b927836
2014-03-02 18:26:58 -05:00
Jeremy Long
b3932ae8c5 added configuration for whether or not the nexus analyzer should use the configured proxy
Former-commit-id: e604d6862b50d4177f6846111408fce64a3c09eb
2014-03-02 18:16:12 -05:00
Jeremy Long
9d609b6085 added configuration for whether or not the nexus analyzer should use the configured proxy
Former-commit-id: 99f3110346941ebc00c14ae1c00220eef76c1e9f
2014-03-02 18:16:12 -05:00
Jeremy Long
35223d5737 checkstyle fix
Former-commit-id: 5c79f2c38a40c6f339f8383cccdc86c2aa5e3cf4
2014-03-02 12:27:26 -05:00
Jeremy Long
ef97f9c088 checkstyle fix
Former-commit-id: 1968682a460b5b294553f375ea191bcf6a45072b
2014-03-02 12:27:26 -05:00
Jeremy Long
9d263f11e5 fixed JavaDoc @link missing close curly bracket
Former-commit-id: 632dd4de562a1036883103ce89df8f98ee5d8804
2014-03-02 12:26:56 -05:00
Jeremy Long
bb8aa0fe6f fixed JavaDoc @link missing close curly bracket
Former-commit-id: 2ae5d38ac5e469c65e986ff0dd0292dcb8267285
2014-03-02 12:26:56 -05:00
Jeremy Long
3f28b30e95 checkstyle fix
Former-commit-id: ec2da0e3c262923552a219c6be3deb6004b3f154
2014-03-02 12:26:17 -05:00
Jeremy Long
be441d2aa5 checkstyle fix
Former-commit-id: 108f7d5e6b1ef4f59b2d009eddbcb00671576dd8
2014-03-02 12:26:17 -05:00
Jeremy Long
d797abdb1f removed unused argument from runScan
Former-commit-id: 024f830175f347ae45146c4e536ca23d58325838
2014-03-02 12:25:50 -05:00
Jeremy Long
73e089d330 removed unused argument from runScan
Former-commit-id: 777688a5a541a9d3758294cee13f95c7b0d854e5
2014-03-02 12:25:50 -05:00
Jeremy Long
3b3a940ee4 minor code formating change
Former-commit-id: 090e2a881a1977172bc16911c828cde86b417865
2014-03-01 16:09:14 -05:00
Jeremy Long
0a24fb57aa minor code formating change
Former-commit-id: 184bb0405efa2352116c7412efa07bd354df3e96
2014-03-01 16:09:14 -05:00
Jeremy Long
1b5b61b25e cleaned up code duplication
Former-commit-id: 27896a50114fcee9f2aaeb21915b91b4a198f328
2014-03-01 16:08:58 -05:00
Jeremy Long
7f2c51f337 cleaned up code duplication
Former-commit-id: 561f5f16b22f07199450d090ebb8c56df3703739
2014-03-01 16:08:58 -05:00
Jeremy Long
00d29b88df Merge branch 'master' of github.com:colezlaw/DependencyCheck into colezlaw-master
Former-commit-id: f3badca9d690cbf388c593f4bea1594855da6d1e
2014-03-01 15:35:57 -05:00
Jeremy Long
537e490f0f Merge branch 'master' of github.com:colezlaw/DependencyCheck into colezlaw-master
Former-commit-id: 852aaebdb276c0974da0a76fe53e7228228a18a1
2014-03-01 15:35:57 -05:00
Will Stranathan
ab9bc9da74 Merge remote-tracking branch 'upstream/master'
Former-commit-id: c3ccdb83e5ce2cd6fc7f242d3b28aee1a2038d5d
2014-03-01 15:26:53 -05:00
Will Stranathan
4340368e49 Merge remote-tracking branch 'upstream/master'
Former-commit-id: ec7e5a5f328476863cc1d92354268ccf99bc33cf
2014-03-01 15:26:53 -05:00
Jeremy Long
b79f7b7ab8 corrected db initialization sequence
Former-commit-id: c4f33cc7905d8c4d3c9d9c5fb30556533c962e47
2014-03-01 15:26:17 -05:00
Jeremy Long
a85fb3a871 corrected db initialization sequence
Former-commit-id: bfea90ba44673f49b76d509688a6e4a4d6a912a0
2014-03-01 15:26:17 -05:00
Will Stranathan
9b34b5ca89 Fixed merge conflict
Former-commit-id: 4a4bfd553bd5b91c53e87f7e327beb0a605bc21f
2014-03-01 15:07:40 -05:00
Will Stranathan
05a49ff5db Fixed merge conflict
Former-commit-id: b6832bce2c905ca406d328cbf87d45f1ebb50393
2014-03-01 15:07:40 -05:00
Jeremy Long
b486788993 added logos
Former-commit-id: 544b6573d59c880bb01bae28ef3b114327b1cd84
2014-03-01 14:36:51 -05:00
Jeremy Long
0bec242b2e added logos
Former-commit-id: e00a53546ce2671eef59b264fc4b2e12b6f9691f
2014-03-01 14:36:51 -05:00
Jeremy Long
563e9c51e1 added powered by for cloudbees and built using intellij
Former-commit-id: b140717614a6536639509a13440e6000f3a601f4
2014-03-01 14:36:33 -05:00
Jeremy Long
831624897b added powered by for cloudbees and built using intellij
Former-commit-id: c0b21530aad1dfa52e0417e67af22ac3c22f0e30
2014-03-01 14:36:33 -05:00
Jeremy Long
6ab5e3ed4f minor format change
Former-commit-id: e891f090096cb79642fdeb9fe920a3afc12b9293
2014-03-01 14:35:48 -05:00
Jeremy Long
ca8a0e9a88 minor format change
Former-commit-id: f96c54e1fb969fc50ff27ab2a177490efdd3ab66
2014-03-01 14:35:48 -05:00
Will Stranathan
43a6c81151 Merge branch 'master' of github.com:/colezlaw/DependencyCheck
Former-commit-id: 02418eccb8ef85084f8561cb3fd5b8ea04771c63
2014-03-01 07:24:35 -05:00
Will Stranathan
865ff7911a Merge branch 'master' of github.com:/colezlaw/DependencyCheck
Former-commit-id: 1e5c7e9d4b41a70a8139afb2d572a96fba113cd6
2014-03-01 07:24:35 -05:00
Will Stranathan
887a5d50a4 Added proper waitfor to the process. Need to add a watchdog to this
Former-commit-id: 51bea69bb73e379fa7aac776171110fa1f75b8d4
2014-03-01 07:24:12 -05:00
Will Stranathan
eefc6a5567 Added proper waitfor to the process. Need to add a watchdog to this
Former-commit-id: ff4b0b1f2c1254449e63eb660c1dbd31cef21c3b
2014-03-01 07:24:12 -05:00
Will Stranathan
be68f8c3f7 Fixed JULI Logging (stupid fix imports)
Former-commit-id: 75036170c113718e2265dad4c2b436b1613e0da7
2014-03-01 07:24:12 -05:00
Will Stranathan
bf3bc83fd8 Fixed JULI Logging (stupid fix imports)
Former-commit-id: d29bba7ac4ccdf648d9a945e728e9d0dbc301b6e
2014-03-01 07:24:12 -05:00
Will Stranathan
86a4923157 Fixed logging to JULI
Former-commit-id: ab31241151a610fa67bc8102bded86db2250a9fd
2014-03-01 07:24:12 -05:00
Will Stranathan
03b06eee67 Fixed logging to JULI
Former-commit-id: b8155251fa7120e33a042115f36ecac05fc7dce2
2014-03-01 07:24:12 -05:00
Will Stranathan
f80ff31412 Fixed JULI Logging (stupid fix imports)
Former-commit-id: ca5b3b5ad64defefccea4c445414595208205957
2014-03-01 07:16:38 -05:00
Will Stranathan
3bc17e7b83 Fixed JULI Logging (stupid fix imports)
Former-commit-id: 65aa4381b27717ec7bc766f37705fd63941849d1
2014-03-01 07:16:38 -05:00
Will Stranathan
94acc82bf5 Fixed logging to JULI
Former-commit-id: 76cd085130357fc9187f0af43b9670370a261026
2014-03-01 07:13:00 -05:00
Will Stranathan
458297bf56 Fixed logging to JULI
Former-commit-id: 5f5d9b29a6ba76f9193d47aa485b11cadb47bb67
2014-03-01 07:13:00 -05:00
Jeremy Long
3c1a1fcca1 ensured output streams are closed
Former-commit-id: 0c9b622e46349690cf68a383be0ee6c8fd7c553d
2014-03-01 06:59:48 -05:00
Jeremy Long
9673b2aa7c ensured output streams are closed
Former-commit-id: c3102271cd7631bd1e38bf39b5f87ebb71da9e52
2014-03-01 06:59:48 -05:00
Jeremy Long
b3d08e4cb8 refactored closing input streams
Former-commit-id: 04c8b13428a4c7a215058bf54d47c62374d6a946
2014-03-01 06:56:42 -05:00
Jeremy Long
a55710df7b refactored closing input streams
Former-commit-id: 5cb4c326cc8030ff6b776fcc20a6d790494aee43
2014-03-01 06:56:42 -05:00
Jeremy Long
ab766ce85b made a broad catch even broader
Former-commit-id: dc6cae0168ed3bca63141e846599e1b9d13ca616
2014-03-01 06:46:16 -05:00
Jeremy Long
73edd3bc40 made a broad catch even broader
Former-commit-id: 2308606f9459ad25f4b81179f2d93768c5afa35d
2014-03-01 06:46:16 -05:00
Jeremy Long
bcb8245c61 made a broad catch even broader
Former-commit-id: 84bc747061ab345241c00c46e2efbd2493606590
2014-03-01 06:45:57 -05:00
Jeremy Long
f2ee243628 made a broad catch even broader
Former-commit-id: 11528d014d58a77c79b80073503352fce77ef45b
2014-03-01 06:45:57 -05:00
Jeremy Long
c9e60d5c3a made a broad catch even broader
Former-commit-id: 6c1a0015c53bb5ee803de3d1b144d77ebecaa6c0
2014-03-01 06:45:32 -05:00
Jeremy Long
88b1e668ee made a broad catch even broader
Former-commit-id: 909064cae6d9bac8a9630fb9b8cca13f73353bfb
2014-03-01 06:45:32 -05:00
Jeremy Long
eb7c74eea7 checkstyle fixes
Former-commit-id: 8e7c96bf02360aa083ebdb518be60587e15d9192
2014-03-01 06:45:06 -05:00
Jeremy Long
1c92a47d75 checkstyle fixes
Former-commit-id: 1ae545e0e16e3c49e3c6a0d6b95e89bf431c9598
2014-03-01 06:45:06 -05:00
Jeremy Long
40f5911ceb checkstyle fixes
Former-commit-id: f274d6f4fc1103f7cde5ab8bfbe73f3ee4163af9
2014-03-01 06:44:45 -05:00
Jeremy Long
d2a9f0583a checkstyle fixes
Former-commit-id: 81cedcd97db9bc7f1f824cdd2f496a05330b8e5f
2014-03-01 06:44:45 -05:00
Jeremy Long
2a8809adbb checkstyle corrections and Javadoc update
Former-commit-id: b1e73d2eeecba925baad44d36f84ab5c066961fc
2014-03-01 06:44:23 -05:00
Jeremy Long
2621d2e1dc checkstyle corrections and Javadoc update
Former-commit-id: 2bec74eecf56f5a758234edbbaccc146da32c835
2014-03-01 06:44:23 -05:00
Jeremy Long
39524c4064 made a broad catch even broader
Former-commit-id: 183a78f51b69ed5507e27003f5af06a83d3d363b
2014-03-01 06:44:01 -05:00
Jeremy Long
1ce683a95a made a broad catch even broader
Former-commit-id: 1a8c926890702a58037457861f7172cb4916cff5
2014-03-01 06:44:01 -05:00
Jeremy Long
c1cc2d6350 made a broad catch even broader
Former-commit-id: 75551751dcfd126db43dabde20753cc0ce676cee
2014-03-01 06:43:42 -05:00
Jeremy Long
3d5f725004 made a broad catch even broader
Former-commit-id: 303c1ac281443fc121517a4dea88f072bab117bf
2014-03-01 06:43:42 -05:00
Jeremy Long
acb857f433 made a broad catch even broader
Former-commit-id: d96be233d3ebac1879ac8460903e105b6ad556f7
2014-03-01 06:43:23 -05:00
Jeremy Long
655bc4bee3 made a broad catch even broader
Former-commit-id: 1a553b664d41760f313245584ecec0dfd25a55c3
2014-03-01 06:43:23 -05:00
Jeremy Long
d343d92b17 made a broad catch even broader
Former-commit-id: 172c586e791458ca06ae9303a4dc4dadb2df6f33
2014-03-01 06:43:02 -05:00
Jeremy Long
c67d372667 made a broad catch even broader
Former-commit-id: e9900933e58227f32b32b1562f17ae9bf50fe836
2014-03-01 06:43:02 -05:00
Jeremy Long
43cb4716a9 checkstyle fixes
Former-commit-id: ba40bf3ee9abb796a0f21eca8124edc1d63f81c0
2014-03-01 06:42:44 -05:00
Jeremy Long
54e45dac51 checkstyle fixes
Former-commit-id: 377512fe3a5d5fcf92cd2690bff64f53f12e6d4f
2014-03-01 06:42:44 -05:00
Jeremy Long
6222561431 made a broad catch even broader and some minor format changes
Former-commit-id: 09ed906bced54568d92d6c5ff78c83bb4ad39872
2014-03-01 06:42:18 -05:00
Jeremy Long
5b0b594761 made a broad catch even broader and some minor format changes
Former-commit-id: 42c434756593c80eaa02146d2a6a1fd517d9b8e3
2014-03-01 06:42:18 -05:00
Jeremy Long
07b10e9e23 made a broad catch even broader and checkstyle corrections
Former-commit-id: 3bb21494d7658b8f65207b15e2663082dbd0354a
2014-03-01 06:41:40 -05:00
Jeremy Long
cdf6e3b456 made a broad catch even broader and checkstyle corrections
Former-commit-id: 5b6eb0775bfa5604bf27e510d75a693d5eb5dc66
2014-03-01 06:41:40 -05:00
Jeremy Long
dffe8cef7a made a broad catch even broader
Former-commit-id: f18ef8330532059c35e3430b8c0f77c4d3bc6f63
2014-03-01 06:41:11 -05:00
Jeremy Long
cf46afea94 made a broad catch even broader
Former-commit-id: 3ae82930f8d25eeb59f162c44491d2f298ca3031
2014-03-01 06:41:11 -05:00
Jeremy Long
bb26626fd5 made a broad catch even broader
Former-commit-id: ed75ee0071bc9d067db84f99063a1a160d0bbc74
2014-03-01 06:40:54 -05:00
Jeremy Long
ea6cca588c made a broad catch even broader
Former-commit-id: 34ca7cd3269aca17a24e08e0db9d04ef21a17f89
2014-03-01 06:40:54 -05:00
Jeremy Long
2f207de1a0 made a broad catch even broader
Former-commit-id: 2d88c89317b069e035e4d4fc698c323a183994a8
2014-03-01 06:40:29 -05:00
Jeremy Long
1f9996fe62 made a broad catch even broader
Former-commit-id: 419f42bfbdab2328b6d6eb32baaa6b409ce20b82
2014-03-01 06:40:29 -05:00
Jeremy Long
a69419ed04 checkstyle fixes
Former-commit-id: 1b9b1edd2f29967a8701adef4d3461de1089ab5a
2014-03-01 06:40:07 -05:00
Jeremy Long
e0be6c746c checkstyle fixes
Former-commit-id: 0970762bb0105e36ae089aa17013a7be78b988f3
2014-03-01 06:40:07 -05:00
Jeremy Long
be7c1ba914 made a broad catch even broader
Former-commit-id: f38245a785b3b8073ed51ff6e526c71a5cd79ae2
2014-03-01 06:39:45 -05:00
Jeremy Long
2b62bf0337 made a broad catch even broader
Former-commit-id: bf8e7083115bce94128112645eac4d0883e58cbf
2014-03-01 06:39:45 -05:00
Jeremy Long
461f6ad2c1 made a broad catch even broader
Former-commit-id: 99a762ea3306523bba77139fff6605902b2ed760
2014-03-01 06:39:20 -05:00
Jeremy Long
845825c0bf made a broad catch even broader
Former-commit-id: aefe84c760d9146e76ce950bdb83fd15b6772813
2014-03-01 06:39:20 -05:00
Jeremy Long
aff85cbfb8 minor update to the author JavaDoc
Former-commit-id: f3db304c7e14d6eff52c753bf687ccc245842432
2014-03-01 05:47:26 -05:00
Jeremy Long
f9b09e5b61 minor update to the author JavaDoc
Former-commit-id: d4d7f5dae1a2951c0f9175c05afad4ab83afea9c
2014-03-01 05:47:26 -05:00
Jeremy Long
c0ce4523fa minor formating change
Former-commit-id: 928f33f28756b3f3a856df4e8f1b6627d65a681b
2014-03-01 05:47:10 -05:00
Jeremy Long
1403aa18eb minor formating change
Former-commit-id: 2be516fedafbdb88603bf3c041e327fe08e536db
2014-03-01 05:47:10 -05:00
Will Stranathan
65f8b3978d Added colezlaw to the developers list
Former-commit-id: 13623eee87aee8f78ced6716b45bfe7e2764111a
2014-02-28 13:14:54 -05:00
Will Stranathan
ba2fff249d Added colezlaw to the developers list
Former-commit-id: 1055a7ca09579e010792777feeae0e8282635bc5
2014-02-28 13:14:54 -05:00
Jeremy Long
80ca3e114e updated deletion and logging of temporary files to resolve issue #73
Former-commit-id: 7acc91ef84a01b021c5d619602b8a0a7f656947a
2014-02-28 06:52:51 -05:00
Jeremy Long
17447d3cdc updated deletion and logging of temporary files to resolve issue #73
Former-commit-id: 566b0629dc20e7f8fb1fa00fa8d7b3485e739815
2014-02-28 06:52:51 -05:00
Jeremy Long
330e803675 refactored the creation of the HttpUrlConnection objects to a factory
Former-commit-id: a4532bd8195b69cfe274d2dc58268db9010f5cdd
2014-02-28 06:25:08 -05:00
Jeremy Long
3f4c1e7029 refactored the creation of the HttpUrlConnection objects to a factory
Former-commit-id: 984968995bf68ad9889bac843770a0d615d4478c
2014-02-28 06:25:08 -05:00
Jeremy Long
337e9ac3ef removed my previous "correction" for the if statement...
Former-commit-id: 1ff71f2853dd981a9d4d5c48906853425a9fc2b6
2014-02-28 06:03:26 -05:00
Jeremy Long
543bbf34c2 removed my previous "correction" for the if statement...
Former-commit-id: 70509cee3c061bfbfad927a0eb72cd32bc40ad6f
2014-02-28 06:03:26 -05:00
Jeremy Long
dfb78788f9 minor correction to an if statement that missed the explicit check against null
Former-commit-id: 4ec16d7207660799935f692ea761e03599115093
2014-02-28 05:52:49 -05:00
Jeremy Long
5394151e42 minor correction to an if statement that missed the explicit check against null
Former-commit-id: 115a691e3eb74038a1ed7f5d7fe357cb0b2b2a06
2014-02-28 05:52:49 -05:00
Will Stranathan
2dc560f583 Fixes issue 75
Changed getConnection to public and made one which makes using the proxy optional, even if configured

Added a preflight request and proxy logic


Former-commit-id: 3d1225ec0882dfc0efb043c5a70ba1c20639d8f7
2014-02-26 22:19:13 -05:00
Will Stranathan
9349e9cd99 Fixes issue 75
Changed getConnection to public and made one which makes using the proxy optional, even if configured

Added a preflight request and proxy logic


Former-commit-id: 19fdfcf4edacacfa3724c8969c7da74a593f9a7c
2014-02-26 22:19:13 -05:00
Will Stranathan
7355400548 Merge remote-tracking branch 'upstream/master'
Former-commit-id: b066078bf0df0365d850ea71e2434a5376b9cd16
2014-02-26 20:45:30 -05:00
Will Stranathan
594aa03c5a Merge remote-tracking branch 'upstream/master'
Former-commit-id: 0bd0189c8d6b432de170452118a0a6d8f0864191
2014-02-26 20:45:30 -05:00
Jeremy Long
50b4630436 changed log level to hide extraction of Grok Assembly from users
Former-commit-id: dd94cf7d64ecff45da7b172dcd11d690debcda10
2014-02-23 08:45:04 -05:00
Jeremy Long
ff1328dbdd changed log level to hide extraction of Grok Assembly from users
Former-commit-id: c2701066dc9fe268d82539a83e4b5a27e1ad0e04
2014-02-23 08:45:04 -05:00
Jeremy Long
132d43f999 re-wrote the retrieval of the vendor product list to use a generic pair and completely encapsulate all sql objects in CveDB
Former-commit-id: f801fa86d08c5ba7c20d4c7067d4761d254006c9
2014-02-23 08:42:16 -05:00
Jeremy Long
9ba44e32fb re-wrote the retrieval of the vendor product list to use a generic pair and completely encapsulate all sql objects in CveDB
Former-commit-id: f84c88e2acc3c876228150736c71290b3467e2d2
2014-02-23 08:42:16 -05:00
Jeremy Long
0627f20f5e pmd corrections - unused exceptions
Former-commit-id: 338d8220bf6f8bf20d45599f1bc056f5ee103966
2014-02-23 07:45:43 -05:00
Jeremy Long
245becdc8c pmd corrections - unused exceptions
Former-commit-id: 25ac03c35e7805ec5b9a77c3a3deb5c667ae32c7
2014-02-23 07:45:43 -05:00
Jeremy Long
40f329512b checkstyle corrections
Former-commit-id: 8c116dc61d7bd5e5f18ee106fe82c663570eecf9
2014-02-23 07:42:56 -05:00
Jeremy Long
56f77e88a8 checkstyle corrections
Former-commit-id: 54a8da5be77dc5c13ebaa275de668e746d306762
2014-02-23 07:42:56 -05:00
Jeremy Long
c196c08ada updated error messages
Former-commit-id: 88fdd713faf6c53e65540574c9d6140d57f3a7f9
2014-02-22 17:43:12 -05:00
Jeremy Long
695e35634c updated error messages
Former-commit-id: 57b15967c6df98c13a0fd2d940ff20a9166bbaed
2014-02-22 17:43:12 -05:00
Jeremy Long
8f1e0d57bf ensured engine.cleanup() is now being called
Former-commit-id: 89e6222d55cec95327a5a963fee739076ae7673f
2014-02-22 16:46:59 -05:00
Jeremy Long
1f408dd7a7 ensured engine.cleanup() is now being called
Former-commit-id: 99afdd8d82d6dce65d8dd3ac23893070b318c082
2014-02-22 16:46:59 -05:00
Jeremy Long
c30c455a9f updated log levels when logging exceptions
Former-commit-id: 7686e0bb2ae8d6910d741869ed2aaa04c7a39213
2014-02-22 15:50:20 -05:00
Jeremy Long
303a3ac376 updated log levels when logging exceptions
Former-commit-id: 343daf8cf4176d1bb810d7ecd30d56c8cdc6bf4d
2014-02-22 15:50:20 -05:00
Jeremy Long
cd0e8e1c6b updated so compilation/tests work on linux
Former-commit-id: 695390afcd3382af948152e2ece52c341f904b89
2014-02-22 15:30:50 -05:00
Jeremy Long
221537601f updated so compilation/tests work on linux
Former-commit-id: 3759e9438065138e6339aa3a56c81c08215406e4
2014-02-22 15:30:50 -05:00
Jeremy Long
cbeb91f9a9 made initialize and cleanup synchronized so we can avoid un-needed duplicate initialization/cleanup
Former-commit-id: 49daed67275310f5949d589956c519c6270fd96f
2014-02-22 09:25:52 -05:00
Jeremy Long
f08919a829 made initialize and cleanup synchronized so we can avoid un-needed duplicate initialization/cleanup
Former-commit-id: 061d6a1a5c56806ea7c23d2599a6c6f7df1dae58
2014-02-22 09:25:52 -05:00
Jeremy Long
a3830989ba re-structured the database connection factory
Former-commit-id: 5911d108096031506f15f78f758ee6f7b1b2b65f
2014-02-22 08:43:42 -05:00
Jeremy Long
cfb1f8c767 re-structured the database connection factory
Former-commit-id: 5d84399dcb20a271a8e41414ca0604e8a9908727
2014-02-22 08:43:42 -05:00
Jeremy Long
86427e2042 added the AssemblyAnalylzer to the list of analyzer services
Former-commit-id: a9cdd5751609e05a2feaf2880d9669ca95737ad4
2014-02-19 19:41:24 -05:00
Jeremy Long
39d3e447ab added the AssemblyAnalylzer to the list of analyzer services
Former-commit-id: 1099b9174450efa073d25f86d99e710b831ff954
2014-02-19 19:41:24 -05:00
Jeremy Long
8f079de0aa added temporary hack to allow compilation on linux systems - H2 fails to load with AUTO_SERVER=true
Former-commit-id: 14fe96975ada5c5de340614f9fc489e827dd9844
2014-02-18 19:38:13 -05:00
Jeremy Long
bb76242632 added temporary hack to allow compilation on linux systems - H2 fails to load with AUTO_SERVER=true
Former-commit-id: b41ab9787071e97a5cff8c329716f8ff86b215c8
2014-02-18 19:38:13 -05:00
Jeremy Long
651727c697 fix for issue #72
Former-commit-id: b455cad50aa9db54d14a9c2ccc1588451891fc13
2014-02-18 19:36:20 -05:00
Jeremy Long
6bfb709233 fix for issue #72
Former-commit-id: 866b658eddb30ac1617d2d0d1729333a4864f753
2014-02-18 19:36:20 -05:00
Will Stranathan
5c55f4d4bb Ignore the test if we can't run GrokAssembly.exe
Former-commit-id: fb452ac566ea176186b23f94ab238318585cbd16
2014-02-15 15:58:44 -05:00
Will Stranathan
ab9ec7145d Ignore the test if we can't run GrokAssembly.exe
Former-commit-id: f1241a8b701cb989c55de50fc5728306bea06ccd
2014-02-15 15:58:44 -05:00
Jeremy Long
c8502d3b7b updates to resolve issue #71 - added configuration for cve urls to the ant task
Former-commit-id: b343c1c88845a66c3eb12f92e4ff9e468fd82363
2014-02-15 08:32:20 -05:00
Jeremy Long
6ec931fcd7 updates to resolve issue #71 - added configuration for cve urls to the ant task
Former-commit-id: d30b9b01f9af8392e1e8a2493a7c8951d088241f
2014-02-15 08:32:20 -05:00
Jeremy Long
22e3b9b544 updates to resolve issue #71 - added configuration for cve urls
Former-commit-id: 4074c6f54b8813166cbc24b8f51b2ab00a861f50
2014-02-15 07:50:00 -05:00
Jeremy Long
ae76a7f7d4 updates to resolve issue #71 - added configuration for cve urls
Former-commit-id: 5b1ce45649cdefc92c694cea54cedd18fa30b005
2014-02-15 07:50:00 -05:00
Jeremy Long
f16db8298b removed old cwe data file that is not used
Former-commit-id: 0ba5a30678105479c451ed208b54eb1fe0adfbf9
2014-02-14 22:21:28 -05:00
Jeremy Long
2f20bf1bee removed old cwe data file that is not used
Former-commit-id: 9c5edd6f16d1d2b0a2af4ec23ecf7f1c0729c45a
2014-02-14 22:21:28 -05:00
Jeremy Long
cf4a32b260 updated test case to build serialized hashmap for CWE version 2.5 for issue #68
Former-commit-id: 9f39e0eb71be6814ddf2f172a9f2f820b43dc1ef
2014-02-14 22:15:13 -05:00
Jeremy Long
f9d01d2fad updated test case to build serialized hashmap for CWE version 2.5 for issue #68
Former-commit-id: 9246126c1915e65862fddf2fe57a1cf58a2d8401
2014-02-14 22:15:13 -05:00
Jeremy Long
b8d83c37d9 updated to CWE version 2.5 to close issue #68
Former-commit-id: 6644bd106156498a7ca97a43c6b55b084c924f1b
2014-02-14 22:14:33 -05:00
Jeremy Long
1eb1329f68 updated to CWE version 2.5 to close issue #68
Former-commit-id: dcc564320e283425f70f67830047d73cf8099fe4
2014-02-14 22:14:33 -05:00
Jeremy Long
617f6bb8ef removed unused property
Former-commit-id: bfde978664333a2fd95175244aa477dde79b7874
2014-02-14 22:09:34 -05:00
Jeremy Long
51a3e60913 removed unused property
Former-commit-id: 2a808617fae27e023b322604d3364bde29274a01
2014-02-14 22:09:34 -05:00
Jeremy Long
0c9f2bf5d2 added additional logging to try and solve issue #49
Former-commit-id: d037f74eb5a9ddabfb6ce202d96870f2b7277c21
2014-02-14 08:20:26 -05:00
Jeremy Long
30c88a2fe7 added additional logging to try and solve issue #49
Former-commit-id: 5a4e804aa461b3d2603a70ee4aa79b236306d3cc
2014-02-14 08:20:26 -05:00
Jeremy Long
eb9afecd66 Merge branch 'master' of github.com:hgomez/DependencyCheck into hgomez-master
Former-commit-id: 5adc3fb455a6f15209642354a80812771ca0d441
2014-02-14 08:05:33 -05:00
Jeremy Long
4ffd336c72 Merge branch 'master' of github.com:hgomez/DependencyCheck into hgomez-master
Former-commit-id: 031bd2f2e7c9ff211245654fc594fdb1b8630d9f
2014-02-14 08:05:33 -05:00
Jeremy Long
2c1f2ae589 commented out unused properties
Former-commit-id: fbe2c12b8bcaa191284561906a1685493be6f563
2014-02-14 08:02:50 -05:00
Jeremy Long
7cbc047b41 commented out unused properties
Former-commit-id: 80ef6ece02e7e8ed74a34ecb6a580c339ad69431
2014-02-14 08:02:50 -05:00
Henri Gomez
9387b09a19 tipo
Former-commit-id: 995ba8bbdbab4f05148d9460f406837fd6218024
2014-02-14 12:16:17 +01:00
Henri Gomez
adf4222b24 tipo
Former-commit-id: 61cfcee87376f7fe1a1cb1bebc5a0fed875745b4
2014-02-14 12:16:17 +01:00
Henri Gomez
f17f04f00a Skipped Scope parametized
Former-commit-id: 562654d1679b4a6ad59fd5f93c3f1d2a75d8e32b
2014-02-14 12:14:06 +01:00
Henri Gomez
c095118e98 Skipped Scope parametized
Former-commit-id: 7a0807b77afef6a3db24af30ca98b770b44bea04
2014-02-14 12:14:06 +01:00
Jeremy Long
07f0192088 patch for issue #34 - hibernate3.jar no longer reports cpe:/a:jboss:jboss
Former-commit-id: 31cb24ff0052908bda1878057b5d9669e886e70b
2014-02-13 20:51:54 -05:00
Jeremy Long
11d7d25037 patch for issue #34 - hibernate3.jar no longer reports cpe:/a:jboss:jboss
Former-commit-id: e67337af94b3b83cae112f10beed5020540c6440
2014-02-13 20:51:54 -05:00
Jeremy Long
0fd19f0de8 added hibernate3.jar to test resources to test and fix issue #34
Former-commit-id: c2a930c0e5f0d478698b7f91f5b6e0fa27901be1
2014-02-13 20:31:09 -05:00
Jeremy Long
c45ff40250 added hibernate3.jar to test resources to test and fix issue #34
Former-commit-id: c88585d08a3ff93057a81ea15720d6cd88a0d047
2014-02-13 20:31:09 -05:00
Jeremy Long
e954fa6478 fixes for issue #63 and issue #65
Former-commit-id: 40e4da9fe17999748dd94ee91a1c9451576cab75
2014-02-13 20:20:19 -05:00
Jeremy Long
2f8c2b05bd fixes for issue #63 and issue #65
Former-commit-id: 6b5f22ffe706cf8aafa36fc8a118e7119c7f0cdf
2014-02-13 20:20:19 -05:00
Jeremy Long
a0fdfc0f39 Merge branch 'master' of github.com:hgomez/DependencyCheck into hgomez-master
Former-commit-id: 18b064ea5b733ba4f7d42f59a4c69472be1d3389
2014-02-13 06:08:33 -05:00
Jeremy Long
a4c17bb308 Merge branch 'master' of github.com:hgomez/DependencyCheck into hgomez-master
Former-commit-id: 7ce63ad527be7a6270cf877d87c5ad56fe2abb1b
2014-02-13 06:08:33 -05:00
Jeremy Long
57a4372b65 updated getParentLogger to compile under 1.6 for issue #62
Former-commit-id: 4e38bce6f17a87b663e9bcf98bfe727174b4397a
2014-02-11 09:18:41 -05:00
Jeremy Long
75eff7f083 updated getParentLogger to compile under 1.6 for issue #62
Former-commit-id: 67a48a7f1e48bd922ee772bf7e407c2f8b3ed7e1
2014-02-11 09:18:41 -05:00
Henri Gomez
c11cb38269 Add support for extra extensions provided externally
Former-commit-id: c827feb563cde449090dade2b17bfa6709df37be
2014-02-11 14:05:26 +01:00
Henri Gomez
a5b9a707a4 Add support for extra extensions provided externally
Former-commit-id: 6c8632566de0a46ff4ce24ef5285bbd84c8ef89f
2014-02-11 14:05:26 +01:00
Henri Gomez
e4fd446946 No need to redefined Test Scope String
Former-commit-id: 84b8c35340e92ac42805ccb8411648bec4b1f09c
2014-02-11 12:54:26 +01:00
Henri Gomez
1b013db312 No need to redefined Test Scope String
Former-commit-id: 1da78b9b9994d055b38f1f5aeebb6fb67a1fb756
2014-02-11 12:54:26 +01:00
Henri Gomez
714d8ac3ba Artifact with scope Provided and Runtime should be excluded too
Former-commit-id: 018e2bc3ab950e6543f945377b6f492d504d2e0c
2014-02-11 12:51:59 +01:00
Henri Gomez
158250e98d Artifact with scope Provided and Runtime should be excluded too
Former-commit-id: 53e086b5bf02eee8cb4c4f3703a61923608c13dd
2014-02-11 12:51:59 +01:00
jeremylong
f09293e077 corrected link for issue #59
Former-commit-id: fd8e3c933f4d92118d1b8bb4569f101d7d19c74f
2014-02-10 19:53:17 -05:00
jeremylong
f9f4be181d corrected link for issue #59
Former-commit-id: 8b45674adfa218b82738cf910a7ebe03054c1be6
2014-02-10 19:53:17 -05:00
Jeremy Long
389e8bc325 added dependencies to a testAll profile for issue #34
Former-commit-id: 103f0e62cb0a1c4fb5ad49fed85ceb77b11455c0
2014-02-08 23:54:11 -05:00
Jeremy Long
3bea99c000 added dependencies to a testAll profile for issue #34
Former-commit-id: 9cc56005bcb3e33a364a3929d1f361bd45b03662
2014-02-08 23:54:11 -05:00
Jeremy Long
367f763ce5 updated how the description is processsed from the manifest to fix issue #34 for wss4j-1.5.7.jar
Former-commit-id: 5787236ee3e5af407cf5654aeb2a4fe47ecc02c0
2014-02-08 23:53:47 -05:00
Jeremy Long
05e52ca236 updated how the description is processsed from the manifest to fix issue #34 for wss4j-1.5.7.jar
Former-commit-id: 2a9d9fc46b0437778383cdb4f1c34c04ef746c20
2014-02-08 23:53:47 -05:00
Jeremy Long
3febed82f1 added build-id to specific items in the manifest to patch dependencies like batli-util.jar in issue #34
Former-commit-id: 1dfd295cc9c9fa18ab2d271c2a51f4acd98f6421
2014-02-08 22:37:11 -05:00
Jeremy Long
f268a48a16 added build-id to specific items in the manifest to patch dependencies like batli-util.jar in issue #34
Former-commit-id: 0a6727676c5fa63a32fa7d4be18859ca622bad24
2014-02-08 22:37:11 -05:00
Jeremy Long
8a6371fe68 applied patch for m-core CPE per issue #34 - xstreamcore
Former-commit-id: f99b098bdbc1eb43ea885d479f59e0cf998c3e92
2014-02-08 22:35:24 -05:00
Jeremy Long
96bb9a2f8e applied patch for m-core CPE per issue #34 - xstreamcore
Former-commit-id: 9f683ade5473688c106d7bc82e464635a900277e
2014-02-08 22:35:24 -05:00
Jeremy Long
93937feb13 noop
Former-commit-id: 1905d3ed2c839433282bb5a10f0ecc558e2cca39
2014-02-08 22:05:08 -05:00
Jeremy Long
f9b977d266 noop
Former-commit-id: c522f08c16c28265c96b846f58461aa83fe82ed1
2014-02-08 22:05:08 -05:00
Jeremy Long
21e62d8597 removed analysisExceptions from the dependency object, instead we are logging the exception for issue #46
Former-commit-id: 08ea1be2a9c1b3de7ddb3ffcb7ae988e81a53a17
2014-02-08 12:35:53 -05:00
Jeremy Long
7fca2a9cc6 removed analysisExceptions from the dependency object, instead we are logging the exception for issue #46
Former-commit-id: feee45a009165fce559d3bad2e9c45f95f230200
2014-02-08 12:35:53 -05:00
Jeremy Long
88e8019858 removed analysisExceptions for issue #46
Former-commit-id: 9132fc031523d3b132ce23b3c3fc1ce50cb74f1b
2014-02-08 12:24:25 -05:00
Jeremy Long
e473ef36b1 removed analysisExceptions for issue #46
Former-commit-id: d18690baa5de2ad38a46936e5d3e64681b2ccc29
2014-02-08 12:24:25 -05:00
Jeremy Long
cbe562a204 update to make failure more verbose for issue #57
Former-commit-id: d7ca87612e07098bedaf853e13f4baf8af4e32eb
2014-02-08 12:09:58 -05:00
Jeremy Long
3b5b832bbc update to make failure more verbose for issue #57
Former-commit-id: 7315afe74cc78c65254e5f12032ece0a461be751
2014-02-08 12:09:58 -05:00
Jeremy Long
4dc40389a3 updated cobertura version and configuration
Former-commit-id: 9321952919d27087e50493a3d22b66d9e4e98939
2014-02-08 11:57:52 -05:00
Jeremy Long
4cfb451755 updated cobertura version and configuration
Former-commit-id: edd13a1df620a51e1c72a232310d72b90580e81c
2014-02-08 11:57:52 -05:00
Jeremy Long
0552f10c38 moved exceptions to their own package to avoid clutter in the org.owasp.dependencycheck.analyzer package
Former-commit-id: 999c32643e83ca67bc32651373a1d8eb56f74344
2014-02-02 07:13:53 -05:00
Jeremy Long
368d1ad354 moved exceptions to their own package to avoid clutter in the org.owasp.dependencycheck.analyzer package
Former-commit-id: 26bba207b470459d4ca238145592c2b4e776684a
2014-02-02 07:13:53 -05:00
Will Stranathan
c9ac7401e8 Refactored the test run of GrokAssembly to avoid double-closing
Former-commit-id: 8279c075543071cdebf9c1433b6e0b1b0366ed59
2014-02-01 09:33:47 -05:00
Will Stranathan
9a8f7ccba8 Refactored the test run of GrokAssembly to avoid double-closing
Former-commit-id: edc5ae7da2cb52900f9eed1cd133c843f161a9aa
2014-02-01 09:33:47 -05:00
Jeremy Long
60625b9978 Changed from using the ConditionalIgnoreRule to using junit's core assumeFalse
Former-commit-id: caf69b8721d749595459b18f92a75d3a0964e7fa
2014-02-01 09:11:52 -05:00
Jeremy Long
032c8e9fac Changed from using the ConditionalIgnoreRule to using junit's core assumeFalse
Former-commit-id: fa9e77a19adeda13aa30c48c3ffa903ec50ed762
2014-02-01 09:11:52 -05:00
Jeremy Long
b4b53cfa4c updated test case using an invalid mono path so that it does not run on Windows
Former-commit-id: d6a822f2ce18d9f163839d5d1108cbac06a04516
2014-02-01 08:49:00 -05:00
Jeremy Long
20d1abd2e1 updated test case using an invalid mono path so that it does not run on Windows
Former-commit-id: 4a26ca21e64614bf74cb329d8d9b424442e7647c
2014-02-01 08:49:00 -05:00
Jeremy Long
f1e1d67f4e added conditional ignore for JUnit tests
Former-commit-id: 786a9bf2b0886c05fef79eadb39af312fabff893
2014-02-01 08:48:14 -05:00
Jeremy Long
73903cbd1f added conditional ignore for JUnit tests
Former-commit-id: ed8a216bc31a7ac8f69b08d34a0ffc356f1cd912
2014-02-01 08:48:14 -05:00
Jeremy Long
982641752f explicitly closed the FileOutputStream after writting the assembly
Former-commit-id: 075cb26447cd678c7583e7273cfafc54e568b110
2014-02-01 08:20:24 -05:00
Jeremy Long
bff22a4e4e explicitly closed the FileOutputStream after writting the assembly
Former-commit-id: 70d6fbcd06acad1cb950c7dff8829891cd5c4721
2014-02-01 08:20:24 -05:00
Jeremy Long
ba66cbbc95 Merge branch 'grokassembly-work' of https://github.com/colezlaw/DependencyCheck
Former-commit-id: 92ab9fac4710a9bcd79c7274f4046af3b60eb0e6
2014-02-01 08:10:22 -05:00
Jeremy Long
daaaed4118 Merge branch 'grokassembly-work' of https://github.com/colezlaw/DependencyCheck
Former-commit-id: bfee1c77cc20c2fdd34a20a12696ad8009a86cd0
2014-02-01 08:10:22 -05:00
Will Stranathan
750d13a300 Fixed merge conflicts
Former-commit-id: d02a369299de3102bd900d12f8f1c196760297c2
2014-01-31 21:52:08 -05:00
Will Stranathan
c2c9db66e2 Fixed merge conflicts
Former-commit-id: 64182608dd121fd22aded543552d857009cf7af9
2014-01-31 21:52:08 -05:00
Will Stranathan
3c69a87fc2 Adding the AssemblyAnalyzer to analyze .NET assemblies
Changed the author on a few files

Added GrokAssembly.exe for grokking assemblies

First revision of the assembly analyzer

Added ability to configure where mono is located


Former-commit-id: a5da71bc9103331d67994bab9e102315f26641e4
2014-01-31 21:44:28 -05:00
Will Stranathan
09308083a9 Adding the AssemblyAnalyzer to analyze .NET assemblies
Changed the author on a few files

Added GrokAssembly.exe for grokking assemblies

First revision of the assembly analyzer

Added ability to configure where mono is located


Former-commit-id: c0fa65ecb227f23c8432a5950403483be8b5de25
2014-01-31 21:44:28 -05:00
Jeremy Long
dbaddab07b updated to use markdown syntax rather then HTML (fixing vm/md interaction)
Former-commit-id: bf026d07068e01f05f8385e6b6eae4c90c612500
2014-01-31 06:15:37 -05:00
Jeremy Long
cf492355b4 updated to use markdown syntax rather then HTML (fixing vm/md interaction)
Former-commit-id: bde9d01fb7a656bd115ec23994bc474c82bfcf74
2014-01-31 06:15:37 -05:00
Jeremy Long
1d58811680 updated version to 1.1.2-SNAPSHOT
Former-commit-id: cf04ee675be56ea7990299ca58e4dcaeb0db01e9
2014-01-31 05:38:29 -05:00
Jeremy Long
1cd1b1cb08 updated version to 1.1.2-SNAPSHOT
Former-commit-id: 0ee7b4a66d817b5e78e6838ddd0c66527146a684
2014-01-31 05:38:29 -05:00
Jeremy Long
4d78fe9ca4 version 1.1.1
Former-commit-id: 7e101d5bb64d73a33de423c8ac2b0bd8dc1f1c58
2014-01-30 06:23:34 -05:00
Jeremy Long
91a137ab95 version 1.1.1
Former-commit-id: bde142783532d8d46b468e644f3af8ecc42c40d3
2014-01-30 06:23:34 -05:00
Jeremy Long
56d3082696 test cases for javascript analyzer
Former-commit-id: 35f727643d61b382a32ca7727b1e11b2993a2b43
2014-01-29 20:07:48 -05:00
Jeremy Long
efd4b8ec11 test cases for javascript analyzer
Former-commit-id: 1660584330a7cfc79a1b9aa99a3bc727e7dba231
2014-01-29 20:07:48 -05:00
Jeremy Long
8f573aba2f removed test case for issue #51 - need more information as I cannot get the exception to be thrown
Former-commit-id: 9cc6533837ee499ecedec872d548a6904520ca2a
2014-01-29 06:14:30 -05:00
Jeremy Long
9803c75fbd removed test case for issue #51 - need more information as I cannot get the exception to be thrown
Former-commit-id: 03b40b0b3e83ff008f562894851242f062a49161
2014-01-29 06:14:30 -05:00
Jeremy Long
96633360d0 disabled nexus analyzer for ArchiveAnalyzer tests
Former-commit-id: 24680f001da27228bdce1982e8829e0c396c32a9
2014-01-29 05:58:19 -05:00
Jeremy Long
509bbc7743 disabled nexus analyzer for ArchiveAnalyzer tests
Former-commit-id: 0966a39d20f8aabe1c64d970affe1cf2ce92794e
2014-01-29 05:58:19 -05:00
Jeremy Long
8ae7935cee updated compareTo test to use cpe:/a:yahoo:toolbar:3.1.0.20130813024103 to test the fix for issue #53
Former-commit-id: 6dfb55599122507df4503af7ad8c62d4f8a10cf3
2014-01-29 05:55:28 -05:00
Jeremy Long
f7a2428ba9 updated compareTo test to use cpe:/a:yahoo:toolbar:3.1.0.20130813024103 to test the fix for issue #53
Former-commit-id: 38775e8c129e8ecd7f603ae7d86d0583b4b5fe77
2014-01-29 05:55:28 -05:00
Jeremy Long
68e860baad Converted integer.compareTo to long.compareTo and added a fall back of string compareTo to fix issue #53
Former-commit-id: 7921056eea0467199e7b81dbdabb3fe8cd4fa0aa
2014-01-29 05:45:53 -05:00
Jeremy Long
c79a9f2ce3 Converted integer.compareTo to long.compareTo and added a fall back of string compareTo to fix issue #53
Former-commit-id: 91d7ae202006dbebf21e6cdfadbfa7995ace08ca
2014-01-29 05:45:53 -05:00
Jeremy Long
38ead3133f patched issue #52 - corrected the @parameter for the connectionString field
Former-commit-id: bdd6225f8241211d7a95243b8904e1ed981ab0e8
2014-01-28 19:48:35 -05:00
Jeremy Long
685569e131 patched issue #52 - corrected the @parameter for the connectionString field
Former-commit-id: b725fc34543d4c540f337cfcf34e4a98656be9ad
2014-01-28 19:48:35 -05:00
Will Stranathan
553d1f85c4 First revision of the assembly analyzer
Former-commit-id: f42b163a91f8e0d80bb94b8976d98d5bc4537d4a
2014-01-28 19:23:13 -05:00
Will Stranathan
ca44e3062e First revision of the assembly analyzer
Former-commit-id: ebe1edf714da079f80af33ed257e37b2750304fd
2014-01-28 19:23:13 -05:00
Will Stranathan
d9a985ff38 Added GrokAssembly.exe for grokking assemblies
Former-commit-id: a5731df40aaea0b93234f9654e680c8514d4eff3
2014-01-28 19:21:54 -05:00
Will Stranathan
3d919f1836 Added GrokAssembly.exe for grokking assemblies
Former-commit-id: 3886ba720b7ed3d090f3d58fa372be7d2a7aee52
2014-01-28 19:21:54 -05:00
Will Stranathan
d3a2d2b248 Changed the author on a few files
Former-commit-id: a582d3c248ff2bf886e591dd0900b85d251f0499
2014-01-28 17:10:48 -05:00
Will Stranathan
f4fa2150b5 Changed the author on a few files
Former-commit-id: 67923ceb8b5419eaccfbc33a9b34bf92f0916c00
2014-01-28 17:10:48 -05:00
Jeremy Long
575b8e5f62 test data for JavaScript Analyzer
Former-commit-id: 74e81d8a232c0f08528ccf1d3b7e682ab68351a8
2014-01-28 05:25:54 -05:00
Jeremy Long
0e28c8e0d5 test data for JavaScript Analyzer
Former-commit-id: 16067187a5347cdee260b4137a40480eae5b04d6
2014-01-28 05:25:54 -05:00
Jeremy Long
37ff924c74 added getActualFile() to return a file reference
Former-commit-id: 8345595a53974056e692888cda5fb37adb159fd5
2014-01-28 05:24:54 -05:00
Jeremy Long
cb25fc03f9 added getActualFile() to return a file reference
Former-commit-id: 0c04828262c08a962766240275afb340293bd0dd
2014-01-28 05:24:54 -05:00
Jeremy Long
7ccbc4c77c Merge branch 'nuspec' of https://github.com/colezlaw/DependencyCheck into colezlaw-nuspec
Former-commit-id: 75cf8bb16a7e96614eadbe9215e426d31d624c61
2014-01-27 06:12:15 -05:00
Jeremy Long
7a64b84c5f Merge branch 'nuspec' of https://github.com/colezlaw/DependencyCheck into colezlaw-nuspec
Former-commit-id: e6405eaa708463b1182917ac46cff99a4e369034
2014-01-27 06:12:15 -05:00
Jeremy Long
27b7a60a8d Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: a00b3326187f58300caeb2c4ed3e3f0ff5019bd1
2014-01-27 06:11:14 -05:00
Jeremy Long
1cac8a857d Merge branch 'master' of github.com:jeremylong/DependencyCheck
Former-commit-id: 181804ca53fa09f7eebefe28be71d3163d4cda4c
2014-01-27 06:11:14 -05:00
Jeremy Long
dca731ffb8 updated version to 1.1.1-SNAPSHOT
Former-commit-id: 44a7c9e701bb0b77f44b66bc907e5ef0e2872d34
2014-01-27 06:10:04 -05:00
Jeremy Long
f6e02aec2a updated version to 1.1.1-SNAPSHOT
Former-commit-id: 5945cef222dceb28d8a94939178e33994ef344b4
2014-01-27 06:10:04 -05:00
Will Stranathan
0d56de99a7 Converted to XPath instead of SAX
Former-commit-id: 347fab1b558d21c861bebc90e83f5906b025d6c5
2014-01-26 22:11:11 -05:00
Will Stranathan
78f7152f6c Converted to XPath instead of SAX
Former-commit-id: e6062e1b9497a7134b6923f7f85e1fe3f18cefcc
2014-01-26 22:11:11 -05:00
Steve Springett
ac5e11d327 Update index.md
Former-commit-id: 0e9eae696ece692884605364b54dd274bf336280
2014-01-26 16:04:50 -06:00
Steve Springett
1f4746c90a Update index.md
Former-commit-id: 19311fc6b0ca9e4fc1f287a221fd9d5472f06010
2014-01-26 16:04:50 -06:00
Steve Springett
9d315b0ff9 Update index.md
Former-commit-id: 545194f3b7f5c4eac87ba9efbc572ee227207b3c
2014-01-26 16:04:26 -06:00
Steve Springett
c5f95e79d6 Update index.md
Former-commit-id: 7562696a0d4451fccf833b7a12cb4acd0c0acd9a
2014-01-26 16:04:26 -06:00
Steve Springett
038fe84498 Update README.md
Synched file with version on jenkins-ci

Former-commit-id: 75226b362d729ba057087ab112cf0a5f63f17355
2014-01-26 16:03:11 -06:00
Steve Springett
bd4cbc54fb Update README.md
Synched file with version on jenkins-ci

Former-commit-id: 798c1812cfa62bc7905e70638e3826effbea2069
2014-01-26 16:03:11 -06:00
Jeremy Long
4fd59f2a19 fixed bug in markdown velocity combo - velocity comments are the same as section headers (##) in markdown
Former-commit-id: 7c212d61702ede1aa46ca06a7cf4db1ef7858b73
2014-01-26 11:07:42 -05:00
Jeremy Long
2f83c2ee89 fixed bug in markdown velocity combo - velocity comments are the same as section headers (##) in markdown
Former-commit-id: 9343b0368aa1c1604c5e8d90846545baa95975dd
2014-01-26 11:07:42 -05:00
Jeremy Long
f77c3bfdf7 updated license to apache 2.0
Former-commit-id: 5fb30c8b2ef1ac701a25b125c0af2b3b1c5366a9
2014-01-26 10:49:43 -05:00
Jeremy Long
11edce737b updated license to apache 2.0
Former-commit-id: f9f6a84a1256407f2b4c1723a15c40f0362dae99
2014-01-26 10:49:43 -05:00
Jeremy Long
dc7d941316 version 1.1.0
Former-commit-id: eb10444fba445f89d8d788ecea4afd45e5ae48c5
2014-01-26 10:39:18 -05:00
Jeremy Long
9e22068a78 version 1.1.0
Former-commit-id: 458dbfc20a4477faa3f2a352cdc32ff2404a342d
2014-01-26 10:39:18 -05:00
Jeremy Long
433cc1e32c updated error messages
Former-commit-id: 2b1c5e7560f30d1aaf2215bdc8997961a637d083
2014-01-26 09:02:08 -05:00
Jeremy Long
c9461a8e63 updated error messages
Former-commit-id: cc268fa838d99aa0e4de3cccd6fd3203d572c449
2014-01-26 09:02:08 -05:00
Jeremy Long
c066a03683 upated site documentation with new configuration options
Former-commit-id: 45cf2c9c581c0eef2ef0fd6ba4d70b7b01191019
2014-01-26 07:04:53 -05:00
Jeremy Long
70bbb54563 upated site documentation with new configuration options
Former-commit-id: 792785d77bbf2a805cfbf56f34e612f66684b981
2014-01-26 07:04:53 -05:00
Jeremy Long
562a8036bc updated site documentation with new command line arguments
Former-commit-id: 8a71639e0513a46249bdfa63fe6f7c991dd09c12
2014-01-26 07:04:25 -05:00
Jeremy Long
de2a47c741 updated site documentation with new command line arguments
Former-commit-id: f6c0f55e926b617b3d74d851928127fcbf6ab01e
2014-01-26 07:04:25 -05:00
Jeremy Long
53ac703f09 updated site documentation with new configuration options
Former-commit-id: 9d5b228f694707daf07a3b5da95f92d7d4044f23
2014-01-26 07:04:01 -05:00
Jeremy Long
8038f18209 updated site documentation with new configuration options
Former-commit-id: 2f3ed529800fbf4dd10e21ab713175d426769891
2014-01-26 07:04:01 -05:00
Jeremy Long
a2891d97d0 reduced number of years of NVD CVE data are downloaded during integration tests
Former-commit-id: c6a0dc095982d432b10e6bdb053b7845e433bd14
2014-01-26 07:03:17 -05:00
Jeremy Long
98b0500c98 reduced number of years of NVD CVE data are downloaded during integration tests
Former-commit-id: 714594eb3c9c26c2ec8967b22ddfa1fafa876ed9
2014-01-26 07:03:17 -05:00
Jeremy Long
2bd5169f20 corrected test case
Former-commit-id: 9b678d7c08b3b579bc4b906a42cbf5a2a91bc56b
2014-01-26 07:01:23 -05:00
Jeremy Long
3743988fd8 corrected test case
Former-commit-id: 2604392e83f5b1bf398d4e2d08e7592aa4d7bb36
2014-01-26 07:01:23 -05:00
Jeremy Long
b3fd6d8c92 fixed checkstyle complaints
Former-commit-id: f70d63d6d79672ff7dbab2a632a4416b8ebf9932
2014-01-25 16:03:15 -05:00
Jeremy Long
fb13e5ec8f fixed checkstyle complaints
Former-commit-id: 8cfbf34210a3b861801fd29ef355efb37c566370
2014-01-25 16:03:15 -05:00
Jeremy Long
cea281b1d3 removed unused local variable
Former-commit-id: e8f50ee25c4c3eb847bf8cf3193658e910f7642e
2014-01-25 16:00:28 -05:00
Jeremy Long
aed044dcc6 removed unused local variable
Former-commit-id: 8fceb153a589891e4071a53ba5a9bd92a8d64be2
2014-01-25 16:00:28 -05:00
Will Stranathan
e85b2a8961 Updated javadocs
Former-commit-id: 95ccb83a8808430031e13045026447a7ec88634f
2014-01-25 11:27:28 -05:00
Will Stranathan
17e3e51607 Updated javadocs
Former-commit-id: 9c054f0396b8b1431cc87759b0e43e13d1b14086
2014-01-25 11:27:28 -05:00
Jeremy Long
77b879d6bb changed nested ifs to avoid checkstyle complaint
Former-commit-id: ed48131125733c56cf48a817425abdb2ca117ef6
2014-01-25 11:06:45 -05:00
Jeremy Long
6badd51b69 changed nested ifs to avoid checkstyle complaint
Former-commit-id: 9dbe97cb0d0899dd2920dacdfda82778455a0d89
2014-01-25 11:06:45 -05:00
Jeremy Long
9de3ae5cf2 made variable final - checkstyle
Former-commit-id: 1834255b8a05b21e2b55777f183be09d47a50b0f
2014-01-25 11:06:09 -05:00
Jeremy Long
82e4677b0d made variable final - checkstyle
Former-commit-id: 9ce0624d3df3d1924a5a673f7f4715a960b1fabf
2014-01-25 11:06:09 -05:00
Jeremy Long
b3a0dc3506 commented out dead/useless code
Former-commit-id: 65569e27e22cab96c8f223a732aca2a4d841e71e
2014-01-25 11:05:46 -05:00
Jeremy Long
95c824f401 commented out dead/useless code
Former-commit-id: a3c88ebfa5de6c197e005857867a9d684d65d949
2014-01-25 11:05:46 -05:00
Jeremy Long
383731da4d made variable final - checkstyle
Former-commit-id: c2a162bfe81e865645bb61f591850b4b6074ed1c
2014-01-25 11:05:17 -05:00
Jeremy Long
f6650a95cf made variable final - checkstyle
Former-commit-id: 70261fef09fa5922284ebd8180293f8f374432c3
2014-01-25 11:05:17 -05:00
Jeremy Long
67abb42652 made variable final - checkstyle
Former-commit-id: 5a892d6090e5d577ee836580f0c84c69de25c3cb
2014-01-25 11:04:49 -05:00
Jeremy Long
9256341c70 made variable final - checkstyle
Former-commit-id: 00065565e86823a976bdfd37d10891abe11140a2
2014-01-25 11:04:49 -05:00
Jeremy Long
edcc24bc12 checkstyle correction (line length)
Former-commit-id: a714f369e530b0511fe56f8d145ee664529632b9
2014-01-25 11:04:20 -05:00
Jeremy Long
696c7d0e21 checkstyle correction (line length)
Former-commit-id: 9dd3434ff9ed9e45d547a9179bb7880fdb29b055
2014-01-25 11:04:20 -05:00
Jeremy Long
a6836cab15 updated javadoc - checkstyle
Former-commit-id: a22973e158a4dfcc99e97d020e003811a4192bd1
2014-01-25 11:03:28 -05:00
Jeremy Long
be3fa7b940 updated javadoc - checkstyle
Former-commit-id: dade094f81ab4fa6889608cd1eef6903c0608bfc
2014-01-25 11:03:28 -05:00
Jeremy Long
8f985737b0 fixed casing on variable - checkstyle
Former-commit-id: 5ca2786ba5a1c42e670f0d352a92f7789b1ddc60
2014-01-25 11:03:09 -05:00
Jeremy Long
9f1aac5138 fixed casing on variable - checkstyle
Former-commit-id: 35b32c4948f98188bdc0795f45978808342e91c7
2014-01-25 11:03:09 -05:00
Jeremy Long
6e2f102177 updated header to check for maven instead of core
Former-commit-id: ea773975d79bf4669a359cbd7d9f2d4bb86dc690
2014-01-25 11:02:27 -05:00
Jeremy Long
310a6003fd updated header to check for maven instead of core
Former-commit-id: d339263a9c285307cbc6238d47b3dbbf29199301
2014-01-25 11:02:27 -05:00
Jeremy Long
46a768339a updated header to check for cli instead of core
Former-commit-id: b35670d2c988440aa9c89075a59d04be16e6b083
2014-01-25 11:02:10 -05:00
Jeremy Long
0e58388d77 updated header to check for cli instead of core
Former-commit-id: ee914e7c79eecf842aa4ec5633edf6d40eb03801
2014-01-25 11:02:10 -05:00
Jeremy Long
f1dbbd62e9 updated header to check for ant intead of core
Former-commit-id: cb6514a027e839a4f42cecb6e3f0c1b5cdbd0403
2014-01-25 11:01:55 -05:00
Jeremy Long
c90e1d5c11 updated header to check for ant intead of core
Former-commit-id: 78d2442fde3e4f666e58810fc65e10087d2f0df7
2014-01-25 11:01:55 -05:00
Jeremy Long
8bb94889e0 updated test to use updated constructor
Former-commit-id: 8437442dec0c400bc5adeb391dd8a7b58f0b981b
2014-01-25 07:05:00 -05:00
Jeremy Long
819d6719c3 updated test to use updated constructor
Former-commit-id: 5e043eeddb41eff876df7172a2af76c80333950a
2014-01-25 07:05:00 -05:00
Jeremy Long
da38e4e00c minor changes to comply with checkstyle
Former-commit-id: d4c2b3c4903fafae577a018191d061fe8c079894
2014-01-25 07:02:29 -05:00
Jeremy Long
2b16072d6e minor changes to comply with checkstyle
Former-commit-id: af97a1e75f24b7ba5f4596f1db409a8a24decd66
2014-01-25 07:02:29 -05:00
Jeremy Long
d8e8156b1c minor changes to comply with checkstyle
Former-commit-id: a6bbfb32f741ec60a9c45c89c8a70f4260622484
2014-01-25 07:02:19 -05:00
Jeremy Long
8af35d4c2b minor changes to comply with checkstyle
Former-commit-id: 329cea1defa2e9ecd3e1361f6856cfb38e900423
2014-01-25 07:02:19 -05:00
Jeremy Long
77a1b18673 minor changes to comply with checkstyle
Former-commit-id: fd4cf6e784b842c6f07e9d971b9ce3b4c7b5732b
2014-01-25 07:02:08 -05:00
Jeremy Long
a4c37b3b9f minor changes to comply with checkstyle
Former-commit-id: 29d398a6b5f3a1bb543971edf98557179b601486
2014-01-25 07:02:08 -05:00
Jeremy Long
9abd51f318 removed deprecated constructor
Former-commit-id: 1df959763cbe32fe7a820c59ed3280770ab98be0
2014-01-25 07:01:46 -05:00
Jeremy Long
8a8241dd1f removed deprecated constructor
Former-commit-id: e368144a6f24187c9da05aa55e5a14a2a54621f2
2014-01-25 07:01:46 -05:00
Jeremy Long
c7d51a29ac minor variable name change to comply with checkstyle
Former-commit-id: 4ad1e6d6ce2d9bc52ff4af7a281139ccb5068e2c
2014-01-25 06:57:18 -05:00
Jeremy Long
b2222d368a minor variable name change to comply with checkstyle
Former-commit-id: bd2ec0531582daa1b2503089615c9ff3d5ba2b06
2014-01-25 06:57:18 -05:00
Jeremy Long
ac453ef32a minor checkstyle corrections
Former-commit-id: 642c6226ad3c4e88816357023a771fbec02fc2b3
2014-01-25 06:54:32 -05:00
Jeremy Long
04077ec6eb minor checkstyle corrections
Former-commit-id: 3dbac08863eb5ab90d31b72cdf86cdceb2ef1c0e
2014-01-25 06:54:32 -05:00
Jeremy Long
db25493c04 javadoc corrections
Former-commit-id: 7dead0cee614e4f1e8f8b04fd8852d06710c0615
2014-01-25 06:46:40 -05:00
Jeremy Long
96582ff622 javadoc corrections
Former-commit-id: 66eafb0407a27982c30d2a1933860216722ad06a
2014-01-25 06:46:40 -05:00
Jeremy Long
8d4b4d3cd9 removed test code
Former-commit-id: 50f96d8656dce9caf40a2f139046de96700aa8b5
2014-01-25 06:43:21 -05:00
Jeremy Long
d4d193fe9d removed test code
Former-commit-id: c277b6cd78cca30b349a102dca26730db90684f4
2014-01-25 06:43:21 -05:00
Jeremy Long
b05f13d82b added javadoc comments and corrected a typo in pom.xml file names
Former-commit-id: a066b9343c8895ad2ee7b7b419fdb0d6dd0d8cfe
2014-01-25 06:42:45 -05:00
Jeremy Long
3516d804a4 added javadoc comments and corrected a typo in pom.xml file names
Former-commit-id: 3cbb40c4a741584243535fcfc7c407ca32cb89df
2014-01-25 06:42:45 -05:00
Jeremy Long
438622d450 checkstyle correction and removed the deprecated constructor
Former-commit-id: 02e0f7555ce43b2b5b161ba0536182f72a9561b2
2014-01-25 06:42:03 -05:00
Jeremy Long
5b1fe811c3 checkstyle correction and removed the deprecated constructor
Former-commit-id: e4a8428bce9a76afdbebc06276568761cbb9ffe9
2014-01-25 06:42:03 -05:00
Jeremy Long
4f79efedc9 moved the "data" option to the advanced options
Former-commit-id: 968ebcef8a9b57fc94e0c9ddaf212c24aa474441
2014-01-25 06:14:21 -05:00
Jeremy Long
cde8f50659 moved the "data" option to the advanced options
Former-commit-id: e18dce070ca110e7c75c868181a576151f08a418
2014-01-25 06:14:21 -05:00
Jeremy Long
845fa89d0f updated CLI arguments for issue #48 and issue #33
Former-commit-id: 58e6b9042814d9c76c51b7f0b88b6ec7ef50b938
2014-01-25 06:09:59 -05:00
Jeremy Long
8fb97ed04e updated CLI arguments for issue #48 and issue #33
Former-commit-id: 58d14a7c52a2dbdd7a785845e705d0ef0db067f4
2014-01-25 06:09:59 -05:00
Jeremy Long
29768576c8 updated CLI to have advanced options, including setting an external DB Connection String for issue #33, in support of issue #48
Former-commit-id: 09e0ee85e07aa4fc2ecf1c04cb46621b173d09b3
2014-01-25 06:09:24 -05:00
Jeremy Long
7e438df89f updated CLI to have advanced options, including setting an external DB Connection String for issue #33, in support of issue #48
Former-commit-id: 086975143f6b6ef21b3cc92dc36b94f074ed59a4
2014-01-25 06:09:24 -05:00
Jeremy Long
4e659d799d updated configuration for issue #48
Former-commit-id: 216f09b8e720d692bb5f6b64989d911e51ebc8f9
2014-01-24 19:04:20 -05:00
Jeremy Long
f39548d6a0 updated configuration for issue #48
Former-commit-id: 929f2bdb9a9beb675b8ee0ad053e2a3d5b97005c
2014-01-24 19:04:20 -05:00
Jeremy Long
10596bcb54 updated configuration for issue #48
Former-commit-id: 3c1b2802c76761dc206d889edb122cc61eb01a18
2014-01-24 19:04:03 -05:00
Jeremy Long
67a18188c7 updated configuration for issue #48
Former-commit-id: 30669fd6f7247f2a63ceacfb49c46e848e6dc923
2014-01-24 19:04:03 -05:00
Jeremy Long
5ac6f4f7b3 added nexus configuration options
Former-commit-id: a886b4099635bc272b6a51dff687b584870bcc45
2014-01-24 18:51:20 -05:00
Jeremy Long
bc1f4e3cf2 added nexus configuration options
Former-commit-id: 89fa384e04ac6b49bb7571efa4b873f53fe84ecc
2014-01-24 18:51:20 -05:00
Jeremy Long
957bb46e5c added nexus configuration options
Former-commit-id: 1d96659cf64c10cf92c9db1b5be4a50685e79eae
2014-01-24 18:51:07 -05:00
Jeremy Long
04c217f72e added nexus configuration options
Former-commit-id: 101000a61f23b67ef8c311bff2c543cfa34fb584
2014-01-24 18:51:07 -05:00
Jeremy Long
1042a537c1 added nexus configuration options
Former-commit-id: a1c80659cd5c8879665504a016d772b95f117c4e
2014-01-24 18:50:54 -05:00
Jeremy Long
f537cc1b6a added nexus configuration options
Former-commit-id: c5a7b5feac95909ee6b4359ebfd6badc261c68ae
2014-01-24 18:50:54 -05:00
Jeremy Long
2159b4b691 added nexus configuration options
Former-commit-id: b99c1ee21ecd564e5da591a53651768d8206a507
2014-01-24 18:50:32 -05:00
Jeremy Long
3a698abf45 added nexus configuration options
Former-commit-id: effe33b77171c4ecc312ca08ef25dd5ae667f81a
2014-01-24 18:50:32 -05:00
Jeremy Long
ce48e07e18 Merge branch 'master' of https://github.com/colezlaw/DependencyCheck into colezlaw-master
Former-commit-id: 9b311277bde8fc8e0d9c8ff10c8b2f2a6abf5c84
2014-01-24 17:35:54 -05:00
Jeremy Long
0d6a72d364 Merge branch 'master' of https://github.com/colezlaw/DependencyCheck into colezlaw-master
Former-commit-id: 5c3cc39a8cea339d2c217cc9c10cb55e60dd735b
2014-01-24 17:35:54 -05:00
Will Stranathan
48dded02c6 Added the NuspecAnalyzer to the list of analyzers
Former-commit-id: 615a6216cb3b484cac1dca4cc6b06f80389c2e7a
2014-01-24 07:11:18 -05:00
Will Stranathan
b9f5799c1b Added the NuspecAnalyzer to the list of analyzers
Former-commit-id: 7472ceb2fefef23c0b6aad112f4e4e7e04ce93e5
2014-01-24 07:11:18 -05:00
Will Stranathan
b7d77042bf Initial checkin of an analyzer which gets info from .nuspec files
Former-commit-id: efc3b60b2ebf372c6bf1697b87cbfd0b9422b07f
2014-01-24 07:10:53 -05:00
Will Stranathan
8b6e9b7f76 Initial checkin of an analyzer which gets info from .nuspec files
Former-commit-id: 7d14609e887829f67a23dd51412761b1691bc135
2014-01-24 07:10:53 -05:00
Will Stranathan
b4ea2569e3 Added nupkg to the list of supported ZIP-like extensions
Former-commit-id: 3f58b7c314f7e5a837da878602c44b19721995a1
2014-01-24 07:09:45 -05:00
Will Stranathan
4a02c87c27 Added nupkg to the list of supported ZIP-like extensions
Former-commit-id: a70f09ba9cadec56034a178d76692276f7946255
2014-01-24 07:09:45 -05:00
Jeremy Long
42a9f864eb bug fixes for issue #49
Former-commit-id: a5c7236f6d1663dc3004161d6e9e1d68a7bc6f06
2014-01-23 21:25:59 -05:00
Jeremy Long
b1a5af187c bug fixes for issue #49
Former-commit-id: 967dc082c8a38a786d97c584d1d76c83c66f58b2
2014-01-23 21:25:59 -05:00
Jeremy Long
22e6de19c4 added additional verbose logging
Former-commit-id: 6b0323e92e2bed5d584ce49afb90c1c5ea684ded
2014-01-23 21:02:49 -05:00
Jeremy Long
5c781987a3 added additional verbose logging
Former-commit-id: bf5bbd5211216d16e06fb1ab6b03d44258312b2c
2014-01-23 21:02:49 -05:00
Jeremy Long
572a65d661 added the DRIVER_NAME to default to org.h2.Driver
Former-commit-id: 2d9462d8e1b6b01dc53044962463d103234e1d38
2014-01-23 21:02:10 -05:00
Jeremy Long
45e2215575 added the DRIVER_NAME to default to org.h2.Driver
Former-commit-id: dcb8a65b35f0451a4f192b781d3c57046c20e06f
2014-01-23 21:02:10 -05:00
Will Stranathan
108ecb7e12 Merge remote-tracking branch 'upstream/master'
Former-commit-id: 707e6e699e0a0a51bd4d808a0fab777684e70d32
2014-01-23 20:42:42 -05:00
Will Stranathan
be6d590254 Merge remote-tracking branch 'upstream/master'
Former-commit-id: d923e7e0284f1b0c2491ff5d103e49cb1b6e3dbe
2014-01-23 20:42:42 -05:00
Steve Springett
9c87d61528 Junit fix for non-Windows platforms
Former-commit-id: 77a32fe556cffd6625636f2c4033c82c3450595e
2014-01-22 16:43:08 -06:00
Steve Springett
248f4ca856 Junit fix for non-Windows platforms
Former-commit-id: 03b59f68cc08974d7aa88c35dafbf212112c4af8
2014-01-22 16:43:08 -06:00
Will Stranathan
dd903dd7e5 Change confidence on filename version when it's just a simple integer
Former-commit-id: b22d85dfcec9beb854b9bbf5160d89f1c2f66512
2014-01-22 12:08:06 -05:00
Will Stranathan
67284737f1 Change confidence on filename version when it's just a simple integer
Former-commit-id: f25708cec25a8225b62ae2da679d8a586c0549a4
2014-01-22 12:08:06 -05:00
jeremylong
ae13cb2513 updated the description
Former-commit-id: e03aceb652df78cda5ef03e2790306627eba35d4
2014-01-22 09:54:57 -05:00
jeremylong
9e2e2e9375 updated the description
Former-commit-id: a5a0e1ad8e02bd6ccf227b9cb62261a78d3286a1
2014-01-22 09:54:57 -05:00
Jeremy Long
40f47ccd4e updated to remove exception details per issue #46
Former-commit-id: 2482c797c7cc0100271488a42c17833c4f0e2f95
2014-01-22 07:43:08 -05:00
Jeremy Long
7fb7d4209f updated to remove exception details per issue #46
Former-commit-id: 373f5464b15e63fd57861b32b14c9b47723eca87
2014-01-22 07:43:08 -05:00
Jeremy Long
c344cd2a2b Updated logging
Former-commit-id: fd93345867b29dde392dbb888b2a2d4e072e91ff
2014-01-21 06:58:05 -05:00
Jeremy Long
1a1ea33142 Updated logging
Former-commit-id: e4f2ffcfd4b58865a1c9da129f90eeb7a3215db5
2014-01-21 06:58:05 -05:00
Jeremy Long
7601af24f0 updated to fix issue #44
Former-commit-id: 9245e70ef4ecf4e78362a0824a1557685c6cddb7
2014-01-20 19:44:08 -05:00
Jeremy Long
f996a25f6b updated to fix issue #44
Former-commit-id: 9eb763eeb5c1d42a850ea90313c69ed46e0028d2
2014-01-20 19:44:08 -05:00
Jeremy Long
0197eb0d08 noop
Former-commit-id: 335aebcb825923cc50de38d6bb38ee699dcb47b7
2014-01-20 17:39:04 -05:00
Jeremy Long
035c876fe3 noop
Former-commit-id: 74831d3c34ac203f4a310633ce1983f8083816ec
2014-01-20 17:39:04 -05:00
Jeremy Long
a248967ae8 added support for uber jars; pom.xml files are extracted and added as their own dependencies
Former-commit-id: 6acf8955c413f0b4d2d2c54886309dda3fc3d429
2014-01-20 17:38:47 -05:00
Jeremy Long
78ba72aa65 added support for uber jars; pom.xml files are extracted and added as their own dependencies
Former-commit-id: b3e37974fd3ba84e2179b3dd28fe8a2f03768891
2014-01-20 17:38:47 -05:00
Jeremy Long
a4beb58b54 included pom.xml files in suppression analysis as the Jar analyzer may add these as part of fix for issue #11
Former-commit-id: 5bb2205d7f2dd1e7b6decf3a29110b6135bbb367
2014-01-20 17:37:43 -05:00
Jeremy Long
9c50b23906 included pom.xml files in suppression analysis as the Jar analyzer may add these as part of fix for issue #11
Former-commit-id: 5581ac925f546990f5ab345aa7e4b2aa646f2da9
2014-01-20 17:37:43 -05:00
Jeremy Long
922cc942a4 added test cases for the false positive analyzer
Former-commit-id: dcd6d0ab1bfc6a8eed26d87c1636304ffbeba996
2014-01-20 17:36:48 -05:00
Jeremy Long
16b2b52252 added test cases for the false positive analyzer
Former-commit-id: 4eeea317c6fa75ad7bcf750bf915f947c6941f46
2014-01-20 17:36:48 -05:00
Jeremy Long
f11b086381 added uber jar for testing issue #11
Former-commit-id: 105d3e369ab781c0181ba1a0770c48003d354146
2014-01-20 13:21:45 -05:00
Jeremy Long
4b9d3b5090 added uber jar for testing issue #11
Former-commit-id: 3b41d8ff259d23c89620458eebb4d1cd142c5fa8
2014-01-20 13:21:45 -05:00
Jeremy Long
e5eab69f65 updated db schema version to 2.9
Former-commit-id: 88a4e319a10e69987f71ff0900918b51dd9a76e8
2014-01-20 13:17:47 -05:00
Jeremy Long
e9ea13cdff updated db schema version to 2.9
Former-commit-id: 90194fc040d66c9c52449db849113a65aa8e9b68
2014-01-20 13:17:47 -05:00
Jeremy Long
961884ef12 updated db schema version to 2.9
Former-commit-id: 5f25b92cc794e6b51a5887b17dad7a9cb4b4cc03
2014-01-20 13:17:40 -05:00
Jeremy Long
4780f23e1f updated db schema version to 2.9
Former-commit-id: 2e799ce28b1401c12d08f084a326b8a63e090910
2014-01-20 13:17:40 -05:00
Jeremy Long
5dbbf643a4 ensured subdirectories are built while extracting tar files - issue #43
Former-commit-id: 0335a6232c15c044a627ac0d23c37ad6fd8a9d07
2014-01-20 12:48:47 -05:00
Jeremy Long
be5a6f7e7d ensured subdirectories are built while extracting tar files - issue #43
Former-commit-id: af8b794ed9be453e2aad6807e238826468cc5d3e
2014-01-20 12:48:47 -05:00
Jeremy Long
f937458c25 updated test case for tar file from issue #43
Former-commit-id: 9f8d207ab9c6f9f5dfc9c458d9c75351cc2c8c10
2014-01-20 12:47:54 -05:00
Jeremy Long
1c3b5e75d2 updated test case for tar file from issue #43
Former-commit-id: 15ec4c72eac6e9fd8569a19b7cdae283307081b0
2014-01-20 12:47:54 -05:00
Jeremy Long
c617e62a16 added new test tar file for issue #43
Former-commit-id: f6e14b3f7d69e793cdb8316d62366f33ea82e097
2014-01-20 12:47:28 -05:00
Jeremy Long
ae80cc8984 added new test tar file for issue #43
Former-commit-id: 3fc1735a41cc4c974b50bed4287103366b3964ad
2014-01-20 12:47:28 -05:00
Jeremy Long
343c886d54 minor formating changes and implemented fix for issue #20
Former-commit-id: 850375750c1c75d218a715eb64bdb1f51e15a12b
2014-01-20 08:21:59 -05:00
Jeremy Long
14992c8e23 minor formating changes and implemented fix for issue #20
Former-commit-id: 997b5c7b4024cc58cca28a4418d03c504832f6be
2014-01-20 08:21:59 -05:00
Jeremy Long
824d85b2a0 added a new field to keep track of the vulnerable software that caused the match - part of the patch for issue 20
Former-commit-id: a5fa6313b9ecfb2d67ba4da25a2f5e863b184b51
2014-01-20 08:21:12 -05:00
Jeremy Long
c24ffd3914 added a new field to keep track of the vulnerable software that caused the match - part of the patch for issue 20
Former-commit-id: 39316a8356df63be950abe2a8c1fc14aca364d1e
2014-01-20 08:21:12 -05:00
Jeremy Long
0289fc5ce2 improved performance and made a change to support fixing issue #20
Former-commit-id: 4f7f9692a2bec9c2b6cc31aab7c9e175a8649b7f
2014-01-20 08:20:21 -05:00
Jeremy Long
bc9fa35fa2 improved performance and made a change to support fixing issue #20
Former-commit-id: 8c8ba03b948d9f61ee43bca267a0ea7e497dae2a
2014-01-20 08:20:21 -05:00
Jeremy Long
914a886bfe added javancss-maven-plugin
Former-commit-id: 6ed186ccdb29da4ed77c19823c4a066dcbaf3a87
2014-01-19 15:09:27 -05:00
Jeremy Long
dbebab3f91 added javancss-maven-plugin
Former-commit-id: 52ed19e5f729353f49a97fb737baa42f2616385b
2014-01-19 15:09:27 -05:00
Jeremy Long
f65c30e975 minor update
Former-commit-id: ba9c6b41a789c53f5b5eb049c6f1fd2528045dea
2014-01-19 10:26:03 -05:00
Jeremy Long
be1f047ca3 minor update
Former-commit-id: 5b2893cceadeef9b1ccde67bce61efb656d82230
2014-01-19 10:26:03 -05:00
Jeremy Long
48ac0049aa added maven identifier to related dependencies
Former-commit-id: 232ebb6afe8e9c5c07482c642e1ab9dee9b26e81
2014-01-19 09:40:16 -05:00
Jeremy Long
df07a5ebb6 added maven identifier to related dependencies
Former-commit-id: f5d8b523110431e54384e71010968ed059be5478
2014-01-19 09:40:16 -05:00
Jeremy Long
fea1117eae enabled nexus analyzer in dev
Former-commit-id: 99b5a5ce20c1c26bb0eba41c68d296a8cb37a0b1
2014-01-19 09:39:49 -05:00
Jeremy Long
96f7ca7598 enabled nexus analyzer in dev
Former-commit-id: f67559ac62ee699082449f2c8a0ef91251f8dc7d
2014-01-19 09:39:49 -05:00
Jeremy Long
ace1a060db updated ignores during Jekyll site testing
Former-commit-id: ae244ade9664cb739e38a562628d8bb5d8603d1e
2014-01-18 16:57:05 -05:00
Jeremy Long
4674a0dcca updated ignores during Jekyll site testing
Former-commit-id: cd1cc96bc590b3a409abbd2097f55b166133b0a3
2014-01-18 16:57:05 -05:00
Jeremy Long
be6ad9c5e3 add sample report and project presentation to the site
Former-commit-id: 630dd66ea56b103694e287e04827ef7a404f85a2
2014-01-18 16:14:53 -05:00
Jeremy Long
4fb61d4048 add sample report and project presentation to the site
Former-commit-id: 5d6fd75e095af14c9656a7d2a1dd234cb18d555b
2014-01-18 16:14:53 -05:00
Jeremy Long
b2d51a2a9b Added Project Presentation to site (pdf)
Former-commit-id: d97c02a3f1f51054fce71aa42b357fdbc4c1b727
2014-01-18 16:14:24 -05:00
Jeremy Long
7e36ad9701 Added Project Presentation to site (pdf)
Former-commit-id: 48385f0bbbbf326725480d9122bf7e68abe4b2eb
2014-01-18 16:14:24 -05:00
Jeremy Long
74411d8656 Added Project Presentation to site (pptx)
Former-commit-id: 0b155a1a69525031118a0316cd53707e0bc9b8bc
2014-01-18 16:14:13 -05:00
Jeremy Long
3b81dd4082 Added Project Presentation to site (pptx)
Former-commit-id: 3b1ffaab6b0d02a67191d5015d78f7dd5afcf95d
2014-01-18 16:14:13 -05:00
Jeremy Long
332392b7ba Added sample report to site
Former-commit-id: 83a931b4cbdb541d1aa76ced0d0a0d620fa16be6
2014-01-18 16:13:39 -05:00
Jeremy Long
04f6e9ffc2 Added sample report to site
Former-commit-id: 47b790dce65fbc09e6b5af1a27dae60f4ae0c2b7
2014-01-18 16:13:39 -05:00
Jeremy Long
e441414854 Updated so that only CPE Identifiers are used when "bundeling" dependencies
Former-commit-id: 165356d02b944a5e636cf07dbf05534eda9e2b6d
2014-01-18 09:06:20 -05:00
Jeremy Long
7b7b9385e8 Updated so that only CPE Identifiers are used when "bundeling" dependencies
Former-commit-id: ab50c8f320cd31090b00906615190f9a7f92f67f
2014-01-18 09:06:20 -05:00
Jeremy Long
4b1d79e7f7 updated verbose logging
Former-commit-id: 218f2e64933482f04bd9ab00d5d6095060671a38
2014-01-18 08:09:27 -05:00
Jeremy Long
646ce9492f updated verbose logging
Former-commit-id: 3d0d0a7f81459457f3c8fc62767d4568962746fd
2014-01-18 08:09:27 -05:00
Jeremy Long
d7889e27e5 reorganized things, overall improvements to the report
Former-commit-id: 23f136574eb7c8c2abec432450f310bfb2bdf1b1
2014-01-17 22:51:13 -05:00
Jeremy Long
4411c7643d reorganized things, overall improvements to the report
Former-commit-id: 5ab70885e895e7f2498ed064433896998c21f997
2014-01-17 22:51:13 -05:00
Jeremy Long
e65a68ce78 corrected position of the suppression modal dialog box to prevent scrolling
Former-commit-id: e7b5194a406d15b3871ad480da7a1b9d894e3868
2014-01-17 21:36:25 -05:00
Jeremy Long
b10af5fb3b corrected position of the suppression modal dialog box to prevent scrolling
Former-commit-id: 4f35f30171332f3d111231c24aa087b9ccb51eb5
2014-01-17 21:36:25 -05:00
Jeremy Long
990f6d3730 removed unused concurrency package
Former-commit-id: c2162dd0f9144400b464535ac4104c98cf6f1da6
2014-01-17 21:23:38 -05:00
Jeremy Long
09f6f4bc66 removed unused concurrency package
Former-commit-id: d6b02f36cef6b20ec55ec57370e3b9bb6bba1372
2014-01-17 21:23:38 -05:00
Jeremy Long
84a62b3707 added additional info logging
Former-commit-id: bd2d360dd28f900430666b99d01ee9d0deb8b7c7
2014-01-17 21:23:11 -05:00
Jeremy Long
60b946eb28 added additional info logging
Former-commit-id: 0e91561a3d441a15cb5e6f85fa50ba58836cc0e5
2014-01-17 21:23:11 -05:00
Jeremy Long
e18789b8d3 added identifier confidence for issue #35
Former-commit-id: 9ce9761fa4cd842e6141973bf33e229bea208982
2014-01-17 21:05:08 -05:00
Jeremy Long
c65dd1e854 added identifier confidence for issue #35
Former-commit-id: 6eb33e07914980ae394fc07b75e2f31fc731d493
2014-01-17 21:05:08 -05:00
Jeremy Long
cb7be0e460 made identifier type required and identifier confidence optional
Former-commit-id: 16255779baed3d2e9ba2bb6013b355f7d42a7bd3
2014-01-17 20:40:08 -05:00
Jeremy Long
0b703f2ad4 made identifier type required and identifier confidence optional
Former-commit-id: 84d0609e55c9647fe1b0ae5e4f5575e8da4a7b32
2014-01-17 20:40:08 -05:00
Jeremy Long
df825d0109 added identifier confidence to schema for issue #35
Former-commit-id: d6778b57ce1dde2cda67844160e0461a7cf143cc
2014-01-17 20:36:36 -05:00
Jeremy Long
1b73572e22 added identifier confidence to schema for issue #35
Former-commit-id: bb6489dbabb81b2e135af3fe514b4a67bfcd4c95
2014-01-17 20:36:36 -05:00
Jeremy Long
ce4baecb4b added Identifier confidence for issue #35, added @Override annotations, and updated javadoc a bit
Former-commit-id: b4374d55a0e5cb0bfbf424d9465e1376eec198fa
2014-01-17 20:33:41 -05:00
Jeremy Long
0994af86fc added Identifier confidence for issue #35, added @Override annotations, and updated javadoc a bit
Former-commit-id: 91437345432611a955cba9bb1de4cceeab09d393
2014-01-17 20:33:41 -05:00
Jeremy Long
48907517e9 added an additional addIdentfier to support identifier confidence for issue #35
Former-commit-id: c36f85a13598ac9683db078c93ac495bf629f443
2014-01-17 20:32:30 -05:00
Jeremy Long
1608cb7cd1 added an additional addIdentfier to support identifier confidence for issue #35
Former-commit-id: d03d5606703ae58dcc9f954c93dce6135e5bf5f5
2014-01-17 20:32:30 -05:00
Jeremy Long
dde1d96058 set identifier confidence on CPE entries
Former-commit-id: 1b50168ed2d1ae4f426cc703cb099c514b80d9e9
2014-01-17 20:22:57 -05:00
Jeremy Long
19e882a0d7 set identifier confidence on CPE entries
Former-commit-id: c06ff3935dfae7cc53389683ccb02180a2ecad98
2014-01-17 20:22:57 -05:00
Jeremy Long
b2f688a032 added Identifier confidence for issue #35
Former-commit-id: d5203193264c25d3a24b83cd63779fd2e4b42b36
2014-01-17 20:22:19 -05:00
Jeremy Long
77b1c74c83 added Identifier confidence for issue #35
Former-commit-id: 3db32960f817f42a846ea74ab35992866459f881
2014-01-17 20:22:19 -05:00
Jeremy Long
b4664f85f0 moved the Confidence enumeration out of the Evidence object
Former-commit-id: 77f937f2b17201b2764259ef6089f848fe8f3c8b
2014-01-17 20:11:06 -05:00
Jeremy Long
269ae95318 moved the Confidence enumeration out of the Evidence object
Former-commit-id: 7224a6c342aabb37db2ed01f663870d194e54d65
2014-01-17 20:11:06 -05:00
Jeremy Long
2725d32c33 moved the Confidence enumeration out of the Evidence object
Former-commit-id: b7948c1c6a542d1777347974983abc00c78a6102
2014-01-17 20:10:45 -05:00
Jeremy Long
59fefd5ad9 moved the Confidence enumeration out of the Evidence object
Former-commit-id: 0cf54545f41edfa23cac0ef9d1e12e89ba8f235b
2014-01-17 20:10:45 -05:00
Jeremy Long
c9f80db3c6 added test cases for DependencyBudnlingAnalyzer
Former-commit-id: bcfbca8c27a30f12e9bf59d4a44e37a5e19f8965
2014-01-17 19:43:45 -05:00
Jeremy Long
b60340f03a added test cases for DependencyBudnlingAnalyzer
Former-commit-id: 037323735444915fb83dd423c6c18a31c88af260
2014-01-17 19:43:45 -05:00
Jeremy Long
cb53ddf8a8 updated to fix issue #31
Former-commit-id: 569d1aee14d0f51a990e0cc059dce5aa500f10b2
2014-01-17 19:43:01 -05:00
Jeremy Long
93250f2b60 updated to fix issue #31
Former-commit-id: 6f1d7687b61ea6a0fab99e963ccc06b9b0b29e86
2014-01-17 19:43:01 -05:00
Jeremy Long
fdca41a71b ensured test properties files are filtered
Former-commit-id: 2705516b382e224d33313f519fa2849728876ddd
2014-01-17 19:41:43 -05:00
Jeremy Long
dc37ba740b ensured test properties files are filtered
Former-commit-id: 59d7acbfb14a03237bc40cbb8ab11dcd67f3f732
2014-01-17 19:41:43 -05:00
Jeremy Long
d59ceee0f7 minor javadoc update
Former-commit-id: 3243cc9392e479932731721fd8cf3dc8e14f0f0f
2014-01-17 17:45:37 -05:00
Jeremy Long
b7fa63bf15 minor javadoc update
Former-commit-id: 844b4593c52ab6c8ace06dda07a502c17b17ac73
2014-01-17 17:45:37 -05:00
Jeremy Long
38b08835c2 fixed Steve's role
Former-commit-id: 44b9c77d049b14dabd9f0db58c428c9632044dfd
2014-01-17 17:41:57 -05:00
Jeremy Long
6379665360 fixed Steve's role
Former-commit-id: 482b0e00ee2d87cdde54e9b6ff1a298b9ec6f6e1
2014-01-17 17:41:57 -05:00
Jeremy Long
dbbdb1bcbe updated to add scan information
Former-commit-id: b73ea598f34cbdbaf6d8f97ada6624875232f1da
2014-01-17 14:56:39 -05:00
Jeremy Long
ea6e30e7a7 updated to add scan information
Former-commit-id: 48ce02876d0ce2bffdf60b47894c83610cbdf0ba
2014-01-17 14:56:39 -05:00
Jeremy Long
b408e5d0d3 removed BOM
Former-commit-id: 05f2159cd22c4ebe78f97f88044c74502534cdb6
2014-01-17 14:20:43 -05:00
Jeremy Long
ceda50bc60 removed BOM
Former-commit-id: 855c66027b2d2a946fb8f8940ee1e867e0554ed2
2014-01-17 14:20:43 -05:00
Jeremy Long
30f00508f5 updated mojo to support report generation for issue #32
Former-commit-id: f3c4cfb9e7a6add6ec9d2e69a11a60bab3f4055e
2014-01-17 14:14:39 -05:00
Jeremy Long
fa0f2ccc4d updated mojo to support report generation for issue #32
Former-commit-id: f1122a2e2c046fb0377400b4529553cc05168041
2014-01-17 14:14:39 -05:00
Jeremy Long
75bb6aa966 updated cli to support report generation for issue #32
Former-commit-id: b75c45cfec5c9f294dc410258cd0beebb2acf512
2014-01-17 14:14:22 -05:00
Jeremy Long
84f68a7460 updated cli to support report generation for issue #32
Former-commit-id: 96a29246a3980fb28087d0e6065d53f9914d505b
2014-01-17 14:14:22 -05:00
Jeremy Long
eff206fb2b updated task to support report generation for issue #32
Former-commit-id: de760da2ca783d4ccb0e15da776c6fa97a333ff7
2014-01-17 14:14:02 -05:00
Jeremy Long
1c9d15892e updated task to support report generation for issue #32
Former-commit-id: a6875d4943a8eaa7b0ae4f978d2ebfd23f322771
2014-01-17 14:14:02 -05:00
Jeremy Long
98da419c96 updated schema for issue #32
Former-commit-id: 126eab3735ac4151b3c6b72bec4ce0f648926054
2014-01-17 14:10:07 -05:00
Jeremy Long
ab91313f4f updated schema for issue #32
Former-commit-id: b996605915ed221c78a84cfbbb6b0a52249a965e
2014-01-17 14:10:07 -05:00
Jeremy Long
efe226045d added additional info to XML for issue #32
Former-commit-id: 7a107dd9388610098fff40a5e4b85eeea49d3078
2014-01-17 14:09:21 -05:00
Jeremy Long
55045e15b8 added additional info to XML for issue #32
Former-commit-id: 6142dd8620ef28c77aa0d49ac95c9e4db00e3657
2014-01-17 14:09:21 -05:00
Jeremy Long
35ba1532f4 updated schema version
Former-commit-id: dd27b18b117d53fd4bc4dfcfe901d6225b7b70c9
2014-01-17 13:48:00 -05:00
Jeremy Long
25a8fa7d11 updated schema version
Former-commit-id: 8dd342b95f25bfb554a649a40db9896a139b5034
2014-01-17 13:48:00 -05:00
Jeremy Long
476d732a3c updated schema version
Former-commit-id: 2edb2d6e694e4fcf9ee20cb17d06c7a0fb6fa950
2014-01-17 13:46:59 -05:00
Jeremy Long
d0a7757b75 added version number to the report context
Former-commit-id: f783309c357851e7ef5d2b1c2dfc898bbe5368ee
2014-01-17 13:15:14 -05:00
Jeremy Long
21efc0c4a5 added version number to the report context
Former-commit-id: e1cb7b7e6949ed017bc12addf8ac553a0473aa51
2014-01-17 13:15:14 -05:00
Jeremy Long
c20c6665fd updated data
Former-commit-id: 1f006fb71e6de02aaba1904a01dcbd9d3906d7fb
2014-01-17 10:36:37 -05:00
Jeremy Long
c9132de1ea added tests for new methods
Former-commit-id: f641622221f2519ed7798af7c1fc071525aa106c
2014-01-17 10:09:37 -05:00
Jeremy Long
cd497bfe9b added tests for new methods
Former-commit-id: e571160a322b68d4dfb18ecc2dc4c774b8403665
2014-01-17 10:09:37 -05:00
Jeremy Long
690d52bf2d updated test case to use new constructor
Former-commit-id: c17b07d519cd6e02e900a2b62290bb2f27029ea8
2014-01-17 10:09:07 -05:00
Jeremy Long
25c42bee6d updated test case to use new constructor
Former-commit-id: cc6a62c0b1477ac2d5e4586448751e7a3ed9ecce
2014-01-17 10:09:07 -05:00
Jeremy Long
5b2a3af850 add a new constructor to accept a DatabaseProperties argument and deprecated the old constructor
Former-commit-id: 66a7a7f94152712e1bace2a53cf01f72b9f4a772
2014-01-17 10:08:28 -05:00
Jeremy Long
6d639385da add a new constructor to accept a DatabaseProperties argument and deprecated the old constructor
Former-commit-id: 4f31406b23b7f96efb1f731bca2f12b281b77747
2014-01-17 10:08:28 -05:00
Jeremy Long
4ae9c03caf modified property names and added additional methods to retrieve the entire properties collection
Former-commit-id: f404577f0abb1c3d4f5cb2e6539a1db36f6ffbd0
2014-01-17 10:07:38 -05:00
Jeremy Long
fd1c0efedf modified property names and added additional methods to retrieve the entire properties collection
Former-commit-id: 9957024434b375842f1d3dde8e75aba1516ae4ab
2014-01-17 10:07:38 -05:00
Jeremy Long
d92d832804 attempt one at fixing class loader issues with H2 for the jenkins plugin
Former-commit-id: 01f55bdb4b3084d4eeb4939570a7640c4aaba956
2014-01-16 18:56:35 -05:00
Jeremy Long
5d2010aa73 attempt one at fixing class loader issues with H2 for the jenkins plugin
Former-commit-id: 125265069c0aedb7aa2a70a4a588b77e5fe4cb35
2014-01-16 18:56:35 -05:00
Jeremy Long
db12565dcf added missing license, notice, and readme files
Former-commit-id: 71b759209273b6abfca5ab9cf22444a657c90011
2014-01-16 18:34:31 -05:00
Jeremy Long
d9333b2e93 added missing license, notice, and readme files
Former-commit-id: ff43678b50b3f0027ad6070b978156900200fcde
2014-01-16 18:34:31 -05:00
Jeremy Long
6df73257b1 updated license to Apache 2.0
Former-commit-id: 69d16aa394be49dec2d040cc64072229a5d3b463
2014-01-16 18:34:02 -05:00
Jeremy Long
3034306fcc updated license to Apache 2.0
Former-commit-id: 9ab1a3f1216ab9a1a3a23a198557bc9dcc1af540
2014-01-16 18:34:02 -05:00
Jeremy Long
b79e69af77 updated license to apache 2.0
Former-commit-id: 42f2821ede7295129cc29bac369f876b18b7c84e
2014-01-16 17:48:00 -05:00
Jeremy Long
0c7bae6fd7 updated license to apache 2.0
Former-commit-id: 15ae4bc58338bbc4da6ba4a98f19f276add8a76c
2014-01-16 17:48:00 -05:00
Jeremy Long
78ea0779d7 1.1.0-snapshot
Former-commit-id: 05cb2baa0831f00467e5c4ee8caae6efce825a0c
2014-01-16 17:23:30 -05:00
Jeremy Long
855233f498 1.1.0-snapshot
Former-commit-id: 3c429668398de620c842dff0b1b634fbf23950e8
2014-01-16 17:23:30 -05:00
Jeremy Long
3002c9e430 release 1.0.8
Former-commit-id: d84fcbf655179b64f75898bb5892c6bb5cf2f84a
2014-01-16 08:00:54 -05:00
Jeremy Long
6b859a0478 release 1.0.8
Former-commit-id: bb0c02daab6157c1a22573dc59db3f2aa577b027
2014-01-16 08:00:54 -05:00
Jeremy Long
749d70ca94 added additional logging statements
Former-commit-id: 20343aaed618b6b32d2a03b806a913f68c545bb9
2014-01-15 20:45:55 -05:00
Jeremy Long
2f37b658f1 added additional logging statements
Former-commit-id: 84188e3a832acbe4d9678c73c9571011c5554518
2014-01-15 20:45:55 -05:00
Jeremy Long
70b4adeda0 added information on suppressing false positives to the site
Former-commit-id: 39176151fc0bbf304e1d7754f8f1f61d8d776c32
2014-01-15 20:43:09 -05:00
Jeremy Long
3bd952e5c5 added information on suppressing false positives to the site
Former-commit-id: 84c0f3175c7a749bc2d5fe05d7b4e4d23a518fab
2014-01-15 20:43:09 -05:00
Jeremy Long
7eb86d0a58 added tests for MySQL External DB
Former-commit-id: 54ad0176f42da0932e06aa01ba56424f3ae856e7
2014-01-15 16:13:08 -05:00
Jeremy Long
ae58c1fa99 added tests for MySQL External DB
Former-commit-id: 25a9773428d52aa95df940ab1c21cd363a361f99
2014-01-15 16:13:08 -05:00
Jeremy Long
5545d43417 added autocommit=on to H2 connection string
Former-commit-id: 7c62f36c5636415c80ddabb0ba3896de753ccd95
2014-01-15 13:18:32 -05:00
Jeremy Long
dfb411cb6a added autocommit=on to H2 connection string
Former-commit-id: 2ce63e1d44ecf5ab69f0f98003383f6a6b7b311e
2014-01-15 13:18:32 -05:00
Jeremy Long
2e3f68bd2c added autocommit=on to H2 connection string
Former-commit-id: 26903f3a375ff6223fb6c5db7117f8bfb84e3a92
2014-01-15 13:16:05 -05:00
Jeremy Long
449e3f5cc6 added autocommit=on to H2 connection string
Former-commit-id: 86c6de5504bc411e3a6fb636181954d7e15ca47f
2014-01-15 13:16:05 -05:00
Jeremy Long
539babed18 added autocommit=on to H2 connection string
Former-commit-id: b2f8958707ae211970640b124906bc3a67f04fc3
2014-01-15 13:15:50 -05:00
Jeremy Long
1b1fe17fca added autocommit=on to H2 connection string
Former-commit-id: 0dcc8a704178ba5087a876914a0088464ceb60b9
2014-01-15 13:15:50 -05:00
Jeremy Long
300752ab47 removed calls to commit as autocommit is on
Former-commit-id: 8f8473946dcd0133db91017e1a2a7764d0bb9e6f
2014-01-15 13:15:08 -05:00
Jeremy Long
f3c457745e removed calls to commit as autocommit is on
Former-commit-id: a4efaa350b1b9581e8ce1fc67dc62249bf18abdc
2014-01-15 13:15:08 -05:00
Jeremy Long
2c34c10c7e Updated plugin versions
Former-commit-id: fb6be27500d24f29f814d9a3c237bb49bddedb56
2014-01-14 06:11:42 -05:00
Jeremy Long
26f2e2b223 Updated plugin versions
Former-commit-id: 11044cb9a3a93991c0dd8e074fa913ac0deabb37
2014-01-14 06:11:42 -05:00
Jeremy Long
e2fb261e5b javadoc correction
Former-commit-id: abe3b139d3025d05de2b32db84d4020ffc795541
2014-01-14 05:59:52 -05:00
Jeremy Long
fcdd399eea javadoc correction
Former-commit-id: 1b55c65bd4f05027bb9b4ddc677d7d95fc0defb5
2014-01-14 05:59:52 -05:00
Will Stranathan
6399978168 Actually added the analyzer
Former-commit-id: 2fc4f2b3ec3d353c389ba70e71cd047cd35f28ad
2014-01-13 14:18:49 -05:00
Will Stranathan
c1d16782ab Actually added the analyzer
Former-commit-id: 28faa40bf1f1a55b663c2c7ca6cfa6109939839c
2014-01-13 14:18:49 -05:00
Will Stranathan
4f94765156 Added files I missed during the last change
Former-commit-id: 43785f55a00e7683aa0083296efc923b306f6d6b
2014-01-13 14:16:41 -05:00
Will Stranathan
860434a1d5 Added files I missed during the last change
Former-commit-id: 2f6f9cdb93c3a3f055694447b8a5d5bfbe440708
2014-01-13 14:16:41 -05:00
Will Stranathan
d58e2aa701 Checkin of the NexusAnalyzer and its tests
Former-commit-id: d9c29602efeaf923feb941ec38c8fc704eb99c11
2014-01-13 10:22:40 -05:00
Will Stranathan
38b493ee9d Checkin of the NexusAnalyzer and its tests
Former-commit-id: 1cfa6bb8a7018de5d1151530bcff3c20d9c7b9ac
2014-01-13 10:22:40 -05:00
Will Stranathan
000f382143 Added vim swap files to .gitignore
Former-commit-id: bb02b22571904e3561583612102c0da90dec6120
2014-01-13 10:11:51 -05:00
Will Stranathan
19dc560d56 Added vim swap files to .gitignore
Former-commit-id: b5c3d472b200965bd772b5744ef53ff74f366ad8
2014-01-13 10:11:51 -05:00
Jeremy Long
cede2e8843 added DriverShim to resolve class loader issues with the DriverManager
Former-commit-id: 730f626e6a5ec5c6dd9726abdf33d05975ea6d5f
2014-01-13 06:55:47 -05:00
Jeremy Long
bb10214db0 added DriverShim to resolve class loader issues with the DriverManager
Former-commit-id: 88fe523018dc9c6d7df7f39ed1e21e8803d3fb06
2014-01-13 06:55:47 -05:00
Jeremy Long
66c3450d46 improved test case so that the driver is retrieved to ensure the DriverManager registered the driver correctly
Former-commit-id: d66e20fd2c0a74f6a589702ccbf0d136c413921c
2014-01-13 06:55:27 -05:00
Jeremy Long
6a871c51a1 improved test case so that the driver is retrieved to ensure the DriverManager registered the driver correctly
Former-commit-id: 181f883e673c34120628a850e844fb11a7fa961b
2014-01-13 06:55:27 -05:00
Jeremy Long
9e6e6701be implemented one test to connect to a MySQL DB Server
Former-commit-id: ff8217ef7634412df10974e1e2648b3ab4171d83
2014-01-13 06:54:22 -05:00
Jeremy Long
d7ff3050c2 implemented one test to connect to a MySQL DB Server
Former-commit-id: 546c46da018c892f37d205ad0dbe1b19a389ab7f
2014-01-13 06:54:22 -05:00
Jeremy Long
e60ec5df3c Added DriverShim to get around issue with loading drivers via URLClassLoader
Former-commit-id: 9aac9909503c01e2b41261556252e550a3253005
2014-01-13 06:53:39 -05:00
Jeremy Long
8e0a0379d5 Added DriverShim to get around issue with loading drivers via URLClassLoader
Former-commit-id: c45fe3e1846d051f90a81deaa33104222e8dae7e
2014-01-13 06:53:39 -05:00
Jeremy Long
3eae185ae2 noop
Former-commit-id: a78b29d3cf6f23a02c1372d293cbf4027c037ee6
2014-01-13 06:52:55 -05:00
Jeremy Long
b7ceb90e61 noop
Former-commit-id: 6dbfc3dad128908a988d8cce3ffadace5523108d
2014-01-13 06:52:55 -05:00
Jeremy Long
053057fdd2 externalized properties for testing mysql db connections
Former-commit-id: e58feddb22961d3a72a6996c4f04d3577ad1605c
2014-01-13 06:51:40 -05:00
Jeremy Long
c1935c83f6 externalized properties for testing mysql db connections
Former-commit-id: c75cae83b677a8d87670cc7580525e390ce9b1ed
2014-01-13 06:51:40 -05:00
Jeremy Long
0af856d566 updated build plugin versions
Former-commit-id: 01675b4348914f7f8d844461462bb00f3275984c
2014-01-12 08:31:37 -05:00
Jeremy Long
62f08a2105 updated build plugin versions
Former-commit-id: 6274e03316662eeb639159ace71dd93688831755
2014-01-12 08:31:37 -05:00
Jeremy Long
76f2b39ce6 updated author tag
Former-commit-id: c216a3b3cfc12b874ac9c39fcc5613980372bf9e
2014-01-12 08:27:52 -05:00
Jeremy Long
38d7f6e671 updated author tag
Former-commit-id: 1a0ccff0a65e8af86741fa01c2cfd5382e8bec54
2014-01-12 08:27:52 -05:00
Jeremy Long
7b646c04d5 initial [empty] version
Former-commit-id: 1642f701eea410c3cf2c0b5f9e6a12a6f8ac018e
2014-01-12 08:19:53 -05:00
Jeremy Long
3c2c99c236 initial [empty] version
Former-commit-id: b4eca7805e1c88f64ff4811c02bd3f0c4c10c9d2
2014-01-12 08:19:53 -05:00
Jeremy Long
45ae3209b6 updated to support MySQL test cases
Former-commit-id: 6030de95a37397559470bb0f0bb801ed1ff058c6
2014-01-12 08:18:18 -05:00
Jeremy Long
7694402ae4 updated to support MySQL test cases
Former-commit-id: a96b3700b1230130d43e65277884fc49ac301666
2014-01-12 08:18:18 -05:00
Jeremy Long
9b04ceedf1 fixed typos
Former-commit-id: 490de2990dab978493b27a8faf8ec6c40b97c6dc
2014-01-12 07:35:03 -05:00
Jeremy Long
7ed1d13221 fixed typos
Former-commit-id: 417db699c81a6b9144b6f5dd8e99ab52805e0257
2014-01-12 07:35:03 -05:00
Jeremy Long
41a31cdf4c fixed spelling errors
Former-commit-id: 6c7d9240d7091204f09d37e405675dace1a2159e
2014-01-11 19:55:21 -05:00
Jeremy Long
47e89e35b2 fixed spelling errors
Former-commit-id: 2a362ac0f1d7ab9e026a1f9a42fa2b775df9f4cf
2014-01-11 19:55:21 -05:00
Jeremy Long
fe072cd2e3 various IntelliJ analysis recommendations
Former-commit-id: 7b5f0b5c5e0fc37b58e7cecbcf190c0df56ffe0f
2014-01-11 16:04:43 -05:00
Jeremy Long
3633759295 various IntelliJ analysis recommendations
Former-commit-id: 9b81bd3d14046ddfe71da5794b29326aaf6c6ac5
2014-01-11 16:04:43 -05:00
Jeremy Long
525933be99 added database connection properties
Former-commit-id: 7abf08834cf366e7c998d33a9a05387192a1f24a
2014-01-11 13:19:33 -05:00
Jeremy Long
98bdb0479b added database connection properties
Former-commit-id: 57e25ebc7c936bd1a99d3f60f32faeb72bc5f157
2014-01-11 13:19:33 -05:00
Jeremy Long
98792fde85 removed file
Former-commit-id: 31618dcec4acb3a5c5dda4ba9762519d8c22bf49
2014-01-11 12:45:29 -05:00
Jeremy Long
1e40df227d removed file
Former-commit-id: 9b459e06b23b233984a5b633eb7faed3a8b91c26
2014-01-11 12:45:29 -05:00
Jeremy Long
caf0a709b8 updated data version
Former-commit-id: 33d6c6329ac42ea47d46f7eae5d8cb7a8b85a376
2014-01-11 12:45:03 -05:00
Jeremy Long
81733d9f81 removed sonatype parent
Former-commit-id: d31569e6bfd8f8674ea06304bf2d0ee22a2e6679
2014-01-11 12:44:33 -05:00
Jeremy Long
daef951e59 removed sonatype parent
Former-commit-id: f969cfb576b167729283668d4aa47e0d0e419d06
2014-01-11 12:44:33 -05:00
Jeremy Long
03a753b82c removed one test as method was removed
Former-commit-id: 1910abb63319e5afd451dc241a1b3f7f76bd9704
2014-01-11 12:43:44 -05:00
Jeremy Long
73eab87dd9 removed one test as method was removed
Former-commit-id: fee24a17a2e1878aefc294c253e46b5bf41c40ec
2014-01-11 12:43:44 -05:00
Jeremy Long
6938b0f4ae removed unused imports
Former-commit-id: 71b42ce0e203e5897492ade452683fc15b0f99a6
2014-01-11 12:43:11 -05:00
Jeremy Long
1a2720649b removed unused imports
Former-commit-id: eb17f686be6f9d68255ce5db5f0d8efd5422409d
2014-01-11 12:43:11 -05:00
Jeremy Long
a50c61e5c5 added new properties for database connections
Former-commit-id: 184db1b04818703598faafe4eccf951febebb52a
2014-01-11 12:42:50 -05:00
Jeremy Long
1083cdb743 added new properties for database connections
Former-commit-id: 9e96b0ce823cb40ac9c35d3e8aeeb7a23712bee5
2014-01-11 12:42:50 -05:00
Jeremy Long
5450bdbc55 added new property keys for database connection properties
Former-commit-id: 9205017c862fcfc0e30354964bfebe750163b74b
2014-01-11 12:41:58 -05:00
Jeremy Long
06eb8f9c10 added new property keys for database connection properties
Former-commit-id: aa963014785ed1f49b0c53afa9481a0e46d196d2
2014-01-11 12:41:58 -05:00
Jeremy Long
11a634b9be updated package info
Former-commit-id: 61a2ac8c1d1888e508118805752d67e23e63bce3
2014-01-11 12:41:30 -05:00
Jeremy Long
31af15d267 updated package info
Former-commit-id: 725b6e993da523367edfa3995729fee4e342e037
2014-01-11 12:41:30 -05:00
Jeremy Long
801102d379 removed un-needed import after moving classes around
Former-commit-id: 4e196144166ff57e898b1fd1009c7c3cb410c514
2014-01-11 12:41:03 -05:00
Jeremy Long
12938df375 removed un-needed import after moving classes around
Former-commit-id: dec54243019a67fc52a3aea906ab1201e4aa5352
2014-01-11 12:41:03 -05:00
Jeremy Long
8eaba18e91 removed unused properties field
Former-commit-id: 08a2b2a405b7f3176cbf44251cf99a8a22286e48
2014-01-11 12:40:37 -05:00
Jeremy Long
24d8dbcf64 removed unused properties field
Former-commit-id: 9877606326236bb2bda9048a5ac927cae7c3e0cd
2014-01-11 12:40:37 -05:00
Jeremy Long
d1cb88b5c5 removed un-needed import after moving classes around
Former-commit-id: bf1d7742c91a7a4b22f5f8850e9e7ca45b4fee8a
2014-01-11 12:40:11 -05:00
Jeremy Long
2b7585357f removed un-needed import after moving classes around
Former-commit-id: 369c59274503eb50e1a8a27f702fa1d7a4d5967f
2014-01-11 12:40:11 -05:00
Jeremy Long
940889f96f removed the ability to delete and recreate the schema
Former-commit-id: ea65f6f2ba5740c930cb8d4ab724cb029e7f6a04
2014-01-11 12:39:34 -05:00
Jeremy Long
5b659966c8 removed the ability to delete and recreate the schema
Former-commit-id: a663d48bf74761504a9c8c23b128b00a32a814d0
2014-01-11 12:39:34 -05:00
Jeremy Long
3d5b934f54 removed the ability to delete and recreate the schema
Former-commit-id: 0bcec9bb3d09038b03b5307c92104880c1393189
2014-01-11 12:39:01 -05:00
Jeremy Long
2834d6cac7 removed the ability to delete and recreate the schema
Former-commit-id: 0a02cf0892613904dcdf1eecef3391b396a82ef3
2014-01-11 12:39:01 -05:00
Jeremy Long
155f62fd22 initial implementation
Former-commit-id: 76116c9ababd6a1b5a1c77756826f875cffa6325
2014-01-11 12:38:26 -05:00
Jeremy Long
65dd4c873f initial implementation
Former-commit-id: 8c14c36a6a7e192bdc5c1b07accc2f7c611a3369
2014-01-11 12:38:26 -05:00
Jeremy Long
6c3025c487 initial version of exception
Former-commit-id: 4e728dce235f4cf86534db2c1992916c0b889328
2014-01-11 12:37:56 -05:00
Jeremy Long
8c834e634b initial version of exception
Former-commit-id: 97bbfda58ed595935cb387140d8b39bd0ec66642
2014-01-11 12:37:56 -05:00
Jeremy Long
4e62a2ee4f removed un-neede property value update
Former-commit-id: 313e74b97e818fda1421785c4c462f6c330122a3
2014-01-11 12:37:28 -05:00
Jeremy Long
f92430d092 removed un-neede property value update
Former-commit-id: c9ccb79104de208cf9673b258ed739d9b78562dc
2014-01-11 12:37:28 -05:00
Jeremy Long
712a076be8 updated to utilize the ConnectionFactory
Former-commit-id: 0fc86441610efd54905864a6e64b57d35e86b86b
2014-01-11 12:36:58 -05:00
Jeremy Long
b110e944c3 updated to utilize the ConnectionFactory
Former-commit-id: d368fb9ecad44059fe6d6e1f56912336e17912d2
2014-01-11 12:36:58 -05:00
Jeremy Long
97f1ff02a0 initial implementation
Former-commit-id: c69a772ec7d0d39dd880c8ffa7f75d0d4c254ec3
2014-01-11 12:36:17 -05:00
Jeremy Long
77eb5b5147 initial implementation
Former-commit-id: 55b94aa6e58aad2b73c433b29fdf2133ae1f8334
2014-01-11 12:36:17 -05:00
Jeremy Long
2b36eb42a8 added additional verbose logging
Former-commit-id: 49f9467ab33a3d260b295a938bac702358a522c6
2014-01-11 12:35:44 -05:00
Jeremy Long
1fabdb9e2d added additional verbose logging
Former-commit-id: e754c12ca2e11d6ca3c338aca801aafa00542847
2014-01-11 12:35:44 -05:00
Jeremy Long
ada2972669 updated to conform with new api (less exceptions caught)
Former-commit-id: aa52a7c9429b292061a3dd7afdaf7fb887cdbea9
2014-01-11 12:35:07 -05:00
Jeremy Long
e8682ac058 updated to conform with new api (less exceptions caught)
Former-commit-id: ad29d60598be7dd0c44e332a65d68756cadbe3e2
2014-01-11 12:35:07 -05:00
Jeremy Long
5822dcccec initial version of tests
Former-commit-id: 38a225894315cef478ad713609a1beebe925a8d2
2014-01-11 12:34:24 -05:00
Jeremy Long
08603ad905 initial version of tests
Former-commit-id: 80e7ccbc84eccc132454cefdcc5703504637b37c
2014-01-11 12:34:24 -05:00
Jeremy Long
843fd4abec added MySQL Initialization script
Former-commit-id: 86a513207d3ae6fde7082e4fa8be38ece041384c
2014-01-11 12:33:57 -05:00
Jeremy Long
224b867737 added MySQL Initialization script
Former-commit-id: a7a13d60769a794a9c4859c0df86d4576381c738
2014-01-11 12:33:57 -05:00
Jeremy Long
8d840bfe0e added mysql connector
Former-commit-id: 4a968876865087db300180712031dd8c78d24392
2014-01-11 12:33:29 -05:00
Jeremy Long
0eb4ac5bcc added mysql connector
Former-commit-id: 08fe6940e2122a78f21a2ebaf00670d73d865c58
2014-01-11 12:33:29 -05:00
Jeremy Long
a2d0c335d0 updated year regex
Former-commit-id: 5f3225071b1c5a45bb280ec3e5b6455da465283e
2014-01-11 12:31:41 -05:00
Jeremy Long
876ca5927d updated year regex
Former-commit-id: 39555650722a92053167a8716f1f0eea70f0205c
2014-01-11 12:31:41 -05:00
Jeremy Long
645735a048 updated to make SQL statements more cross platform
Former-commit-id: 7ddd41ed025effcf1f3cf0562105ab8208f46202
2014-01-10 06:16:32 -05:00
Jeremy Long
98b4509014 updated to make SQL statements more cross platform
Former-commit-id: 5cf3f06366bfd0b2d474891266efea9459aec26a
2014-01-10 06:16:32 -05:00
Jeremy Long
c58d27fe2d fixed bug 40 - version evidence is not showing up in the final reports
Former-commit-id: 8801f3d14c5d1e866bb3c81c73d807c4dd51bfbd
2014-01-08 05:23:18 -05:00
Jeremy Long
c0013a0ba5 fixed bug 40 - version evidence is not showing up in the final reports
Former-commit-id: 1d39898252ca5738587947edd6ea977fbc571d55
2014-01-08 05:23:18 -05:00
Jeremy Long
b9a2bcb0bf Fixed typo in logging
Former-commit-id: 4699a65d895dd2268973c7ef4a7fcde5045da119
2014-01-05 07:14:59 -05:00
Jeremy Long
cc915e39c5 Fixed typo in logging
Former-commit-id: a98d83ab10a6d81c81e4a919bb0992e1bfa56934
2014-01-05 07:14:59 -05:00
Jeremy Long
8eb2f738ef Initial version
Former-commit-id: e7be5c63fd8ffb67d4813a7804082d282a80e134
2014-01-05 07:13:50 -05:00
Jeremy Long
b569ad4ef5 Initial version
Former-commit-id: 649d9e94e9e9c771a4efdace79ec8ddca0cc1af4
2014-01-05 07:13:50 -05:00
Jeremy Long
af77ab01c2 updated logging
Former-commit-id: cf72503083e68cc1f58a20d8a0e86f3fca00295d
2014-01-05 07:12:55 -05:00
Jeremy Long
6ab5388075 updated logging
Former-commit-id: 7594ca0adc6256389b918a96ff0a875a582a0cc3
2014-01-05 07:12:55 -05:00
Jeremy Long
6022b13285 updated package-info
Former-commit-id: fdc542ccc2d06f352b2bb949e5107b7cbaf6561b
2014-01-04 09:17:02 -05:00
Jeremy Long
ded3079390 updated package-info
Former-commit-id: cbacf975eae9951165dffdda5ffe0066589d8268
2014-01-04 09:17:02 -05:00
Jeremy Long
735660c830 moved several classes
Former-commit-id: ea163c7ee1ffeb968a78bed953abdad55083b87f
2014-01-04 09:08:22 -05:00
Jeremy Long
44fe358766 moved several classes
Former-commit-id: e15d111bab0061c89ef5d8cea518350fa901667e
2014-01-04 09:08:22 -05:00
Jeremy Long
27daccfc35 moved several classes
Former-commit-id: 16322c61d505a25eb1037a90e2ca941147fad6cf
2014-01-04 09:01:04 -05:00
Jeremy Long
cee4b089c6 moved several classes
Former-commit-id: 57cde1f76269c17d354e38db8ba25a5ab669e2c8
2014-01-04 09:01:04 -05:00
Jeremy Long
2a54077ab1 moved several classes
Former-commit-id: 3bd04e0484cd888b18b929249bed82ca1130a5f2
2014-01-04 08:56:09 -05:00
Jeremy Long
ba8bd4f95c moved several classes
Former-commit-id: f2de931c7c093818a97149b0cefc22d7b3b9717f
2014-01-04 08:56:09 -05:00
Jeremy Long
8e2e258518 updated JavaDoc
Former-commit-id: 38777540e58ce5821fbb86f183e824c143635825
2014-01-04 08:54:36 -05:00
Jeremy Long
c602072e5b updated JavaDoc
Former-commit-id: ce55cd1de24523e421a30b64bfdb906c50b65597
2014-01-04 08:54:36 -05:00
Jeremy Long
a4771090ed renamed and moved classes
Former-commit-id: b0e9d931be4d61eb25178182e8602a0c0be4b6b9
2014-01-04 08:47:25 -05:00
Jeremy Long
76061c84aa renamed and moved classes
Former-commit-id: f2b2f2314e05260f58dba3e36a5886dba24e23f8
2014-01-04 08:47:25 -05:00
Jeremy Long
133a18b70c Moved DBUtils to the utils package
Former-commit-id: 50c78e572be6ac878b29430adeed4c084f50e417
2014-01-04 08:40:23 -05:00
Jeremy Long
cd01d3e923 Moved DBUtils to the utils package
Former-commit-id: fc35a259abae520958501d46ba9fef81510fa4aa
2014-01-04 08:40:23 -05:00
Jeremy Long
4286c79173 removed code that had been previously commented out
Former-commit-id: be89d4ed5ed3f54d0b179a9614ce8e0f0de745e3
2014-01-03 15:15:52 -05:00
Jeremy Long
ff23e7aba7 removed code that had been previously commented out
Former-commit-id: d66771c5b8a673cb1b9b0e31a43361f50efbe610
2014-01-03 15:15:52 -05:00
Jeremy Long
97238b764f findbugs/checkstyle patches
Former-commit-id: b796c6631e20064fe2098721995a271b6cb44f66
2014-01-03 14:56:18 -05:00
Jeremy Long
e61fb6f206 findbugs/checkstyle patches
Former-commit-id: b00c0681a799cea260a2aa6de6aa210709199589
2014-01-03 14:56:18 -05:00
Jeremy Long
b9f3c41a9d checkstyle patches
Former-commit-id: 2c8f71524fb0eb600b41a06c9bdad8d65519551f
2014-01-03 14:39:09 -05:00
Jeremy Long
a6cab8fddc checkstyle patches
Former-commit-id: b20c0046dc72928e3b3e51588846d628bdef63ed
2014-01-03 14:39:09 -05:00
Jeremy Long
e8e951e7ff checkstyle patches
Former-commit-id: 0220c6278809ce9f50fa33f9376b90e54c61b612
2014-01-03 14:30:12 -05:00
Jeremy Long
ec16d9abfc checkstyle patches
Former-commit-id: 68937bbf5b92b8168b2eeae6ced056ec4deafb72
2014-01-03 14:30:12 -05:00
Jeremy Long
f4928dd0b4 moved files to a new package
Former-commit-id: 129b8d0c256104fe2ae28bb45c0418114ed28e35
2014-01-03 14:29:35 -05:00
Jeremy Long
b5c67a47d1 moved files to a new package
Former-commit-id: f728311ae4b5c9184f4c50074fc23a85c0938d43
2014-01-03 14:29:35 -05:00
Jeremy Long
8e14a54815 minor changes to make this a utility class (final, private constructor)
Former-commit-id: 0571f0eddc640925d5f5f2ffbdb873d082191ba9
2014-01-03 14:29:12 -05:00
Jeremy Long
a4c1e3b0bc minor changes to make this a utility class (final, private constructor)
Former-commit-id: 7366e29f0973477901d0531b1fe8792d25da7875
2014-01-03 14:29:12 -05:00
Jeremy Long
52b2bfcd41 updated to use DBUtils rather then the, now removed, parent class
Former-commit-id: 9bccc5e3eb5f9c0846eec99a95395a69101715ee
2014-01-03 14:28:30 -05:00
Jeremy Long
b160d58d1b updated to use DBUtils rather then the, now removed, parent class
Former-commit-id: 51875eb55aa3cd4bccbbc345883ce67c17c72dce
2014-01-03 14:28:30 -05:00
Jeremy Long
a383fe09f6 converted to BaseDB to DBUtils
Former-commit-id: f5366fef82cb43c52e1cdfc49388090fa05fb13a
2014-01-03 14:27:43 -05:00
Jeremy Long
b6a4dfb424 converted to BaseDB to DBUtils
Former-commit-id: 4710ba824597c979d3ad12c8500873e0087e71c9
2014-01-03 14:27:43 -05:00
Jeremy Long
00446f7093 removed unused import
Former-commit-id: 585d9bc2c68d32551b4f1a7cae30fc5bda1d059a
2014-01-03 14:21:21 -05:00
Jeremy Long
5837718cf4 removed unused import
Former-commit-id: 4f419ce943ec5c44ced47d46d24a5aaeb8b23a75
2014-01-03 14:21:21 -05:00
Jeremy Long
7b0d04ef72 removed unused imports
Former-commit-id: e4528fee0acd15217db45b8531ffa498e9c4f36d
2014-01-03 14:20:54 -05:00
Jeremy Long
962e579434 removed unused imports
Former-commit-id: d46a183eab52cc3d604dc92e58186ebb89b7a329
2014-01-03 14:20:54 -05:00
Jeremy Long
66996ec1d3 moved to new package
Former-commit-id: df0c16afe8fac4250e83fbbf66e48eee0ff2df5c
2014-01-03 14:20:12 -05:00
Jeremy Long
63a249ecb0 moved to new package
Former-commit-id: 1093fc5eb2cf0b7c864e96ecf65bbc3fffada113
2014-01-03 14:20:12 -05:00
Jeremy Long
71f40856dc renamed files
Former-commit-id: b8d315c127b078e1d09280c36d08a74b851ceff6
2014-01-03 14:06:49 -05:00
Jeremy Long
3f40ca65f5 renamed files
Former-commit-id: 1b831a983e163cd81beb823f6ea8dc963c67ea47
2014-01-03 14:06:49 -05:00
Jeremy Long
57668fc618 updated test data
Former-commit-id: 21f21a35108f1691cb8525ed332afcb4ddc95289
2014-01-03 14:06:31 -05:00
Jeremy Long
2c19cc3dff removed unused properties
Former-commit-id: 4662d7c84968e036a3bacbc377337b9b63bf68e4
2014-01-03 14:06:14 -05:00
Jeremy Long
e82d14c973 removed unused properties
Former-commit-id: ad9849ad0021325f51cc1b6d1368240e3b71bf47
2014-01-03 14:06:14 -05:00
Jeremy Long
40a1b6fde0 fixed tests based on changes to APIs and available settings
Former-commit-id: 120cbabb800de8c3d385a52f3ae8bd25d9492830
2014-01-03 14:05:47 -05:00
Jeremy Long
8e9aa23c3c fixed tests based on changes to APIs and available settings
Former-commit-id: 7de614dd6d13861316e7dd95295f11d2854529f5
2014-01-03 14:05:47 -05:00
Jeremy Long
ca5ce25dee removed test for deleteExistingData (which was also removed from the class being tested)
Former-commit-id: 001b6c1870b7a91e11042ee7f7b46e67b6e0e36e
2014-01-03 14:05:01 -05:00
Jeremy Long
4687c7dcda removed test for deleteExistingData (which was also removed from the class being tested)
Former-commit-id: b806b2a0f2e106347be7482443938709b3c8d976
2014-01-03 14:05:01 -05:00
Jeremy Long
ca08887dca fixed tests to work with the new method for accessing the DB properties
Former-commit-id: 1cbd6305d8aa758618f80a4c46d6bb20d03fc57f
2014-01-03 14:04:11 -05:00
Jeremy Long
5d857c731f fixed tests to work with the new method for accessing the DB properties
Former-commit-id: 3d4ff665b7e66c0e0e66bd5a3e32fa4c99f28aed
2014-01-03 14:04:11 -05:00
Jeremy Long
b7804a4c83 removed unused import
Former-commit-id: 3323ba22888f13af6d1620e0175221e385ada254
2014-01-03 14:03:25 -05:00
Jeremy Long
eaec1205a1 removed unused import
Former-commit-id: 9deb195c2862ca8d6ea71d4aed6230df47152a5b
2014-01-03 14:03:25 -05:00
Jeremy Long
5460645d4a removed unused property
Former-commit-id: 87027e6ba903fa3719cded64525949b453912c6b
2014-01-03 14:03:05 -05:00
Jeremy Long
e3d03c3d78 removed unused property
Former-commit-id: 12e18baec70983b254d53507186a3a5b954c751d
2014-01-03 14:03:05 -05:00
Jeremy Long
0fbfbfb8f7 updated getDataFile() so that it no longer checks for a base data directory as the subdirectories have been removed
Former-commit-id: ea5f520dbc71243d15e89e6b318c9bd7cbbe22ab
2014-01-03 14:02:36 -05:00
Jeremy Long
927fb013ff updated getDataFile() so that it no longer checks for a base data directory as the subdirectories have been removed
Former-commit-id: 77ae2cb573211de12015606ade9482ca7f0c3d2d
2014-01-03 14:02:36 -05:00
Jeremy Long
998f916cdc removed unused function deleteExistingData
Former-commit-id: 824275af643b7b47cb7b029bd4d6ecd8b69a7d01
2014-01-03 14:01:26 -05:00
Jeremy Long
4deb14ccfb removed unused function deleteExistingData
Former-commit-id: 5102fe9756b1f5470ca2b4f21dcf0f7d86bedeb2
2014-01-03 14:01:26 -05:00
Jeremy Long
1895af9f39 Moved meta data about the NVD CVE into a database table rather then an external properties file
Former-commit-id: 72e131d34110856bc2a20371f2b7661928311efe
2014-01-03 14:00:39 -05:00
Jeremy Long
e04dba610b Moved meta data about the NVD CVE into a database table rather then an external properties file
Former-commit-id: ccef3663d13f8176b3e4f06bd5b9db4c23b207d5
2014-01-03 14:00:39 -05:00
Jeremy Long
720870675c Moved properties to the table in the DB rather then an external file and moved several methods from the parent class into this class
Former-commit-id: 9a8ca2484cd866eb2825f3c80b9a35b9558fcc33
2014-01-03 13:59:39 -05:00
Jeremy Long
99a5dfee31 Moved properties to the table in the DB rather then an external file and moved several methods from the parent class into this class
Former-commit-id: 5b9e629509ce26840892053eef19cc1ffccca623
2014-01-03 13:59:39 -05:00
Jeremy Long
a58eba37a9 Moved most functions to CveDB.java; slowly converting the class to a pure DB utility rather then a base class
Former-commit-id: 48cae3cfeee70312f04605cc1772d735ddb0d969
2014-01-03 13:40:25 -05:00
Jeremy Long
66842fca8e Moved most functions to CveDB.java; slowly converting the class to a pure DB utility rather then a base class
Former-commit-id: 7b1a18596000b3506798d521801a6bb1eace32da
2014-01-03 13:40:25 -05:00
Jeremy Long
9a2ec6b110 moved properties to DB, minor change to API to support this
Former-commit-id: e4a6c6c1eca6806a0d3228ded911fed3ab0f0b19
2014-01-03 09:02:08 -05:00
Jeremy Long
a47280f47b moved properties to DB, minor change to API to support this
Former-commit-id: ffbf3e53a75fc633d9bf8c74c40ea41154a2f4c4
2014-01-03 09:02:08 -05:00
Jeremy Long
389852c979 fixed logging issue
Former-commit-id: 99fdbe6b0388b68537d6741ad29714b40bada033
2014-01-03 09:00:35 -05:00
Jeremy Long
2808ca139c fixed logging issue
Former-commit-id: 63fc2fa2786e06ea759cb47ca552346b6d95f25d
2014-01-03 09:00:35 -05:00
Jeremy Long
bbee8e7d81 corrected logging problem
Former-commit-id: bbde8ab5d76970d7a9bf99e299802119e03c9ed3
2014-01-03 09:00:11 -05:00
Jeremy Long
d87467aa88 corrected logging problem
Former-commit-id: 68bad221b1352b6cfe271f5089ea0f70197dc84c
2014-01-03 09:00:11 -05:00
Jeremy Long
161cd1ee13 moved properties to database along with lots of other minor changes
Former-commit-id: 46c5cac920eead5b1367657b64466b72b8dab5fc
2014-01-03 08:59:40 -05:00
Jeremy Long
382aad5119 moved properties to database along with lots of other minor changes
Former-commit-id: eac66862685ab61200fec1607fb654ffc41e12fa
2014-01-03 08:59:40 -05:00
Jeremy Long
3adc6a646f Changed from deleting existing physical files to recreating the table structure when data was too old
Former-commit-id: a51d372188b371a0b3ebfe23fd21bae1b8284088
2014-01-03 08:58:39 -05:00
Jeremy Long
93f94b65f1 Changed from deleting existing physical files to recreating the table structure when data was too old
Former-commit-id: 5ef2a1a496c75accfdc185910d1a49677fe82e42
2014-01-03 08:58:39 -05:00
Jeremy Long
13ba54183a Updated as properties moved to the DB
Former-commit-id: 6904cc3f79cb60379addecdb0f63f8da64a32255
2014-01-03 08:57:27 -05:00
Jeremy Long
bc66d4b0e7 Updated as properties moved to the DB
Former-commit-id: 5b9f503949b4a7d4a03e313bf60ff756d7c18b2d
2014-01-03 08:57:27 -05:00
Jeremy Long
8be331ddcb fixed logging issue
Former-commit-id: 30d6eb459098c31f085c35ef8af787bc4fdb3993
2014-01-03 08:56:11 -05:00
Jeremy Long
ff044c831f fixed logging issue
Former-commit-id: 4c17e4db31e2315978b13b6bbd8901de04cb9cec
2014-01-03 08:56:11 -05:00
Jeremy Long
a896566a14 improved error handling and logging
Former-commit-id: d6b755d0ade7ec3cb5ad7f4ff9edb1ccf4969d60
2014-01-03 08:55:29 -05:00
Jeremy Long
cb85292f99 improved error handling and logging
Former-commit-id: d0052afd68fc4e90b915473b1a0cc6b53763dc49
2014-01-03 08:55:29 -05:00
Jeremy Long
58ebcbce3d Fixed logging issue
Former-commit-id: 68ee302cbd37302345b8d83c8e588ade2383436d
2014-01-03 08:54:40 -05:00
Jeremy Long
7c7722e8fc Fixed logging issue
Former-commit-id: 695fd31acb7c0bbf99365c244855daf2520055cf
2014-01-03 08:54:40 -05:00
Jeremy Long
06cff0b2a6 renamed settings to properties in the schema
Former-commit-id: 37c8965f64f52b1ae261c18b6d4fce9b5df8b737
2013-12-21 08:15:20 -05:00
Jeremy Long
78cc6764bf renamed settings to properties in the schema
Former-commit-id: f383ea9d8355b8c038f9b0028161db54aeb09d75
2013-12-21 08:15:20 -05:00
Jeremy Long
74c0e3a659 updated schema version to 2.8
Former-commit-id: e8f640e632ab2778327bf57a0ba5b3539bc2a822
2013-12-21 08:14:29 -05:00
Jeremy Long
0b540d6406 updated schema version to 2.8
Former-commit-id: 11acb51c0dc9c6b9772519b0a4695a6bed9374f0
2013-12-21 08:14:29 -05:00
Jeremy Long
076ad8ef7e made error handling more robust so analysis should stop when something goes wrong with a signle jar
Former-commit-id: 1e8fb3a5e6e904751c98a3621630f7953400e802
2013-12-21 07:46:47 -05:00
Jeremy Long
f1e0b7a94f made error handling more robust so analysis should stop when something goes wrong with a signle jar
Former-commit-id: f873948c981239f37fb0083b34906be31c0e9ca1
2013-12-21 07:46:47 -05:00
Jeremy Long
64ebc35dbd improved error handling/reporting
Former-commit-id: e94f29085e11a331d028ee38d24d69017de679c6
2013-12-20 05:36:04 -05:00
Jeremy Long
611635a9a2 improved error handling/reporting
Former-commit-id: a876ed631f9d6c69abd6d57c20cdd81d9d9bbdbb
2013-12-20 05:36:04 -05:00
Jeremy Long
ee5146273e updated documentation to demonstrate a very basic configuration
Former-commit-id: 19425cd973799d866dd92bf1748b0484a3eac180
2013-12-14 13:19:57 -05:00
Jeremy Long
26c30b013b updated documentation to demonstrate a very basic configuration
Former-commit-id: 52683780d58dabc58758e90468429c1bc596bb7e
2013-12-14 13:19:57 -05:00
Jeremy Long
2c82711476 removed batch mode property test cases
Former-commit-id: e64ad0e00a94c4b24585e42c41712fdeba44ba3d
2013-12-07 13:34:30 -05:00
Jeremy Long
899f5231b5 removed batch mode property test cases
Former-commit-id: 476f48ad416b9df6f475368a3b9e7af83cf30810
2013-12-07 13:34:30 -05:00
Jeremy Long
897650cf27 removed unused imports
Former-commit-id: a8848b211e0e602ba20cc196e87dd6336596a3b5
2013-12-07 13:32:57 -05:00
Jeremy Long
0cfeee18c9 removed unused imports
Former-commit-id: 2b84240d9648fcb3b447d3128dc9de054989dde5
2013-12-07 13:32:57 -05:00
Jeremy Long
8e4a3c705a removed batch update properties
Former-commit-id: 255c6e71949efe83516c9eec47b7fcf12f5aef29
2013-12-07 13:30:55 -05:00
Jeremy Long
3e44835687 removed batch update properties
Former-commit-id: eb0a70d541c1b694812f93b7e4271fe5f3d27928
2013-12-07 13:30:55 -05:00
Jeremy Long
01bf6a7eee added some JavaDoc comments
Former-commit-id: b1c8567fc7d29aa2e3285838fabba9f4e5a63fc3
2013-12-07 13:29:28 -05:00
Jeremy Long
d5ac67071f added some JavaDoc comments
Former-commit-id: 8ae8744c4f59f1f2e8a932485b969575b533fc42
2013-12-07 13:29:28 -05:00
Jeremy Long
4ea9445a8f added some JavaDoc comments
Former-commit-id: f4c296a2bbc5b56f8bcd944974e651bf1e19c431
2013-12-07 13:29:05 -05:00
Jeremy Long
6aee9ce92e added some JavaDoc comments
Former-commit-id: e42795dd9f92bcff7109832bacac540e9f589859
2013-12-07 13:29:05 -05:00
Jeremy Long
b3980acbf5 Changed order to prevent blocking, CallableDownloadTasks automatically submit the results to the process executor queue now
Former-commit-id: 536fd58f195fd46de16d56064453409d0e39536b
2013-12-07 13:25:34 -05:00
Jeremy Long
6a268bfb68 Changed order to prevent blocking, CallableDownloadTasks automatically submit the results to the process executor queue now
Former-commit-id: a6671690125a13045e93e40a95c033b8f99cf391
2013-12-07 13:25:34 -05:00
Jeremy Long
d3a1f73d3e Changed order to prevent blocking, CallableDownloadTasks automatically submit the results to the process executor queue now
Former-commit-id: 7b3e75b8b0903041624edb5aba260ac58f6a8099
2013-12-07 12:04:08 -05:00
Jeremy Long
63848e815f Changed order to prevent blocking, CallableDownloadTasks automatically submit the results to the process executor queue now
Former-commit-id: 1d15e48e0485817c4fad1fb7e117e03fd21d43ce
2013-12-07 12:04:08 -05:00
Jeremy Long
7faa9adf79 added a warning to the build output if CVEs are identified
Former-commit-id: bf7b1297a62ec37207fc6409ae62208c117bdb7b
2013-12-07 10:09:07 -05:00
Jeremy Long
6640df18ac added a warning to the build output if CVEs are identified
Former-commit-id: e45640edbdb30efaa9b15374a2d89850a61a01d3
2013-12-07 10:09:07 -05:00
Jeremy Long
1a5ce8f2e9 1.0.8 snapshot
Former-commit-id: f753b911d8f69537c4645d6b0de779d40e2d415e
2013-12-03 05:53:39 -05:00
Jeremy Long
b9436c0cab 1.0.8 snapshot
Former-commit-id: fde0982f64637014703bc2d82b1e90820c739a39
2013-12-03 05:53:39 -05:00
Jeremy Long
fc98d646a0 version 1.0.7
Former-commit-id: 3a17193efed4254ec0d4b566b01afcbda3e6af23
2013-12-03 05:38:31 -05:00
Jeremy Long
c730f7931f version 1.0.7
Former-commit-id: b21b74c1246d48394e51f628512aaa9bc3e9f3a4
2013-12-03 05:38:31 -05:00
Jeremy Long
573866feee improved multi-threaded processing and renamed things for clarity
Former-commit-id: df63ca32884130892e89533f022a5df0e79c62ad
2013-12-02 21:49:55 -05:00
Jeremy Long
ef6035b5be improved multi-threaded processing and renamed things for clarity
Former-commit-id: 5ae87f85859bb2b473a49ac6fa17035b26167fe0
2013-12-02 21:49:55 -05:00
Jeremy Long
ebf855f2a4 checkstyle corrections
Former-commit-id: e9b583b1b1dfb73f076e91c93f2942a65193bd30
2013-12-02 21:37:22 -05:00
Jeremy Long
8502c0f048 checkstyle corrections
Former-commit-id: c18cb3046e295e5369fbe9ac78fc689167f9a1d3
2013-12-02 21:37:22 -05:00
Jeremy Long
595452cf82 updated to throttle downloads and improve performance
Former-commit-id: b89aeeef3e8f163e9e4290eb7599104cad9b31d0
2013-12-02 20:06:50 -05:00
Jeremy Long
acc4d5201a updated to throttle downloads and improve performance
Former-commit-id: cfb82a51204834d132bdf3eecfca2088979e9c26
2013-12-02 20:06:50 -05:00
Jeremy Long
1439fd6104 limited the number of downloads that can happen at one time
Former-commit-id: 19b16dfd7f50faf9375b5b4efc01bfd5513d5b19
2013-12-02 09:10:12 -05:00
Jeremy Long
8248f31b20 limited the number of downloads that can happen at one time
Former-commit-id: b8e90fd953626d6cb4a07996a59fbae7b05917eb
2013-12-02 09:10:12 -05:00
Jeremy Long
f8771adbe7 fixed bug allowing more then a single vulnerability to be removed
Former-commit-id: fa4fcd9917323b3a0e676dc8f16e46bc4099c725
2013-12-02 09:09:16 -05:00
Jeremy Long
39c1624d42 fixed bug allowing more then a single vulnerability to be removed
Former-commit-id: aa2e87885e7a3ddc4947a81c3c3e104630630e23
2013-12-02 09:09:16 -05:00
Jeremy Long
4eb76e6da3 Updated to remove batch update and to remove the abstract class used to enable batch mode
Former-commit-id: bd4a2af794afaf3f04f480aa2295560427f690df
2013-12-02 05:43:54 -05:00
Jeremy Long
7eb82f2e84 Updated to remove batch update and to remove the abstract class used to enable batch mode
Former-commit-id: 2f33644d1a50a425c6ae5e1ca671156e4cdadf8e
2013-12-02 05:43:54 -05:00
Jeremy Long
a84b624fa5 version 1.0.7-SNAPSHOT
Former-commit-id: 3ad98df90ba32515f23eb6d55735c645de2e94af
2013-12-01 10:01:27 -05:00
Jeremy Long
df0d0d820a version 1.0.7-SNAPSHOT
Former-commit-id: fe4abc03628f5e904cb33dc4deeadc0259d2db4f
2013-12-01 10:01:27 -05:00
Jeremy Long
9ca198ee41 Version 1.0.6
Former-commit-id: 73c40956fe68c66d1b2b636610e7119db04b3228
2013-12-01 09:53:02 -05:00
Jeremy Long
e0c0d8bc04 Version 1.0.6
Former-commit-id: 84313712abb800f19859840292a48cd0c16d9342
2013-12-01 09:53:02 -05:00
Jeremy Long
d509523743 added ability to copy suppression data from HTML report
Former-commit-id: 60c9249f745cf6ce6649ec0e06caa351c0be31d3
2013-12-01 07:46:29 -05:00
Jeremy Long
97619d8ba1 added ability to copy suppression data from HTML report
Former-commit-id: 5429dc4a2738b5ea021cc33cf3d1efc68615f99f
2013-12-01 07:46:29 -05:00
Jeremy Long
338c70c289 fixed the loading of the suppression schema for validation during parsing
Former-commit-id: 6107226d54e3e7821140de4c04675e9713997924
2013-11-30 19:17:03 -05:00
Jeremy Long
80df96fd0d fixed the loading of the suppression schema for validation during parsing
Former-commit-id: 12b91a55dbfed4c9305888408b285ddf93ab9e84
2013-11-30 19:17:03 -05:00
Jeremy Long
e899ad8caa ensured resources are properely closed in finally block
Former-commit-id: f508620d90e43b35fc3d0a3c65b858ce52f731a9
2013-11-30 18:41:36 -05:00
Jeremy Long
579e76430d ensured resources are properely closed in finally block
Former-commit-id: d77e0085fc383a607ba8c55cacef60c8b9a9736c
2013-11-30 18:41:36 -05:00
Jeremy Long
c8c6e0350a Updated to support suppression file configuration
Former-commit-id: a84b9b51cf57e0449299d5815a5464b0f74e4a26
2013-11-30 18:17:58 -05:00
Jeremy Long
36dd7269e2 Updated to support suppression file configuration
Former-commit-id: 77c9cfcc307a682dc3786957b88e24afe9f7e33e
2013-11-30 18:17:58 -05:00
Jeremy Long
8faaf6a469 Updated to highlight the help and command line arguments
Former-commit-id: f03a036f1f8822fc3ea95d42d4007d62a5316f65
2013-11-30 18:13:11 -05:00
Jeremy Long
6596cb014f Updated to highlight the help and command line arguments
Former-commit-id: 85b13cf94e984c7ca8a88860da2c19c3c0bc16a3
2013-11-30 18:13:11 -05:00
Jeremy Long
1a0bd89c9d updated to support suppression file configuration
Former-commit-id: 0b6737e1f764c0bdf09d989edbd1c6258b437836
2013-11-30 18:12:43 -05:00
Jeremy Long
62ac63fd77 updated to support suppression file configuration
Former-commit-id: 7bffaef4bf07310c100ae570e44cbbc2fec9a12f
2013-11-30 18:12:43 -05:00
Jeremy Long
6a9308b514 Updated to delete refused CVE entries
Former-commit-id: d17a7dc43a742a86f1f9aafa5bf379b90f40d058
2013-11-30 17:23:23 -05:00
Jeremy Long
e6e8d96f12 Updated to delete refused CVE entries
Former-commit-id: b16207fa8dfa294a256402e12b278433293106d2
2013-11-30 17:23:23 -05:00
Jeremy Long
1b1f5203f1 updated to use UTF-8
Former-commit-id: a9b40a63905122413c896c8d41b777c11549544d
2013-11-30 17:23:00 -05:00
Jeremy Long
f80464ea31 updated to use UTF-8
Former-commit-id: 61fc6d7e5feeedbc74988b5a57639c3e298d01de
2013-11-30 17:23:00 -05:00
Jeremy Long
e2c78e546d checkstyle fixes
Former-commit-id: c5488d61958f91a8f47f4df4b2206f0193eed8dd
2013-11-30 10:00:22 -05:00
Jeremy Long
75b0c6f7a3 checkstyle fixes
Former-commit-id: ae5823ce9c01c4b36e6339fb57c39a47275d56dd
2013-11-30 10:00:22 -05:00
Jeremy Long
dc02757bc3 added support for suppression rules, initial version
Former-commit-id: 803669d51e0b36a17c3353e40c6ebd2d8197cd76
2013-11-30 08:56:44 -05:00
Jeremy Long
f95ce8c7b5 added support for suppression rules, initial version
Former-commit-id: c58bea577282155661b4c6e1991178ea07e7eb98
2013-11-30 08:56:44 -05:00
Jeremy Long
19a2265792 removed
Former-commit-id: e938fad7ee4ca21107c607a056d89df4565907c5
2013-11-30 08:55:45 -05:00
Jeremy Long
c991a3ccfd removed
Former-commit-id: f7ebd94d66bf90f4178b2bbe8d14e16bbaf7f7a2
2013-11-30 08:55:45 -05:00
Jeremy Long
7666ed070a added new services
Former-commit-id: 53f5e71bd6f16e1bddd606b72d1fdc9ca9917f06
2013-11-30 08:54:39 -05:00
Jeremy Long
a1d612b1f6 added new services
Former-commit-id: 8e4875fcca4241a57881429791d419e2256ff408
2013-11-30 08:54:39 -05:00
Jeremy Long
d088e4574e added new suppression schema
Former-commit-id: 7e828e04ad79f41704a38b3aaa25fbb4b4c602f8
2013-11-30 08:54:08 -05:00
Jeremy Long
d3cbd20c5e added new suppression schema
Former-commit-id: b519078a17700369646b686ce570cca74e71ea7a
2013-11-30 08:54:08 -05:00
Jeremy Long
dd8798e52b added new package
Former-commit-id: 2a95b095f3b3a8aba014f259e54f5a9f1e218203
2013-11-30 08:53:46 -05:00
Jeremy Long
cff4f29ba4 added new package
Former-commit-id: 966169962b5ef6f51366048aa7734f41ac162e8a
2013-11-30 08:53:46 -05:00
Jeremy Long
623d992e34 added new exception
Former-commit-id: b3fa50b10c1888cf88f7ed265a670d47b29038b3
2013-11-30 08:52:49 -05:00
Jeremy Long
dc08363360 added new exception
Former-commit-id: 6e6e82a1bb9b69cacabfabcdfa110a1d4a63e0d6
2013-11-30 08:52:49 -05:00
Jeremy Long
420f9a068d added test data
Former-commit-id: 912afc4bc9990f98a226c1caf4f99f9e25b0fb1d
2013-11-30 08:52:15 -05:00
Jeremy Long
a2aa8d9336 added test data
Former-commit-id: bdca1bcf6a146577abab09d415ab65183bac3322
2013-11-30 08:52:15 -05:00
Jeremy Long
864807196c updated getFile to return null if property is not defined
Former-commit-id: b9373294be1860ecc0bbe0193fe2704f0678db69
2013-11-29 07:45:41 -05:00
Jeremy Long
ab2bfa951c updated getFile to return null if property is not defined
Former-commit-id: 3dbd8d356cc509619fe8caa9539a4d01906aa3f9
2013-11-29 07:45:41 -05:00
Jeremy Long
a71c8cef83 renamged getFile to getDataFle (settings class)
Former-commit-id: 9a4fceaf67e3d453b13794de2a14182b877ff42a
2013-11-28 06:22:50 -05:00
Jeremy Long
e871d37044 renamged getFile to getDataFle (settings class)
Former-commit-id: 8b632f78685d0a66bc061bcefd46de4b56d45347
2013-11-28 06:22:50 -05:00
Jeremy Long
f34a3e421d renamged getFile to getDataFle (settings class)
Former-commit-id: 26f07b57ffa3462c6c43ef920e7964961d24a592
2013-11-28 06:22:02 -05:00
Jeremy Long
e32ee71bea renamged getFile to getDataFle (settings class)
Former-commit-id: 16a7e7f6e27026faade75351b34e54ebdc977f8c
2013-11-28 06:22:02 -05:00
Jeremy Long
0440a4aa7e renamged getFile to getDataFle (settings class)
Former-commit-id: 792c7dd2297616b705b4d93a3ee03ff00b3078e2
2013-11-28 06:20:52 -05:00
Jeremy Long
3bc8823e54 renamged getFile to getDataFle (settings class)
Former-commit-id: 940c970878ca7236892e30f74eab37f5eacae4e6
2013-11-28 06:20:52 -05:00
Jeremy Long
0faa49d0e5 renamged getFile to getDataFle (settings class)
Former-commit-id: 18ff20a2369b7ae71c6cce8bb49d258718649eaa
2013-11-28 06:20:05 -05:00
Jeremy Long
a4b9dfaf1c renamged getFile to getDataFle (settings class)
Former-commit-id: 79f2655e3c4f5d53bdb076ea6907baec03701dba
2013-11-28 06:20:05 -05:00
Jeremy Long
9dfc25559e renamed getFile to getDataFile and added a no frills getFile function
Former-commit-id: 26c515de47c1ec510c1249e7caab0b69ef189523
2013-11-26 05:35:40 -05:00
Jeremy Long
c7c85ac676 renamed getFile to getDataFile and added a no frills getFile function
Former-commit-id: 73c2b4d2f5c153bd49873b153e4bbd31ea8b66f8
2013-11-26 05:35:40 -05:00
Jeremy Long
ee6dd0e794 added key for suppression file
Former-commit-id: 6818ec53ed3174592ebdec3e7db6841791c9b5cc
2013-11-25 19:34:49 -05:00
Jeremy Long
1af445a390 added key for suppression file
Former-commit-id: f4f13fb2319d5a8851d46b35a87b8d08f90b00d8
2013-11-25 19:34:49 -05:00
Jeremy Long
10824e9731 updated schema
Former-commit-id: b573be465ddcefd10fc1f14ef8e40549b31d4617
2013-11-25 19:34:07 -05:00
Jeremy Long
4236a2e6f7 updated schema
Former-commit-id: 8a78c1f646d48aa61d46f62e36bfdf34f8818a1e
2013-11-25 19:34:07 -05:00
Jeremy Long
edcf708945 checkstyle corrections
Former-commit-id: 01bfb4aae9a49f002d9633093b6b7a2385470214
2013-11-23 22:38:55 -05:00
Jeremy Long
47e58942f8 checkstyle corrections
Former-commit-id: 2a13933e132d41db6143e214d51efaa3ca20a765
2013-11-23 22:38:55 -05:00
Jeremy Long
c96375a16c initial generated version
Former-commit-id: dac89806d53350b47a4315b92e7d26ce75c9fa4a
2013-11-23 22:07:11 -05:00
Jeremy Long
f854ed50d6 initial generated version
Former-commit-id: 6d97f9f7a43a2d9f8bb605c38b087f1e95e34462
2013-11-23 22:07:11 -05:00
Jeremy Long
5cbf49a3dd initial version
Former-commit-id: 7a4a699b6de99d67ee5fd5bd1b10d991f9845d2d
2013-11-23 22:06:27 -05:00
Jeremy Long
2933a173a2 initial version
Former-commit-id: 11e93c9a8f356483ead2b5c5ba0264fdde5a1f94
2013-11-23 22:06:27 -05:00
Jeremy Long
eebd0491a3 initial version
Former-commit-id: 65a4d406c95101cbfc7cabb8db7cb1f5c2df768c
2013-11-23 22:00:07 -05:00
Jeremy Long
39c45cd329 initial version
Former-commit-id: 8f31fa2e59679aa1c070e8e03458f58797f947d6
2013-11-23 22:00:07 -05:00
Jeremy Long
8c38a0e6cc removed call to BatchUpdateTask
Former-commit-id: 90e72fcc67d2c2773afb6b4e8a1ba2bef3636a19
2013-11-23 21:59:11 -05:00
Jeremy Long
93e6473828 removed call to BatchUpdateTask
Former-commit-id: 134c6ac5eec282b142febd1341ccdb9936219eb7
2013-11-23 21:59:11 -05:00
Jeremy Long
5b9fe065d7 deprecated batch update
Former-commit-id: ff25e317e24ebe0f112e4483b9bf7b9b0bfbd187
2013-11-23 21:58:18 -05:00
Jeremy Long
2cf96bef52 deprecated batch update
Former-commit-id: bf654a174500c4727ec1d0b66368cf06fdabee54
2013-11-23 21:58:18 -05:00
Jeremy Long
8567610ddc split out core DB functions into a base class to support storing settings in the database
Former-commit-id: 88abaeb5ed81793d0f15462b5bf1d9b7ad9387dc
2013-11-19 21:05:12 -05:00
Jeremy Long
3850ef4355 split out core DB functions into a base class to support storing settings in the database
Former-commit-id: 0c9d507e2e9e229691965aca09ef9f6c9e7e0965
2013-11-19 21:05:12 -05:00
Jeremy Long
52c186868e added drop table if exists settings
Former-commit-id: 17aa304097415c585e7812d81ec3e01514cb5ad2
2013-11-19 21:04:16 -05:00
Jeremy Long
d29f989c22 added drop table if exists settings
Former-commit-id: 5ea0128271f3a7e2985eadd330bfa02c4db21dc3
2013-11-19 21:04:16 -05:00
Jeremy Long
2699f8ee85 removed unused code
Former-commit-id: 3f2c0f3dab1d6a129eabdcbdaaa2277d48cdbe33
2013-11-17 22:44:33 -05:00
Jeremy Long
0e31d503d0 removed unused code
Former-commit-id: 1f6158daa812a15baf0d88ee689b49681e67aeed
2013-11-17 22:44:33 -05:00
Jeremy Long
ebaf33a36f fixed imports
Former-commit-id: b2ecd90cd34a5c249874633f396a63f813e18505
2013-11-17 22:44:24 -05:00
Jeremy Long
8c2d552238 fixed imports
Former-commit-id: 9a2c867a83a67bf727381d9c717846993ae56fe7
2013-11-17 22:44:24 -05:00
Jeremy Long
b0f3c76f76 fixed logging statement
Former-commit-id: bc04e34e4c39e739acf8bac7735a9e20cebc76a4
2013-11-17 22:44:03 -05:00
Jeremy Long
1b6cb61f8a fixed logging statement
Former-commit-id: d2f20844c229d73321b3832d9dec22f4e7a55e5b
2013-11-17 22:44:03 -05:00
Jeremy Long
acd118a58c removed references to CPE data directory as this has been moved to a RAMDisk directory
Former-commit-id: 8f4dafe9a687f254bec75703a1f392333cfbde54
2013-11-17 22:40:51 -05:00
Jeremy Long
b6e0fa9085 removed references to CPE data directory as this has been moved to a RAMDisk directory
Former-commit-id: 678eab78293357e3e89566917e73f9b5d3313ab5
2013-11-17 22:40:51 -05:00
Jeremy Long
dff0b497b0 introduced property for max thread size
Former-commit-id: 4b2175859ada2e8d375486627235ea8892f8d7ce
2013-11-17 22:37:30 -05:00
Jeremy Long
1f983d502e introduced property for max thread size
Former-commit-id: 5d48fbedf4b71be52fb1c6eefe3e7b02aa4d5082
2013-11-17 22:37:30 -05:00
Jeremy Long
e34f51a1b0 introduced property for max thread size
Former-commit-id: b3516d41bb6aebb910a73329f2bb102d9df54903
2013-11-17 22:36:41 -05:00
Jeremy Long
13637be1aa introduced property for max thread size
Former-commit-id: e349329de9a98335ccfc4c8216993a1a6693c447
2013-11-17 22:36:41 -05:00
Jeremy Long
e82e996fe5 updated to make downloading of the NVD CVE a multi-threaded operations
Former-commit-id: 4fea16628e8a7a3c5bfd1418129e0ec2d2d97e39
2013-11-17 22:30:31 -05:00
Jeremy Long
8f22740e07 updated to make downloading of the NVD CVE a multi-threaded operations
Former-commit-id: 28e7467020db617007e89018d2d9fed8de335181
2013-11-17 22:30:31 -05:00
Jeremy Long
238abd009d initial version of Callable Download Task - used to make the downloads multi-threaded
Former-commit-id: a13d22e4197e1e9c2dc772767015871925d61901
2013-11-17 22:29:53 -05:00
Jeremy Long
03d5cc7521 initial version of Callable Download Task - used to make the downloads multi-threaded
Former-commit-id: f3f7e880e1fabece990d2ed14bd459a3ffe8c955
2013-11-17 22:29:53 -05:00
Jeremy Long
c9f9e2b97d updated data
Former-commit-id: 74473ad6f21f47c06264819a4733ba67de2996b7
2013-11-17 20:50:31 -05:00
Jeremy Long
25e929c10e removed un-needed test
Former-commit-id: 912d30a7a6b29b21531a525e1c53b04a922a1503
2013-11-17 20:50:07 -05:00
Jeremy Long
8ca4ede403 removed un-needed test
Former-commit-id: 175840ea9fda4a65db61c73d36fdd33c167d7380
2013-11-17 20:50:07 -05:00
Jeremy Long
0e9f5978e1 updated lucene version number
Former-commit-id: cb826e6fac1b2ba1bd04b68b0929b3dc7ec0b22f
2013-11-17 15:21:38 -05:00
Jeremy Long
b50be86615 updated lucene version number
Former-commit-id: cf381ccd9365fa184a94e5a3c860f7c3b180a32a
2013-11-17 15:21:38 -05:00
Jeremy Long
1024b11eeb updated functionality and incremented database schema version
Former-commit-id: fdf58314c5357a43828e6da1e95a5a88f15d1472
2013-11-17 15:20:53 -05:00
Jeremy Long
fe1a8f4425 updated functionality and incremented database schema version
Former-commit-id: 64184f1362e5725c2e9c5d228850b547981e0c75
2013-11-17 15:20:53 -05:00
Jeremy Long
a390418f83 new exception type added
Former-commit-id: 1cae76bac4c92af9e1d98fd7a8c2a10ce3bd9edd
2013-11-17 15:20:01 -05:00
Jeremy Long
dd472c1322 new exception type added
Former-commit-id: ac3650af279b14e5a32add2f6894ad60177fd243
2013-11-17 15:20:01 -05:00
Jeremy Long
182c131ee0 initial version of cpe memory index
Former-commit-id: d4c002c275928b09d63d2ada34ed85fed0a331d3
2013-11-17 15:19:26 -05:00
Jeremy Long
a636adec10 initial version of cpe memory index
Former-commit-id: 5f0d1bb0110361f99a60ad4476c43c1ad1c244bf
2013-11-17 15:19:26 -05:00
Jeremy Long
1d5d104bbc updated version of lucene
Former-commit-id: 2c92ad10267847c3bee362da91151a1b449bd800
2013-11-17 15:18:55 -05:00
Jeremy Long
e3960445ae updated version of lucene
Former-commit-id: db3174428fcb3e789426bec5c9776f3a4b3f4bc8
2013-11-17 15:18:55 -05:00
Jeremy Long
53cf0863d0 updated the version of lucene used
Former-commit-id: 5aec5c97c540b24246c7847344b05bd268c5988b
2013-11-17 15:18:26 -05:00
Jeremy Long
c631b7cd8a updated the version of lucene used
Former-commit-id: adc5e1361c68abf997b0cef401441bf62a169c56
2013-11-17 15:18:26 -05:00
Jeremy Long
5bc64c6925 updated to use the CpeMemoryIndex
Former-commit-id: 0e309506e5503c5960e381ebebcd39fee7ab01b5
2013-11-17 15:17:56 -05:00
Jeremy Long
bb2bf12808 updated to use the CpeMemoryIndex
Former-commit-id: 7cd46e9de48661a1ee9c213889cf3a9d51f1517e
2013-11-17 15:17:56 -05:00
Jeremy Long
c2f9d3f455 updated ensureDataExists()
Former-commit-id: b0878d9d6077a199a639d6518cffffadcb848e7b
2013-11-17 15:17:21 -05:00
Jeremy Long
db95dfe208 updated ensureDataExists()
Former-commit-id: 2ceaa062391abd1a5e74aa5b0cb13de1d7c896e1
2013-11-17 15:17:21 -05:00
Jeremy Long
ddd93f518d updated lucene version
Former-commit-id: 0d315d17205781233a63e57ac5826e6b0a2ba8ee
2013-11-17 14:56:58 -05:00
Jeremy Long
86d052e51e updated lucene version
Former-commit-id: 3611f6887deda4c14caf5fc9ea0c9c8b7762bf0c
2013-11-17 14:56:58 -05:00
Jeremy Long
6d7de79fa9 added constant Version so on the next upgrade this only needs to be updated in one location
Former-commit-id: 2131a7bae9cc75f7d7d727f0ed191f6d90d426d2
2013-11-17 08:08:59 -05:00
Jeremy Long
fb55b9db17 added constant Version so on the next upgrade this only needs to be updated in one location
Former-commit-id: 172abf4686300b258b93026e404276fbf46f7dd0
2013-11-17 08:08:59 -05:00
Jeremy Long
df0f05197a added constructor for DatabaseException(ex)
Former-commit-id: 63b28cecfd5ce5b83ac3353aec0c3c74709532ed
2013-11-17 08:08:01 -05:00
Jeremy Long
ad3ad81c1e added constructor for DatabaseException(ex)
Former-commit-id: 178a4f2ea8d71c148892ab95dc480e88b1186105
2013-11-17 08:08:01 -05:00
Jeremy Long
e3186e6c4c updated javadoc
Former-commit-id: 3b650e1cada9aa78c1b7995ae15286f829e25d6a
2013-11-17 08:00:32 -05:00
Jeremy Long
dccb84ded8 updated javadoc
Former-commit-id: 03c6ba2d0d9cc03f3b9efd6fdb9a8d4972ac4f5d
2013-11-17 08:00:32 -05:00
Jeremy Long
18bca6352d updated javadoc
Former-commit-id: eaf307a386981f0f5e6b63be92350edaea9294ed
2013-11-17 07:59:23 -05:00
Jeremy Long
510c693871 updated javadoc
Former-commit-id: 7ee24e9da15877c3138380c92c29c20757bb78fa
2013-11-17 07:59:23 -05:00
Jeremy Long
fd7299c86f added the ability to retrieve the entire list of vendor/product combinations
Former-commit-id: a1e09bf566f09cb2de1ba800c56628a6e49ccd51
2013-11-16 23:19:52 -05:00
Jeremy Long
8696df12ac added the ability to retrieve the entire list of vendor/product combinations
Former-commit-id: c15c6727f00a18c58590b9a1d6cea4767ca12c5f
2013-11-16 23:19:52 -05:00
Jeremy Long
f572d32f5b no-op
Former-commit-id: 219a41ed15bd973c7f6f248ffa4bb6e74c82e2cb
2013-11-16 23:05:59 -05:00
Jeremy Long
d56e0b0eba no-op
Former-commit-id: 0c024f815e7a766b99473f40086f2cfeb4f97aa8
2013-11-16 23:05:59 -05:00
Jeremy Long
e534d41d81 no-op
Former-commit-id: c5d0631d3692122bc1edbbc920af3a7a871520b9
2013-11-16 23:05:46 -05:00
Jeremy Long
29d77b2f2c no-op
Former-commit-id: 3388d8fab9ab7c35b26b4e374349bf3008aa84c0
2013-11-16 23:05:46 -05:00
Jeremy Long
a641c9858c removed CPE from database updates
Former-commit-id: 0243c4b17c672afd10f77db9edb8a92ea9eeb764
2013-11-16 23:05:23 -05:00
Jeremy Long
4e131cd059 removed CPE from database updates
Former-commit-id: d2054cf9b9b4a28fba11ebb5c9ed565263bc4ef8
2013-11-16 23:05:23 -05:00
Jeremy Long
c8e339a58d version 1.0.6-SNAPSHOT
Former-commit-id: 3ee701ebd5869f9a4ba43933cba349e392310869
2013-11-16 13:48:51 -05:00
Jeremy Long
4c1f3948a3 version 1.0.6-SNAPSHOT
Former-commit-id: c8eb084b1b9de6b8bfa5432b1db33f417dd47572
2013-11-16 13:48:51 -05:00
Jeremy Long
c40ff67704 version 1.0.5
Former-commit-id: bc5f1fb33d118b811bc8ee15808d8ee320475766
2013-11-16 13:42:19 -05:00
Jeremy Long
af6ac8bd4f updated import list to remove .* imports
Former-commit-id: a73e57c0b4d3194dcbd44071f99dbf6d568bd26e
2013-11-16 13:18:11 -05:00
Jeremy Long
70211a8407 added javadoc comments
Former-commit-id: ad59c4d7e8c5b7f1e010fc53ce9425851da286e4
2013-11-16 13:17:34 -05:00
Jeremy Long
4d6b83425b minor checkstyle fix
Former-commit-id: e9f54697859f68f2bf067c4bb0ec9738ba8c2579
2013-11-16 13:12:05 -05:00
Jeremy Long
985396aaf9 suppressed null warnings
Former-commit-id: 6e249fd024f1674242f2660f56ffa96edccfe80f
2013-11-16 13:09:33 -05:00
Jeremy Long
d86c14d3a6 fixed bug in verbose logging
Former-commit-id: bfa66668d3e7b98b651814824562962bb2af4ec6
2013-11-16 13:04:05 -05:00
Jeremy Long
3bdb3a6b87 fixed string format newline character
Former-commit-id: fee94cf75cdbfe5e52f840514e150a9fa6cef510
2013-11-16 13:03:46 -05:00
Jeremy Long
8dac57d4cf added information about configuring the verbose log file
Former-commit-id: 90e9c7ea24698d8a1a8b5c52828b7bc64dda8b4e
2013-11-16 09:26:22 -05:00
Jeremy Long
a91e7b9ed0 added the ability to retrieve the number of documents in the index
Former-commit-id: 9a430f2a1805669d3ef2450d98ca7c2b6ed12ee3
2013-11-16 09:18:02 -05:00
Jeremy Long
220b2c9a2a Updated error reporting if data does not exist
Former-commit-id: 72db8d8232a2f70c2fc46af095e531b913d1ca38
2013-11-16 09:17:13 -05:00
Jeremy Long
06bc8ed4a4 Updated error reporting if data does not exist
Former-commit-id: b09181a3429f713f084e905e608431f437e60e60
2013-11-16 09:16:35 -05:00
Jeremy Long
648863d21b updated configuration settings
Former-commit-id: 3b84fd1eb72ccb772ec1ee6f808876fc235eb9ca
2013-11-08 19:15:44 -05:00
Jeremy Long
3232e60467 Merge branch 'master' of https://github.com/jeremylong/DependencyCheck
Former-commit-id: baaa780bc99e81b6ae0eacdb7736898d86cd906a
2013-11-02 07:19:49 -04:00
Jeremy Long
da81ea4e57 updated base class of test case to ensure data exists for analysis
Former-commit-id: 4abb5c7c2898a637b7cac759a2156f401a02d2d4
2013-11-02 07:18:26 -04:00
Jeremy Long
42baec7c72 added support for tar and gz files
Former-commit-id: 7027891fc6ed7959a7eca4f635b6a58ddc91bf05
2013-11-02 07:02:02 -04:00
Jeremy Long
1accdfe2e6 added new exception type
Former-commit-id: 06f91e8f71d943993b8a6c557350dc29c682f175
2013-11-02 06:49:17 -04:00
Jeremy Long
f625653b30 added license file for commons-compress
Former-commit-id: b112f7151061bd5f54f6b7c7276e30662bded64a
2013-10-27 14:29:18 -04:00
Jeremy Long
2682187fa3 updated test cases
Former-commit-id: b828cccfbc3ddbdb72fa1eacfbd7d500e7fa70be
2013-10-27 14:28:47 -04:00
Jeremy Long
090f3fafa9 added additional test files
Former-commit-id: 21dc900da9b472efc9f80bc0466bbbf4d4802c8c
2013-10-27 14:28:26 -04:00
Steve Springett
de81ed0c61 Merge remote-tracking branch 'origin/master'
Former-commit-id: ae263584f1cbbddfbc9dde165e2c3ed440454f19
2013-10-27 12:42:41 -05:00
Steve Springett
49465888b2 Adding support for proxy authentication to core, cli, ant and maven.
Former-commit-id: 1461b13a3fd8c0ca309e56afb67148fc8de31e63
2013-10-27 12:42:27 -05:00
Jeremy Long
1555185d60 added additional verbose logging capabilities
Former-commit-id: 8ea1b36130c5dbc86641768de929e1b0f3e928c6
2013-10-27 09:13:21 -04:00
Jeremy Long
e5235bd714 added false positive checks for axis vs axis2
Former-commit-id: 69bcb7c2921fe3713c3ad548cd2ceb101b3c0ce2
2013-10-26 17:21:14 -04:00
Jeremy Long
1b4fe6135f attempted to fix minor bug of files not being extracted due to a failure when calling mkdirs()
Former-commit-id: 2ca6840f3198adb11df764bf11a96c23885f3217
2013-10-26 17:19:55 -04:00
Jeremy Long
9481b29d6b incremented version to 1.0.5-SNAPSHOT
Former-commit-id: 9ab1791c78c5bb7331c598c60bec0e39d6ba650e
2013-10-21 21:28:04 -04:00
Jeremy Long
20115e6557 version 1.0.4
Former-commit-id: 0b789dd5afd9cceafc7cce1d651c8ebd376cd79a
2013-10-21 21:16:20 -04:00
Jeremy Long
ee47136fb4 initial version
Former-commit-id: 4fb4c44bee8cfab4ff9ab5ee1aeee3945aca2532
2013-10-20 21:29:12 -04:00
Jeremy Long
83dece68fc moved logging initializatoin to utility class
Former-commit-id: c7979aaa8018355b65788b6b31827910ffe2fd35
2013-10-20 21:28:45 -04:00
Jeremy Long
fce7083e28 updated to make tests go faster. Only downloading recent CVE data files
Former-commit-id: 610b6b6854835017e040d0f43e139c7607e78918
2013-10-20 21:28:00 -04:00
Jeremy Long
5268375153 added anoter mergeProperties to take a File object instead of a String path
Former-commit-id: 97598e74ab61752ab42793bd233e3010321fb86a
2013-10-20 21:27:18 -04:00
Jeremy Long
3598f59123 updated initialize to not ignore errors generaged when creating directories
Former-commit-id: eafcc5c7c7e5e2cad4ec1a2639b1aa95215227d6
2013-10-20 21:26:18 -04:00
Jeremy Long
557f491a7e minor update to logged message
Former-commit-id: d00002337ca34c75d1c193473fbe69af4145d7cc
2013-10-20 21:25:25 -04:00
Jeremy Long
5aa876da72 minor change to FileHandler.pattern
Former-commit-id: 3a792f63ffbae182a7687c9eabfe70191172ebd9
2013-10-20 21:24:42 -04:00
Jeremy Long
7e7a66595b added cli argument to enable verbose logging
Former-commit-id: 261ad7be19eb3058d5bc9521a5c462c2d2ed5f44
2013-10-20 21:23:59 -04:00
Jeremy Long
c429bdf139 moved logger setup to utility class
Former-commit-id: e2c1e20f3538423ccd7428b11bd347873e5713d1
2013-10-20 21:23:13 -04:00
Jeremy Long
22d22f3afa moved logger setup to utlity class
Former-commit-id: 645b08fa4695a3504049d6b3a55cc4fa213b30a7
2013-10-20 21:22:34 -04:00
Jeremy Long
f5845908b9 improved logging
Former-commit-id: 889e0938642ecc754b02ad14a8ddaf457c955425
2013-10-15 21:03:10 -04:00
Jeremy Long
138ce1c69a fixed npe
Former-commit-id: 235ae4ebeea96e9b261ef5d578324b2d60e927bc
2013-10-15 20:34:34 -04:00
Jeremy Long
8366ec5831 version 1.0.4-SNAPSHOT
Former-commit-id: 13eb567ad735cb24b9d1f963daf70545fd2a63fb
2013-10-14 14:05:15 -04:00
Jeremy Long
383f0a7f43 version 1.0.3
Former-commit-id: 76e31ea08acce6b13245f0b63c6fa825b2c69020
2013-10-14 13:45:43 -04:00
Jeremy Long
22e5a5cafd Merge branch 'master' of https://github.com/jeremylong/DependencyCheck
Former-commit-id: 232fd9692b90f77e6cc445f2baddbeb29d38dcde
2013-10-13 14:06:46 -04:00
Jeremy Long
8d6255aa55 updated data
Former-commit-id: 538c82b995c6da81df0fd389aa179f8c81fd6dd9
2013-10-13 14:06:14 -04:00
Jeremy Long
8fd6f7add9 added ftp:ftp as a false positive for Java projects
Former-commit-id: dbc2c6dc2d2d2b439f0e148f5c8ad17fe6ee4a11
2013-10-13 14:03:52 -04:00
Jeremy Long
623c2cb9f1 fixed bug 24 - short package names are no longer added as evvidence
Former-commit-id: cab8910b3aba41a8b7205491ef1e669b25ec87a9
2013-10-13 13:19:56 -04:00
Jeremy Long
259e87442d changed logging level to info
Former-commit-id: 27816e1cd3ccdcf57e0e741ca1b82eee85b293b6
2013-10-13 13:18:42 -04:00
Jeremy Long
8655e025a2 changed logging level to info
Former-commit-id: 529bd317072f4a2f2df37038ab24e0254c0f20b0
2013-10-13 13:18:29 -04:00
Jeremy Long
aba2a9f504 changed saveEntry to a private method
Former-commit-id: 25cc3dc1b825772c0ad56b0f5e66ff94fa6c215a
2013-10-10 18:20:59 -04:00
Jeremy Long
9aa76bd088 removed unused variables (pmd)
Former-commit-id: 7386857733fb5ba4b3c860a0ded9573b6d840261
2013-10-09 09:22:18 -04:00
Jeremy Long
10faef62fa checkstyle corrections
Former-commit-id: 784b14351589b8d4184e931a2b9bf680af2a7283
2013-10-08 20:59:30 -04:00
Jeremy Long
6b291a5ce5 refactoring update tasks
Former-commit-id: bf5280fd1e2e47b3958a75c32af444be9535dc05
2013-10-08 15:19:22 -04:00
Jeremy Long
164f1dcfd4 checkstyle correction
Former-commit-id: 7cbdead3fe54729dd17b77d0688fce0b6b3ad938
2013-10-08 15:18:32 -04:00
Jeremy Long
b7d6d027d3 checkstyle correction
Former-commit-id: 7768a0eeb08bc06bff07e94e1a4da34370adda16
2013-10-08 15:17:52 -04:00
Jeremy Long
c4869f1917 checkstyle correction
Former-commit-id: c74fc3538a9fa0d41dfe04873a535b3f622721aa
2013-10-08 15:17:03 -04:00
Jeremy Long
79c31b5f54 Improved update process, including initial lock support
Former-commit-id: d6fc00406765f4680d900eb0474fed9ade727a0a
2013-10-08 10:58:29 -04:00
Jeremy Long
89e99219d7 removed call to system.out
Former-commit-id: a0cdcc8b975657c06606c9a2467a4c732fee82e5
2013-10-08 10:48:35 -04:00
Jeremy Long
a9b6c68ce3 added the creation of the DataStoreMetaInfo in the constructor
Former-commit-id: 4ca8a0a8ad66aeb15dc410baa20d60dce88c1ecd
2013-10-05 07:42:08 -04:00
Jeremy Long
0563077fb9 fixed bug with delete on exit deleting updated files
Former-commit-id: d26151e944f5af674c256a37694c1e5eaed4b8cc
2013-10-05 07:40:39 -04:00
Jeremy Long
e2f174e92e added additional null checks
Former-commit-id: 74979677f056de15cdcb1322dfd6c0fcd4ceb9a3
2013-10-03 09:01:59 -04:00
Jeremy Long
861bdb47ed implemented necassary test case
Former-commit-id: d1115558dc86f88372ee815300c688f719934f18
2013-09-27 18:30:22 -04:00
Steve Springett
9f9e2d12c4 Fixed minor issue with xsd so the xml report would validate. Added unit test for xml report generation. Adding DependencyCheck.xsd to jar.
Former-commit-id: 5dc93c191f001e92b92a1eb1b02e10e33719ca08
2013-09-23 17:51:22 -05:00
Jeremy Long
03f504cadc seperated functionality to make the update procedure easier to understand
Former-commit-id: a39a0cc6adfd5e3856df3700b698e1ea5e7969a9
2013-09-22 21:52:31 -04:00
Jeremy Long
182c7e827b added additional checks for false positives (apache maven and cvs:cvs)
Former-commit-id: 3a5d19ebd8d432883b5edd7ae552c47f6a16ca68
2013-09-17 10:42:54 -04:00
Jeremy Long
61e0cfc979 added additional test dependencies
Former-commit-id: 65174625469145c3959250d0ffa397666876a2f1
2013-09-17 10:42:23 -04:00
Jeremy Long
3ea3f01394 updated data
Former-commit-id: 4234203ea0c0d3b6262f9f7955ffedb2904ee705
2013-09-17 10:41:43 -04:00
Jeremy Long
fc5b8ca1e5 changed html encoding to xml encoding
Former-commit-id: 33b719b306ee10da411dea91705b03cfcec73261
2013-09-14 10:20:40 -04:00
Jeremy Long
5d67b2f9dc corrected a typo in the report
Former-commit-id: 24c2b1787cc76e1d051091f4527a7e2162a4875a
2013-09-14 10:20:15 -04:00
Jeremy Long
bcf4fd9e93 updated integration test to generate all reports
Former-commit-id: b1878b71606b1ae3c2c8e247c874cc5b989f5b2e
2013-09-14 10:19:38 -04:00
Jeremy Long
5b5faad553 changed https links to http for github pages
Former-commit-id: 1278d25c892a04f25fc3537c6f9b8bb74b81f94f
2013-09-09 10:25:22 -04:00
Jeremy Long
5299261d18 updated links to bintray
Former-commit-id: 2fd6d382fbe06baa882e5e75e9a1e33cfa92f317
2013-09-09 10:09:20 -04:00
Jeremy Long
f852851886 updated info
Former-commit-id: f636fb4794c853d9e9e961a099c13bc6bce02b76
2013-09-09 10:02:53 -04:00
Jeremy Long
20a4d9adb8 updated info
Former-commit-id: f99e1ce85f822b4dbdc28591016d1c66940d7612
2013-09-09 10:01:00 -04:00
Jeremy Long
13997cd282 updated logic to make specification-version lower quality evidence
Former-commit-id: 7f29adc8590243ac6a8719a391318fa3818e27eb
2013-09-05 21:34:33 -04:00
Jeremy Long
965429296b updated version to 1.0.3-SNAPSHOT
Former-commit-id: bfe7bc1f483ce3d5cabfb33d7180696d177a1e8f
2013-09-03 21:47:53 -04:00
Jeremy Long
d9750ce4dc Updated to version 1.0.2
Former-commit-id: 7151b290e4e333f2fbc273d5d04cb82d8f71184e
2013-09-03 21:13:01 -04:00
Jeremy Long
d0fb41e582 fixed git merge problem
Former-commit-id: b1d18d5ce568d266837ddf06174b15d7462b8fcd
2013-09-02 16:19:47 -04:00
Jeremy Long
f7a83d5a60 fixed merge issues
Former-commit-id: fe669abc52c1cbcdec9de8bc1693cea12d9abe0c
2013-09-02 15:54:35 -04:00
Jeremy Long
fc52462df4 resolved merge conflicts
Former-commit-id: d0ce45a374336184101179b73b6019fb1240b9b3
2013-09-02 15:42:24 -04:00
Jeremy Long
119804794f updated site information
Former-commit-id: c4c0356cac5adb52285b14db4a6b7651f9ce7b76
2013-09-02 14:34:46 -04:00
Jeremy Long
f23bd0b268 fixed base test case to ensure data exists for other tests
Former-commit-id: f5c7b0a2c5d87fce004c050744b18ed4baf1d306
2013-09-02 13:03:00 -04:00
Jeremy Long
d6f61b4faf updated site
Former-commit-id: ef0b47bbbef1b3d68d6005a08ac9e25c233756b9
2013-09-02 13:02:35 -04:00
Jeremy Long
4e4b7a1c39 ensured the properties file was closed after being read
Former-commit-id: bee36a9892968a5455508e2275fdb1787e04c1c2
2013-09-02 12:48:17 -04:00
Jeremy Long
376bfb6799 updated site information
Former-commit-id: 9c60f1219a84ad5e58beb0f055a628e951c8d924
2013-09-02 12:44:24 -04:00
Jeremy Long
12bdba9a9c updated site information
Former-commit-id: 032930907c01ad54b0d03004ad7b5e73b541c397
2013-09-02 12:42:44 -04:00
Jeremy Long
33fa1e1350 updated documentation
Former-commit-id: d8912348f3b80e1d03f66b3c57a9d6b84a94be92
2013-09-01 15:35:53 -04:00
Jeremy Long
94e1a4f793 minor checkstyle updates
Former-commit-id: dc9c50f0627222169eceb94a44b8b4b4fa1af267
2013-09-01 15:11:49 -04:00
Jeremy Long
2603d960b7 moved test data.zip to parent so it can be used by other projects
Former-commit-id: 6de6b6231df68d64837a03c4204e58cfc74a54f3
2013-09-01 12:22:08 -04:00
Jeremy Long
b8433c4ea7 moved test data.zip to parent so it can be used by other projects
Former-commit-id: 5d0e82fcaf170af7086de306abc9eb2ed488bc79
2013-09-01 12:21:56 -04:00
Jeremy Long
fc30aeea61 updated Settigns to get the temp directory
Former-commit-id: d9a1e89ce829ab06e5aa1cd454184966d1e4b115
2013-09-01 07:46:43 -04:00
Jeremy Long
01d6e1f14d updated tests to utilize temp directory
Former-commit-id: 984f69e2528d37586a2d7d981d17671e17e7ca0d
2013-09-01 07:27:13 -04:00
Jeremy Long
3b4a65deaa updated to work with the new zip file and folder structure
Former-commit-id: 4ab18e5d93a71124aaf57d1d0b6945c7516e4463
2013-08-31 07:35:20 -04:00
Jeremy Long
2ec5ec78a9 removed unused imports
Former-commit-id: fee44850bba2b1af19989bc14aef99a38e725185
2013-08-31 07:04:17 -04:00
Jeremy Long
6b416b8494 added a test case to test batch update without a modified url
Former-commit-id: 5d10d888c927f86a76f983011cab47d4c2725333
2013-08-31 06:48:59 -04:00
Jeremy Long
eac470e081 updates to batch update mode to allow batch updates without a modified URL
Former-commit-id: 5e8ff7c0d9c880f2421f020f2891a6f7a794570a
2013-08-31 06:48:10 -04:00
Jeremy Long
34ce50b7b5 removed duplicate code by adding a public getPropertiesFile method to obtain the File
Former-commit-id: cd3c7fdad8907eb28704e1e8342dfe41e08d9da3
2013-08-31 06:46:26 -04:00
Jeremy Long
6d85e7cdf7 added test case for removeProperty
Former-commit-id: 7ae029f35b6f1aadd20abac560ae62d377b5557d
2013-08-29 17:01:47 -04:00
Jeremy Long
23a47a6f63 added ability to remove a property (for test cases)
Former-commit-id: b2388ddb516b2f5b32f54398c11fc0c00990c9c8
2013-08-29 16:56:00 -04:00
Jeremy Long
d2bfcc6f0e fixed broken test case
Former-commit-id: b4f434d0d19a24938b2e795d1773c551fba70474
2013-08-29 16:50:21 -04:00
Jeremy Long
7495392aa2 fixed bug due caused by moving properties from cve to data directory
Former-commit-id: 508894a061b40bb80fb294835021e3ba8f34037b
2013-08-29 16:49:09 -04:00
Jeremy Long
c4ddf84ba8 removed duplicate test case
Former-commit-id: 8fd1309deb179486d6042a2b5119caca70437b19
2013-08-29 16:41:41 -04:00
Jeremy Long
aad6c28e4d fixed broken test case
Former-commit-id: 84d34cf826fc4eda8fa72592d9f3f959e9bf4cea
2013-08-29 16:38:08 -04:00
Jeremy Long
2bd03dada4 code reorganization, moved files around to better seperate functionality
Former-commit-id: da6b75d818d67b0c1c695860504aacc00991effa
2013-08-29 06:42:16 -04:00
Jeremy Long
5fab16ad06 temporarily commented out broken tests
Former-commit-id: 1ce099712487d7f1a3e13f3444fe2493181c08cf
2013-08-29 06:41:03 -04:00
Jeremy Long
6a4d1ed44d temporarily commented out broken tests
Former-commit-id: e05b064c6b076bb218b500b7a0feb26044f43d7a
2013-08-29 06:40:37 -04:00
Jeremy Long
db22159a89 added to externalize the meta info about the data used
Former-commit-id: 1fb0bf0594245fc7095c085faf18a000bf76d7f8
2013-08-29 06:15:20 -04:00
Jeremy Long
029e0e5044 updated test for getFile to return the DATA_DIRECTORY
Former-commit-id: f16d34a12416999c28597261b409c997ebc0c3ad
2013-08-29 06:14:25 -04:00
Jeremy Long
3f1ee0b1b8 new test data
Former-commit-id: 7b2bc59faf30d9bdc700bd4f2f5073de738c2b48
2013-08-29 06:13:20 -04:00
Jeremy Long
8009794cca Updated to externalize the data properties file
Former-commit-id: 729b2181f3cfcb7aa2862c1874b8aaacb154d46b
2013-08-29 06:12:55 -04:00
Jeremy Long
12ce96d802 updated getFile to correctly get the main data directory
Former-commit-id: 4c175b6c218c264c8255614858545224c0c597f7
2013-08-28 06:15:24 -04:00
Jeremy Long
53bd62b236 updated data
Former-commit-id: 4fd690df0f94e241f01ce49708117e45932175f3
2013-08-24 20:16:32 -04:00
Jeremy Long
cd7362c654 updated how initial test data is updated
Former-commit-id: dd94b61a39efdd619c23beddf25f683dc1fe5791
2013-08-24 20:00:09 -04:00
Jeremy Long
788b5633cb minor update to test class
Former-commit-id: c4e38c8f5f3ed154216aad0b023176c74e5fa4a4
2013-08-24 19:59:31 -04:00
Jeremy Long
46d106e6e2 updated how initial test data is updated
Former-commit-id: c63f49d89c63446c9ed73800e8cdd17f0a977986
2013-08-24 19:58:54 -04:00
Jeremy Long
8ffb91022e minor update of annotations
Former-commit-id: b29855c5afc64d91c2931aef5debb410b5f457c8
2013-08-24 19:57:55 -04:00
Jeremy Long
57c09d1772 updated how initial test data is updated
Former-commit-id: 7fac5faf5a82bedc6f323f85cee2cd47c984fb74
2013-08-24 19:57:14 -04:00
Jeremy Long
0731ed2c7a updated database schema version so the fix to the lucene index is enforced on clients
Former-commit-id: b743deca9949b67ce5e94c52fff6125e65bf340b
2013-08-24 19:56:13 -04:00
Jeremy Long
19ecb67f2d updates as the CPEAnalyzer was moved
Former-commit-id: d3c21f1c0187a94e56aeff55fd0874273cc65faf
2013-08-24 17:02:27 -04:00
Jeremy Long
d16123c276 updates to ensure backward compatability with 1.6
Former-commit-id: b98e3caf316ea880b6c0adb25f62338e8d16f40e
2013-08-24 17:01:39 -04:00
Jeremy Long
f90b168fdd commiting deletions and no-ops
Former-commit-id: 920f16fc7fb20d5536c62e1ccc180fa248f76802
2013-08-24 16:23:57 -04:00
Jeremy Long
09f416efdf modified CPE Index to seperate writer/reader in prep for adding locking
Former-commit-id: baa48c8e70b36b9b14591d581bc1180b6d30d686
2013-08-24 16:21:32 -04:00
Jeremy Long
05f40f3451 updated javadoc
Former-commit-id: 21268a3107bf50b84d02f8ed68dd567bba7d6de9
2013-08-18 05:55:31 -04:00
Jeremy Long
d81206fe2e Added an implementation of a spin lock that can be used to lock a directory.
Former-commit-id: 121a3d5d026f524698762b377c3582fbc9303bf2
2013-08-18 05:54:11 -04:00
Jeremy Long
f166ef9313 made non-vulnerable jars hidden by default
Former-commit-id: 61cd10a3844a73ac8ee2aadabfe5f1b51998033d
2013-08-16 14:49:48 -04:00
Jeremy Long
14704f9b4d updated jar plugin
Former-commit-id: cd78c43734a1a92c30800eae51c398e328ee4849
2013-08-16 14:49:23 -04:00
Jeremy Long
8381daeeb7 Merge pull request #13 from eoftedal/master
Styling and toggling on HTML-report

Former-commit-id: 99ac0d70c3f94f8245e94e62eca6863faa687898
2013-08-16 11:22:13 -07:00
Jeremy Long
164ed75af2 corrected minor issue with path to zipped test data
Former-commit-id: 44feb56bedd15a651e371a3506142b751961086e
2013-08-16 14:13:12 -04:00
Jeremy Long
1f7c64e279 corrected minor issue with path to zipped test data
Former-commit-id: 9d4d5d6aa5d56028a8fcb871498f20a7cf2febc9
2013-08-16 14:13:01 -04:00
Jeremy Long
a76bf03bc9 updated the scanned test dependencies
Former-commit-id: eac650187d8e8872ff1550148f1a26d640096444
2013-08-16 12:48:54 -04:00
Jeremy Long
e50d7f7b95 increased the ignore list for parts of the domain that will not be used as evidence
Former-commit-id: 1f7d410c1d8c6b9548412b151763fda6e7323d7d
2013-08-16 12:48:22 -04:00
Jeremy Long
45b1327c58 added WAR files so that they will be analyzed
Former-commit-id: 2aa266d40d5d3c1b3511db642e8b23331abf4b29
2013-08-16 12:47:30 -04:00
Jeremy Long
fe60421731 updated dependencies for test cases
Former-commit-id: 8ca0be6ef84b6db1baf3e8b05142fbd86bae97a7
2013-08-16 12:46:41 -04:00
Jeremy Long
0404fe9044 changed dependency references used during test
Former-commit-id: 64f18029835d6739034eaa9e44e9a974145d2aaf
2013-08-16 12:06:13 -04:00
Jeremy Long
8cf6c59ec7 removed from test resource to a test dependency
Former-commit-id: 44dab7bb5eed97a2fc48859136725ce62f0f6d1a
2013-08-16 11:18:50 -04:00
Jeremy Long
7b817ff866 minor update to remove lib from scanned directory during test
Former-commit-id: 7284871eb641a85f1f4d70c74b98e01c55b962b2
2013-08-16 11:18:31 -04:00
Jeremy Long
f087f70a2c updated dependencies that are only scanned during tests to be provided/optional and copied them to test-classes
Former-commit-id: f7c7f5c0e258cc333931ed0980a04dce4cce36b3
2013-08-16 11:17:44 -04:00
Jeremy Long
b05752f430 added hazelcase-2.5.jar to the test cases
Former-commit-id: d048612ddd8c5ffe6d2b587a817aae274b728b98
2013-08-16 07:15:56 -04:00
Jeremy Long
c4cde366e8 fixed bug with short words at the end of a CPE were being ignored in verifyEntry. Also, added a min score of 0.08 for documents retrieved from lucene in order to prune bad matches earlier
Former-commit-id: b1720b2fba627507c601dc1e5b08a5b540095271
2013-08-16 07:15:10 -04:00
Jeremy Long
33249fad21 added "lib" directory to engine integration test so that new dependencies to test can be added to the pom in the test scope
Former-commit-id: 7e8b95db4698e6505170fce016124910512b4f3a
2013-08-16 07:13:07 -04:00
Jeremy Long
f0dd28d4db updated test class path
Former-commit-id: c29fa3df038932ffa9f3356327c7706133081137
2013-08-16 07:12:01 -04:00
Jeremy Long
c0e35aa9fa set version to 1.0.2-SNAPSHOT
Former-commit-id: 68029d97497bb2c7adb05869f3d4a2f4891eeb62
2013-08-14 20:11:52 -04:00
Jeremy Long
1fd633a23b upgraded to use apache commons compress instead of core java zip api to accomodate UTF-8
Former-commit-id: 9a681b87ad8f53a909939360733f04b1e552f481
2013-08-14 20:06:26 -04:00
Erlend Oftedal
9a65e26e71 Styling and toggling on HTML-report
Former-commit-id: bfb745138b5bfbf1206135bd1d53ca463b46fcf0
2013-08-13 16:08:25 +02:00
Jeremy Long
f22cabc32a update
Former-commit-id: d4fcc81fca0f0070352b9a6c9b8e79704819e146
2013-08-07 22:49:56 -04:00
Jeremy Long
b97d57f00b updated information and added links to gh-pages
Former-commit-id: dc36d56de5d6bd7bc82680cd263ead8ceeea139b
2013-08-07 22:47:30 -04:00
Jeremy Long
5db3544683 removed gpg signing
Former-commit-id: 9782dddf82265be0f675f5e5f9f9849bfcc5b3ae
2013-08-07 22:42:32 -04:00
Jeremy Long
96eee95596 updated readme
Former-commit-id: 4cf254d41b78f8e9b232d6b40ab866fee05deac6
2013-08-07 22:41:29 -04:00
Jeremy Long
ffb3243bb6 reverting back to v1.0.1
Former-commit-id: 1000c0503272c412520a2b7f63c2f90dbcae9b5b
2013-08-07 22:37:35 -04:00
Jeremy Long
09f07902ef updated batch update functionality
Former-commit-id: f62347bd25b61f048f18fb8cb23b8de7c053659e
2013-08-06 19:34:11 -04:00
Jeremy Long
43583bbc2e updated tests
Former-commit-id: f290ba61239a0a5beee9522e036100753ddef2f7
2013-08-06 19:33:37 -04:00
Jeremy Long
2ebc713cbb added new test data in zip archive
Former-commit-id: 941e6cff1ecd034d3450f81fd986c3c245cb42e1
2013-08-06 19:32:37 -04:00
Jeremy Long
65ecc0f3bb removed
Former-commit-id: 312a48623f9b1d9ecd9950a2a8d719ad28ce82f9
2013-08-06 19:31:45 -04:00
Jeremy Long
ebabc1117e added additional tests
Former-commit-id: b377007cf39b3f828fb336e336804b7db56ff923
2013-08-04 14:48:21 -04:00
Jeremy Long
672e59e657 commiting initial (and likely broken) version including batch updates - commiting as I need tests done with more OSes
Former-commit-id: 38f07a64633e0762623cdb5a00478a5bafd159b3
2013-08-04 14:47:54 -04:00
Jeremy Long
882e11f558 attempting fix for Windows file:/// URI
Former-commit-id: 38a26b41aa2ebed8e043ec4dd5a0096a353b650d
2013-08-04 14:44:53 -04:00
Jeremy Long
1cd5acb972 updated fetchFile test to remove un-needed argument
Former-commit-id: fab441c8cb525226f8e246e258e6705ed7167bbf
2013-08-04 10:48:10 -04:00
Jeremy Long
464a6efd28 removed some un-needed functions relating to downloading files
Former-commit-id: 95735c796df1ae95be5273c66722a5cbfbc81c36
2013-08-04 10:46:06 -04:00
Jeremy Long
18c3c1f475 added new exception
Former-commit-id: 919a3a7beaf09c6bd98c48c94d7712f51cd7624a
2013-08-04 10:34:20 -04:00
Jeremy Long
52de46aeb3 moved unzip functionality to FileUtils
Former-commit-id: 3f791cb94b5ec94d17118d25cb08598c1769edda
2013-08-04 10:33:28 -04:00
Jeremy Long
b80d088254 added a file.delete that will delete the file on JVM exit if the original delete fails
Former-commit-id: 6007a325a0796b8ad881df6c8f3568fe131a764b
2013-08-04 10:32:53 -04:00
Jeremy Long
7d0d85aeb7 removed unused properties and added BATCH_UPDATE_URL
Former-commit-id: ef80d9a274071342026a619b88183bfca4988074
2013-08-03 12:12:59 -04:00
Jeremy Long
d19ef8322e removed unused property in test case
Former-commit-id: 608279aaf7e507621454065a9f62f25883c61002
2013-08-03 12:11:46 -04:00
Jeremy Long
840b4d7619 updated comments
Former-commit-id: 93c3f238c44a604e25ac8706f0efbc70d6158c9b
2013-08-03 12:10:50 -04:00
Jeremy Long
e4a36545d7 updated getLastModified() to support the file:// protocol
Former-commit-id: e23b72db0070c2ecf22a725cc936451440ad530f
2013-08-03 12:09:44 -04:00
Jeremy Long
31fbc7389b made getDataDirectory static
Former-commit-id: b347a95eb968ae49fb7a904c4a8ed5d7a00e85dd
2013-08-03 12:07:05 -04:00
Jeremy Long
19ec936d38 added application name and version properties
Former-commit-id: d99340e153b1548b9483b346a3aa488462f5689e
2013-08-03 12:06:24 -04:00
Jeremy Long
939c67d41c added application name and version properties
Former-commit-id: fe8db80a771f7a45875136295412a3becaed3b0d
2013-08-03 12:05:54 -04:00
Jeremy Long
9614e4f115 added version to data directory path
Former-commit-id: f5ca8a7c4ef98c5e7b72c410691b069c6221c9e1
2013-08-02 23:41:21 -04:00
Jeremy Long
c48150a792 updated installation download urls
Former-commit-id: f496586d54e157764d32ee81d0f8a60d3c377523
2013-08-01 11:56:15 -04:00
Jeremy Long
60687502d1 version 1.0.2-SNAPSHOT
Former-commit-id: e3dfa2662b85df65a91ab016c512ef0fb9dcfd0e
2013-08-01 11:50:37 -04:00
Jeremy Long
2fab58759e version 1.0.1
Former-commit-id: c8cb49627593ccb3ad9033222341c04af3feb2f9
2013-08-01 11:09:07 -04:00
Jeremy Long
a42c586bb2 fixed issue with data directory and made a few other minor changes
Former-commit-id: 46f89f4deb6b0b55f34ee61c61424f87bf0334d8
2013-08-01 10:57:44 -04:00
Jeremy Long
a6b76b3494 Updated installation instructions
Former-commit-id: 3a8ea34b6e4a3eb3b2877d30b3c211290f758c0b
2013-08-01 10:57:13 -04:00
Jeremy Long
a6eaf7fc84 [maven-release-plugin] prepare for next development iteration
Former-commit-id: b55c872dbc13979238a795d1eb2ebb7539522860
2013-07-31 15:25:50 -04:00
Jeremy Long
97ba9b42eb [maven-release-plugin] prepare release dependency-check-1.0.0
Former-commit-id: 6119beae5eca578e8c0f1847a4a5d1b4de1353d7
2013-07-31 15:25:26 -04:00
Jeremy Long
e0a71f0373 snapshot 1.0.0
Former-commit-id: 2a24202dc7e55e11d975b79f7972ca6f792d991d
2013-07-31 15:10:15 -04:00
Jeremy Long
b8875d7f1c [maven-release-plugin] prepare for next development iteration
Former-commit-id: c8259bf06880587c957e31bd65b2aae8aad0e594
2013-07-31 14:41:20 -04:00
Jeremy Long
67dfd9a942 [maven-release-plugin] prepare release dependency-check-1.0.0
Former-commit-id: 793202c9cad55877dd574b109b17aee7158021e8
2013-07-31 11:21:09 -04:00
Jeremy Long
db46b03d0c releasing updates from private repo
Former-commit-id: 745279b1fbbfe1e331adbf52ca4ccd9e75a18178
2013-07-31 10:21:31 -04:00
Jeremy Long
5672c86905 removed todo comment
Former-commit-id: fc33e187defbec9a57ef66aca2ab0486b14d9d55
2013-06-25 22:35:34 -04:00
Jeremy Long
d5406270a5 improved exception handling
Former-commit-id: bd0f78d44a0079181f9a7b461c0599a4f57db01b
2013-06-25 22:31:59 -04:00
Jeremy Long
0b3f5e408b moved jaxb generated code
Former-commit-id: 1847d2987af92aea9f72d83165600dacbfd54510
2013-06-25 22:19:40 -04:00
Jeremy Long
2ce432ac77 moved jaxb generated code
Former-commit-id: cf1b87989c9bea724a852d2293e11255cdf2ffcf
2013-06-25 22:18:58 -04:00
Jeremy Long
6cb26b3fbb added extra jar to analyze test to correct http false positives
Former-commit-id: 584f7924b1a50de4cf358d7880dbca6646161d98
2013-06-23 22:42:40 -04:00
Jeremy Long
a9b5949191 added correction to deal with http urls causing false positives
Former-commit-id: 8fc7b6ec7754d83eca030968e851a13ef0b2b6ff
2013-06-23 22:40:58 -04:00
Jeremy Long
6016370515 Added methods to test strings for urls and to extract important portions of the url
Former-commit-id: be5878b61d1ce226a4d802b431cfa6c0d32252d1
2013-06-23 22:38:45 -04:00
Jeremy Long
f3c026f278 few minor updates
Former-commit-id: 2b41a7ee44fde511a47bb76f7c366db123eb2528
2013-06-23 22:37:27 -04:00
Jeremy Long
8f218bd6d6 added common-validator to help solve the url problem
Former-commit-id: c926c675c51d0e22f2552a1d1822bb16d25501c7
2013-06-23 22:34:12 -04:00
Jeremy Long
59fd89bf68 extracted common parts of the tokenizing filters to create the AbstractTokenizingFilter
Former-commit-id: 5ecb6ad7f16de5d9a22789b4cfbbf38c40a8fb35
2013-06-23 22:33:07 -04:00
Jeremy Long
d27a6235f0 added the AbstractTokenizingFilter
Former-commit-id: 043e4f9940c341dc05529c08d154f523735756d3
2013-06-23 22:30:47 -04:00
Jeremy Long
c23febbcf0 added UrlTokenizingFilter
Former-commit-id: 6868a5b16e8d44f8761028278b6c292f98f53a7b
2013-06-23 22:29:54 -04:00
Jeremy Long
81e85a4d0d added UrlTokenizingFilter
Former-commit-id: 23c7e8caa1e554141b1f02adae6469d94ed29f8e
2013-06-23 22:27:50 -04:00
Jeremy Long
44ba1bc85b fixed the addEvidenceWithoutduplicateTerms - but allowed the same term to be added multiple times
Former-commit-id: 415bde97d05cb6c7dc221d2671f37156a17a7003
2013-06-23 22:26:37 -04:00
Jeremy Long
6244fe5a93 added suppertsExtension method to determine if any analyzer supports a specified extension
Former-commit-id: b889407df86d1611fee3e09039a7f0113f3167a2
2013-06-19 23:28:08 -04:00
Jeremy Long
973335db56 updated to version 0.3.2.5-SNAPSHOT
Former-commit-id: 8d0d2f1ed56c85a6291e4ad0723133d9afd0527e
2013-06-17 20:44:05 -04:00
Jeremy Long
4b2c4f88d3 updated to version 0.3.2.4
Former-commit-id: e8184de2ff4248eba5996cb8024fd804d273ae7f
2013-06-17 20:42:07 -04:00
Jeremy Long
bbd2ca0d68 updated logging
Former-commit-id: 940e4d2a7aba51931b1024c7426ba31bc686cc16
2013-06-17 20:40:29 -04:00
Jeremy Long
a82c225841 added message about BH Arsenal
Former-commit-id: f793bc5197eb7483774e8c9f3f5325e77e41b090
2013-06-17 20:25:40 -04:00
Jeremy Long
f9a6852aaa checkstyle correction
Former-commit-id: 63e61948becf22440bab7c34ccb304205bc60174
2013-06-16 07:43:54 -04:00
Jeremy Long
fad704b692 updated logging
Former-commit-id: b305a66140786ce59f547a7fce4a211e092a883d
2013-06-16 07:24:34 -04:00
Jeremy Long
e362632477 updated logging
Former-commit-id: 665f57b1a1aca0ab8b2ee5a370ef17089d00c813
2013-06-16 06:36:14 -04:00
Jeremy Long
4558b49c1b updated logging
Former-commit-id: 4d6b0268527200b6472c2068c2e835ae003a9f44
2013-06-15 23:42:45 -04:00
Jeremy Long
4357d8788a fixed null pointer exception
Former-commit-id: a4ec4a993db877914ba7742e4c1eb04d8cb76a0c
2013-06-15 22:40:11 -04:00
Jeremy Long
78b7c24c15 minor updates - still no implementation though
Former-commit-id: 02bcef8ced0cbca52f79d4f4e02aa388a5aab60c
2013-06-11 06:23:05 -04:00
Jeremy Long
127e9e9f74 updated javadoc
Former-commit-id: 0ec1e86a1aad644b242d0c2add4a1f91787c9bf3
2013-06-11 06:20:00 -04:00
Jeremy Long
1951ae1cce fixed compilation issue due to changes in other classes
Former-commit-id: 1f34406810b81131a2fab354b92a96295c3911cd
2013-06-11 06:05:07 -04:00
Jeremy Long
79e2fd4b52 added a temp directory property
Former-commit-id: 4eef30988909b1ba51ee4556fe3f1d3b93189278
2013-06-11 06:03:52 -04:00
Jeremy Long
2265a2c43d added a getInt with a default value
Former-commit-id: 4447f876376b8f2919bca5d784749205d9a01055
2013-06-11 06:03:13 -04:00
Jeremy Long
1e7e543ab0 minor update to support new analyzer
Former-commit-id: c30cd9fee16331a50b33792b0cfc3d48e33fb5b3
2013-06-11 06:00:09 -04:00
Jeremy Long
9671a73bd6 added netbeans configuration files too
Former-commit-id: 9cb38b18c5b87a88c01b16b9a81414d8524897ca
2013-06-11 05:58:06 -04:00
Jeremy Long
5bbee94d68 added throws clause to initialize and close as specified by the interface
Former-commit-id: 4a081a980f370513f54c23e6a6d2c2c41c0ff200
2013-06-07 22:24:01 -04:00
Jeremy Long
9d7122d69c re-arranged code and improved documentation (some)
Former-commit-id: 7e52b2625f3cf4f30c6d250c00104fe7742e11f2
2013-06-07 22:04:35 -04:00
Jeremy Long
6b1270a4f9 made snapshot
Former-commit-id: fc59277b3a8d29c0b19f4c89129fa137bb440290
2013-06-07 22:00:36 -04:00
Jeremy Long
3c8de2be3f v0.3.2.3
Former-commit-id: 50b7db9ccbac552ebd06dd85045b3da0c1414f07
2013-06-07 15:53:03 -04:00
Jeremy Long
5afb5f0e83 v0.3.2.3
Former-commit-id: 5e838c7e8f7facd79cbfb0f63dac3d4a39034e38
2013-06-07 15:52:24 -04:00
Jeremy Long
7f42d0df40 to revert
Former-commit-id: 02de6f9d928f3d18cd4b23fdff26aac4c9c99d74
2013-06-07 15:51:20 -04:00
Jeremy Long
0df54c9021 next snapshot
Former-commit-id: eb08242da149b71a8c552d0d1ea7d589397c8104
2013-06-07 15:47:33 -04:00
Jeremy Long
41bc33f4ba removed deprecated code
Former-commit-id: 73b72b8f5aba62876655bd6912365da378d3e804
2013-06-07 15:46:30 -04:00
Jeremy Long
dcc883fa27 v0.3.2.3
Former-commit-id: ff715cd36a4c2340b563bf8df720ee90f33a095b
2013-06-07 15:46:17 -04:00
Jeremy Long
492c5d01bf checkstyle fix
Former-commit-id: a2537f620af11103ebefa0f94afc60b35cc82be5
2013-06-07 15:46:02 -04:00
Jeremy Long
49eaca1290 checkstyle fix
Former-commit-id: 6115652bf743e0fbb3d54fb294426de97496c6b7
2013-06-07 15:45:32 -04:00
Jeremy Long
ce43b586ad added vulnerable library count
Former-commit-id: 2913ff54090a0527bf34c0740898644e4b82efde
2013-06-07 15:44:15 -04:00
Jeremy Long
ae49cd6a26 added a new vulnerability report
Former-commit-id: 58c096683a2a382100352262dfd13b511a696447
2013-06-07 15:20:38 -04:00
Jeremy Long
6ad3897af8 added Stupid Table Plugin
Former-commit-id: 110e79a21c6e1f61d503ab1fa9331f76b5da13b2
2013-06-07 15:20:23 -04:00
Jeremy Long
53ddb067ea version 0.3.2.3-SNAPSHOT
Former-commit-id: 043e562ba47635a3a25e8724fb36f246ecd97cf2
2013-06-05 00:07:59 -04:00
Jeremy Long
a9762170bc version 0.3.2.2
Former-commit-id: 98ef7905c06f8489c0e685fa8992d0f08985340e
2013-06-05 00:06:09 -04:00
Jeremy Long
4d91403fd2 checkstyle fix
Former-commit-id: 885c335fc8fd4b8eea0e074c919f02c3cc26e32c
2013-06-05 00:05:46 -04:00
Jeremy Long
e1cd4a63d0 checkstle fixes
Former-commit-id: 473ff93fdc20125b97459a8e0cb51fd115b410e3
2013-06-04 23:47:22 -04:00
Jeremy Long
18f3874dab checkstyle fixes
Former-commit-id: fecdd752a18a9ea349fcba0ac9a6b5e76abeccde
2013-06-04 23:40:37 -04:00
Jeremy Long
6efcee500d updated javadoc
Former-commit-id: 686cdfb01938f14c5856300f3a7965c1aa22da6e
2013-06-04 23:40:11 -04:00
Jeremy Long
8c0532f363 updated javadoc
Former-commit-id: 43e1db973c4e4d9f36eb7fd18da76f5a0226fabf
2013-06-04 23:40:02 -04:00
Jeremy Long
fdb0d07ab8 fixed bug where dependencies would get bundled even if they were different versions
Former-commit-id: 23eb0cb89d4372611d552e3691727ac8477b245c
2013-06-04 23:27:14 -04:00
Jeremy Long
58e30649a3 added equals and hashCode
Former-commit-id: e7091b8f28f1a24d761729fe213b6208fe2ee03b
2013-06-04 23:06:02 -04:00
Jeremy Long
85feef3a60 added filter to add the correct Maven namespace to the POM if it is missing
Former-commit-id: a330eb5ade23e02e8ba450750f4051fd8844df39
2013-06-04 22:54:28 -04:00
Jeremy Long
fccd913a8a added filter to add the correct Maven namespace to the POM if it is missing
Former-commit-id: e8e3901878beacc0837e7b0578c810b2283727f0
2013-06-04 22:54:09 -04:00
Jeremy Long
dd119edafe minor bug fix
Former-commit-id: 0f0d101a22e904db91348dd40a40780d9bcb85ad
2013-06-04 05:09:04 -04:00
Jeremy Long
f6633fb16c checkstyle fixes (javadoc, final variables, etc)
Former-commit-id: f1ee986631ba810cea2ca2101948c11c03c0d62c
2013-06-03 20:23:23 -04:00
Jeremy Long
d243bf4f48 added attribute to ignore a findbugs style error
Former-commit-id: e675e7d62a96807f686f8a3a992b97be13b7e0dd
2013-06-03 20:17:07 -04:00
Jeremy Long
92d306f777 findbugs fixes
Former-commit-id: 390c00542b8ee16746118126bd9d6b7f4f98b546
2013-06-03 20:07:39 -04:00
Jeremy Long
0ea29b3d7c add jsoup to help convert the HTML, specified within nodes in the POM, into text.
Former-commit-id: d32fbfe3e1d9a26f053773d7b9566acead1acc1c
2013-06-02 21:45:49 -04:00
Jeremy Long
c8e6e8eb32 added code to remove additional false positives
Former-commit-id: dfe20849d2c7d4674331f44af3a82112a99b993c
2013-06-02 21:44:20 -04:00
Jeremy Long
a6aae6292e added initial version filter - only supporting struts1/2 right now
Former-commit-id: aa432c189c55d9ed66cf86d48041dd69dd43ab86
2013-05-31 22:57:04 -04:00
Jeremy Long
e33100b075 added another manifest entry to ignore
Former-commit-id: d8329c24f05a157cb94c8a9effbde52af31bfd76
2013-05-31 22:32:56 -04:00
Jeremy Long
84a229d286 added another manifest entry to ignore
Former-commit-id: 026080b556ab2a1736f137f87b7bf5c43cfecf6e
2013-05-31 21:52:36 -04:00
Jeremy Long
ab32c42487 fixed javadoc typo
Former-commit-id: d6d2c1998c8a8c933608351fd2b301b94480236f
2013-05-31 21:24:33 -04:00
Jeremy Long
0dc3744859 fixed javadoc typo
Former-commit-id: c631903f6567a3889722c9f19597651117c1d83d
2013-05-31 21:24:06 -04:00
Jeremy Long
d22eab4155 reduced complexity around determining if the jar contains classes
Former-commit-id: 3d31a3cbebcf0bebec17ee5f8c9a060f60458db8
2013-05-31 20:48:33 -04:00
Jeremy Long
ea9bfec3c9 removed a reported exception for javadoc or sources jar files for not having a manifest
Former-commit-id: bebbf0a2ef45f8d035a8420e036c6ac034a89760
2013-05-31 20:41:23 -04:00
Jeremy Long
02b43a5d66 minor update to text
Former-commit-id: 3d7ed5dfd4bef89e002d5bb3e49dc581a4863529
2013-05-27 22:22:44 -04:00
Jeremy Long
e0fc7952f4 v0.3.2.1-SNAPSHOT
Former-commit-id: 08cae57ef475f148c4d9754ab3414a41bfece536
2013-05-27 22:18:20 -04:00
Jeremy Long
66ec2c5d27 0.3.2.0
Former-commit-id: 9e3ef33d93a6d7d5e65cac75adf97cd3dc81f69e
2013-05-27 22:14:27 -04:00
Jeremy Long
f5a78402a6 testing
Former-commit-id: 13fe0b65c1061084d1716db13c18d19ed1797fce
2013-05-27 22:12:25 -04:00
Jeremy Long
29bfd7325d reset username and blank password
Former-commit-id: eb9ffb878d8f5c943bb5651ee9c2c18d9af7243f
2013-05-27 21:32:05 -04:00
Jeremy Long
318962c01f updated H2 version
Former-commit-id: 34b9d13b96c8891525c505dfbe0a41bed3422bb7
2013-05-27 20:47:13 -04:00
Jeremy Long
8ca49fafa1 added compile time support for findbugs suppress warning annotation
Former-commit-id: 189e2b7c84b49413c141810ac7efca31910eb7e1
2013-05-27 20:02:54 -04:00
Jeremy Long
656e783894 updated javadoc
Former-commit-id: c0ae715bd4042302ae97dd7834764629559d691c
2013-05-27 20:01:47 -04:00
Jeremy Long
18c6d60a85 updated javadoc
Former-commit-id: 7b5aaeab99df80b48414e880f05583f851c772d2
2013-05-27 20:01:16 -04:00
Jeremy Long
b202121c21 added findbugs suppression for a non-issue and made a few checkstyle corrections
Former-commit-id: 60a3757ce97ec7cccc07b66ef4541db3e2c2bdac
2013-05-27 20:00:46 -04:00
Jeremy Long
ea3672dd08 added findbugs suppress warning for a false positive
Former-commit-id: 439a2c5f6bf957535779f702532d1edb609330e5
2013-05-27 19:59:16 -04:00
Jeremy Long
88037af7ef collapsed nested if statements
Former-commit-id: 7e70e8a399042c413e86a772b6345fc6e52df235
2013-05-27 19:58:26 -04:00
Jeremy Long
4bda5b619d added supresswarnings for findbugs false positive
Former-commit-id: 6fd172530338f4fc22777eab7a36465be7d12119
2013-05-27 19:56:19 -04:00
Jeremy Long
a0645ea30f updated javadoc
Former-commit-id: 2af65f75bb0d0b28c33a9945ee27cf83912128ff
2013-05-27 19:55:13 -04:00
Jeremy Long
a3e4adb0af checkstyle fixes
Former-commit-id: 4585dce6788c08f6e63a0bb34572874f7eb02877
2013-05-27 19:54:41 -04:00
Jeremy Long
e18aedfabf reduced size to make tests fasters
Former-commit-id: 9d29ec809fe43f21d89f77e1200d92af1a103bd6
2013-05-27 19:53:14 -04:00
Jeremy Long
44529a78d2 updated javadoc and copyright
Former-commit-id: bd41e8c200b3a5386cb3c07bb2b398700d70ff16
2013-05-27 09:14:56 -04:00
Jeremy Long
bb9025364b Merge branch 'master' of https://github.com/jeremylong/DependencyCheck
Former-commit-id: 401adb5d528324f9af19745068868924c808d02b
2013-05-27 09:07:18 -04:00
Steve Springett
7c78283b46 Adding more control over data directory path
Former-commit-id: 926b9f3d2ed0a19a28a3d23a64bada70b5da22a6
2013-05-27 00:10:08 -07:00
Jeremy Long
f7d6ca5c11 Applied patch from Steve to change the loading of the H2 db
Former-commit-id: 46d4bd628f0d7ecfaffc7881f8bc47bee6c55a5f
2013-05-25 10:56:41 -04:00
Steve Springett
172a341b40 Adding more control over data directory path
Former-commit-id: af198db00ee4d1330ff0d4105f319c739c80bb8b
2013-05-24 23:53:24 -07:00
Steve Springett
09aef67808 Fixed Velocity logging issues in server environment.
Former-commit-id: 663447c35a74d17d2c2af4b62f4591924d6387a5
2013-05-24 16:00:10 -07:00
Steve Springett
a400312d3a Forcing the class loading of the H2 JDBC driver.
Former-commit-id: 97c59fc760efc9e8aa8df081759889f921d4822b
2013-05-22 01:11:02 -07:00
Jeremy Long
1b01b35b03 made outDir final
Former-commit-id: 0a1354925aac773035aa15b04912c30c585ed243
2013-05-20 22:54:35 -04:00
Jeremy Long
2d0acaa8ae various updates recommended by intelliJ
Former-commit-id: b3b3e4accfbf29d8df38eeb39a469881348ee26f
2013-05-20 22:50:21 -04:00
Jeremy Long
a31a73320b various updates recommended by intelliJ
Former-commit-id: 298ccc5ba67197542c729911b5b2222363833530
2013-05-20 22:17:19 -04:00
Jeremy Long
75da352806 version 0.3.1.1-snapshot
Former-commit-id: ce6e012112b05f79439b18612cea8a0131faa7b5
2013-05-20 17:04:03 -04:00
Jeremy Long
61b0c9b1c1 version 0.3.1.1
Former-commit-id: d44728ba689897645f7d18f3ee562e82355b1c9c
2013-05-20 17:01:02 -04:00
Jeremy Long
2185fe0f4c fixed typo that prevented some information from being displayed
Former-commit-id: 59c9c97fb478d52782afad114a0257fc045e3090
2013-05-20 17:00:21 -04:00
Jeremy Long
4ee0977aa1 corrected file path of related dependencies
Former-commit-id: 9a24e7e36474e387ac29021ed17bb38c1df5fccf
2013-05-19 08:29:00 -04:00
Jeremy Long
1ba44771bb bug fix, report generation failed if target directory didn't exist
Former-commit-id: bce38747178da61a08d726d32da575f4026dd26d
2013-05-18 10:23:57 -04:00
Jeremy Long
9966eec1df updated exception logging message
Former-commit-id: 206fd2354786aa53db3024b94a7ac4120c28f900
2013-05-18 09:00:34 -04:00
Jeremy Long
dd444f5f76 PMD fix
Former-commit-id: 18f1bac263b4bda33a58f11e1b35fd7602c462f1
2013-05-18 08:49:08 -04:00
Jeremy Long
a0a6089057 checkstyle fix
Former-commit-id: 67cdcf9f745f7220d02b84ac5e918ef65e324b30
2013-05-18 08:45:58 -04:00
Jeremy Long
4be72fc989 updated global Settings and moved connectionTimeout, proxyUrl, and proxyPort from system properties to normal command line properties
Former-commit-id: 0e7e552768dd43e9d0cb40052589a34d0738df37
2013-05-18 08:45:16 -04:00
Jeremy Long
033cbf696a updated autor email address to my owasp address
Former-commit-id: f6c6715b3fc1461afd543fb8d89b81fea1a8bbed
2013-05-17 23:57:59 -04:00
Jeremy Long
805bc85ea9 added equals and hashcode methods
Former-commit-id: 8c6e8bae17d2fcea4b52d46cda218922749cd9cf
2013-05-17 22:39:28 -04:00
Jeremy Long
0d057d500e v0.3.1.0-snapshot
Former-commit-id: 912467cad5ada2d445d96d2312b83ec76b5b6cff
2013-05-17 22:26:22 -04:00
Jeremy Long
7462500e20 v0.3.1.0
Former-commit-id: d1ea402f6bf49f88c06b17865be30ead766b6fd8
2013-05-17 22:24:24 -04:00
Jeremy Long
3e06a4a7c5 fixed logging bug
Former-commit-id: 8aa994957fcbf55ecd7c05964768bff901d64547
2013-05-13 12:11:22 -04:00
Jeremy Long
e0684ab086 Checkstyle fix
Former-commit-id: 4adf3d0e81f213bc324fc646abe8280385e81429
2013-05-13 11:54:50 -04:00
Jeremy Long
e7be883e2e Improved logging on failed updates
Former-commit-id: edfd14af594e7692e238a69b4fd2090361efddd5
2013-05-13 11:54:25 -04:00
Jeremy Long
8fe80a4507 Improved logging on failed updates
Former-commit-id: 61f2ba2acd867043f92904f1e1f038a25355f155
2013-05-13 11:52:54 -04:00
Jeremy Long
68084c4567 minor update to prepareLogger
Former-commit-id: f982fb266ee46fbe37334ef246c59fc861a2a523
2013-05-13 11:41:55 -04:00
Jeremy Long
9c27545f5f source formating update
Former-commit-id: 02681646cb18f9dbe7a4744af77128fc62865220
2013-05-13 11:09:39 -04:00
Jeremy Long
6da8af7680 updated title
Former-commit-id: cb455d4c1f34008e67f391644620f60367602798
2013-05-12 07:00:58 -04:00
Jeremy Long
1b7ce93623 file header update
Former-commit-id: 0a13aa9960848b5a97dcba0e51a89145e012ebc8
2013-05-10 06:34:45 -04:00
Jeremy Long
5f6480527e minor bug fix
Former-commit-id: c1417cb0cd8d0a65838feaa5b33c85e73e56a3e2
2013-05-10 06:29:08 -04:00
Jeremy Long
4d7b4ce877 checkstyle fix
Former-commit-id: f8a632d0d1f2c7c3b6b7e2553cda738b725f14d7
2013-05-10 06:05:59 -04:00
Jeremy Long
fd61f7d363 updated file header
Former-commit-id: 8d3dcd110d96d93d2f267e77d303e076be71db5c
2013-05-10 06:04:28 -04:00
Jeremy Long
47cc3d7358 checkstyle fixes
Former-commit-id: 213d1375060723f9bded7680cf07ad0f790cd71c
2013-05-10 06:03:00 -04:00
Jeremy Long
d180618634 updated file header comment
Former-commit-id: ef8657a90b398f59cc0693f0a094292609fdd9ef
2013-05-10 05:52:44 -04:00
Jeremy Long
b2b96426d7 minor correction
Former-commit-id: 436e1ffb049bce43cf0dce2f881b9b61744085b4
2013-05-10 05:33:57 -04:00
Jeremy Long
5796d4b969 Fixed bug when analyzing maven repositories - related JARs would not get bundled
Former-commit-id: 8b5386ba522277a0fa8c982e8e5bd55277edc258
2013-05-09 23:03:03 -04:00
Jeremy Long
37957613df bug fixes
Former-commit-id: 4c1161542509a2e2e9b78be119a230e1d8cf4cfc
2013-05-09 22:34:47 -04:00
Jeremy Long
cb82f02eb4 spelling fixes
Former-commit-id: d118f6474726c5cb39c246789830c4626a2bba7a
2013-05-09 19:49:25 -04:00
Jeremy Long
3feccefee8 improved pom analysis
Former-commit-id: 8da3f802dbf2c3d8cd63d07a1a0a5d984074f007
2013-05-03 20:23:42 -04:00
Jeremy Long
910b1dca85 minor update to references where the actual licenses are for the 3rd party components
Former-commit-id: a7f85046bbf88b3c1abc99481f3ff7bbff39f670
2013-04-24 20:03:02 -04:00
Jeremy Long
d71c6f055b changed logging level when logging update exceptions
Former-commit-id: 4608aad994437e1ebffff2dbb2d97dafdf138ab5
2013-04-23 21:35:23 -04:00
Jeremy Long
536f373b91 checkstyle/pmd/findbugs fixes
Former-commit-id: ed64aebbc7c5f25978b8e4b6391a6d7fc08749be
2013-04-23 20:22:51 -04:00
Jeremy Long
6987845228 added commons-lang dependency
Former-commit-id: 2078cb15e694c9c0122a27cc188522a9771980a9
2013-04-23 07:10:31 -04:00
Jeremy Long
2edd2bf763 added FileUtilsTest
Former-commit-id: ca4a9781c134e4f01a64d4bf59489103d34d1f70
2013-04-23 07:09:56 -04:00
Jeremy Long
2605761d76 bug fixes
Former-commit-id: 29c74c9ac0bad912e90b6adb888fbeae10180835
2013-04-23 07:09:18 -04:00
Jeremy Long
391d261ca1 added removal off spurious CPE entries
Former-commit-id: c91ac1b042f691daa3312d9c2fcfd5e49cbea3d2
2013-04-23 07:08:29 -04:00
Jeremy Long
6a7531f1e6 added pre finding and post finding phases
Former-commit-id: 006203fe9c4ca27bed29601af6fd35f276ce5366
2013-04-23 07:07:19 -04:00
Jeremy Long
fb294e8bea added tests for DependencyVersionUtil
Former-commit-id: fcbc3b4f9d619be77d78d011926751d528cb1eb1
2013-04-23 07:06:30 -04:00
Jeremy Long
a1046488c3 added better version analysis for dependency bundling
Former-commit-id: c32d49d50c87a0c3b87da777af524d413cc7c7f3
2013-04-23 07:05:42 -04:00
Jeremy Long
8cef56265c bug fixed regarding whether or not to include packages as evidence
Former-commit-id: 24c6a76d8088cf951db9765a9c618057e2fe5ec9
2013-04-23 07:03:57 -04:00
Jeremy Long
ec30851247 added axis and axis2 for testing
Former-commit-id: d0f114a142bb8d115caacaeb25d09497cd3420ba
2013-04-23 07:02:48 -04:00
Jeremy Long
7420c12b89 fixed bug in removing sources and javadoc JARs from analysis
Former-commit-id: 1386148a368a193ce70f1fae8784215d62706ee9
2013-04-21 05:18:50 -04:00
Jeremy Long
895c770c24 added code to filter out sources.jar and javadoc.jar if no class files are contained
Former-commit-id: ff77b49af31258a12433f8a78d13a6cbf36d11c1
2013-04-20 15:43:12 -04:00
Jeremy Long
606070f449 started snapshot
Former-commit-id: f4551455036cf1050f0fcf7e3ca74f2796989403
2013-04-20 15:42:21 -04:00
Jeremy Long
ec41493d91 fixed line break issues
Former-commit-id: 2018eb293b9a79cc892e37994ba1efac7b179600
2013-04-20 15:03:32 -04:00
Jeremy Long
d551093199 fixed line break issues
Former-commit-id: 0fc9f2954c5368e9300039e70ef63dd0f0bbfe1e
2013-04-20 15:02:38 -04:00
Jeremy Long
f7f8b2da62 fixed line breaks in the usage
Former-commit-id: 556823a8af6e13cc7a18c248d3e51946b46d3d28
2013-04-20 15:00:58 -04:00
Jeremy Long
1378b630a6 release 0.3.0.0
Former-commit-id: 65d4221afe3637a4d5cca28b7f9e158e936bd919
2013-04-20 14:55:28 -04:00
Jeremy Long
9726d86ab0 minor bug fix
Former-commit-id: ecf116ac73e7d6a0abd4cfe2952551deaddaf148
2013-04-20 14:48:58 -04:00
Jeremy Long
c9364e7b94 added a schema for the dependency-check XML report
Former-commit-id: a1ddac261454dd46e4d875c0de451db943db3674
2013-04-20 14:41:08 -04:00
Jeremy Long
1e6780a2e3 minor updates
Former-commit-id: 688d326e5d15ecc45ac8c7f5a7c53dfaf2615fac
2013-04-20 13:36:44 -04:00
Jeremy Long
72855d4d7a removed un-necassary functionality from all analyzers and the base engine
Former-commit-id: e6b97601ff24ced2a2016d03b35869d083b947db
2013-04-20 13:12:16 -04:00
Jeremy Long
c0359da930 added related dependencies
Former-commit-id: ae645b937c26ab850194cfe70b1b64f40f7eb62c
2013-04-20 13:11:31 -04:00
Jeremy Long
b4f39b0bfc Correctly implemented this analyzer (hopefully)
Former-commit-id: 0fb69a26a8c1da952894ec410f8ef0e4e40d1914
2013-04-20 13:11:01 -04:00
Jeremy Long
d7af145f3b checkstyle/PMD updates
Former-commit-id: d970e6d49ba78a1e563b4ab5598c242d4dbca80e
2013-04-20 11:49:59 -04:00
Jeremy Long
b078d8477e added test case for VulnerableSoftware
Former-commit-id: 935832719235e07a4c7f1fe0c989cae3864b5ce9
2013-04-20 07:18:27 -04:00
Jeremy Long
02b64e1a4b correct and issue with the comparable interface (invalid sort order)
Former-commit-id: 2d819f088d098560c678912e9dfffb2f8cca8f06
2013-04-20 07:18:05 -04:00
Jeremy Long
f444825e42 minor bug fix
Former-commit-id: 7feaa7f3595ba0d198aff445fdb377b86a76e4fd
2013-04-20 06:28:40 -04:00
Jeremy Long
9fa62ef388 added vulnerable software to the report
Former-commit-id: 97658f4c2776c47b41d74db3be180c871dbcf243
2013-04-20 06:16:43 -04:00
Jeremy Long
e73ad07836 added a link to the NVD
Former-commit-id: 6686314a88f3a2f0aa93de2c753a0962cb902a07
2013-04-20 06:03:37 -04:00
Jeremy Long
a680e79686 added license information
Former-commit-id: d5eccd06a7bd8829487616bf000250bf00e56bec
2013-04-20 06:00:36 -04:00
Jeremy Long
728c05262c updated license information
Former-commit-id: ab4882e7a44896c670295dd56e12b25bc568c7cc
2013-04-20 06:00:02 -04:00
Jeremy Long
23e08c1ca1 updated output format to accept 'ALL' to generated both HTML and XML reports
Former-commit-id: 002943f373d5541d0ede54d00beb9c155eb454c0
2013-04-19 18:52:02 -04:00
Jeremy Long
198d73acfa Updates to abstract analyzer and subclasses - removed duplicate code
Former-commit-id: e0acf33d81dcf5e2d6383345927287dbe918d03c
2013-04-19 18:46:01 -04:00
Jeremy Long
71e210b66c Updated to accomadate removing dependencies (used by the DependencyBundlingAnalyzer)
Former-commit-id: c5f530bce2d82e30795d327c8da03b66bce7785b
2013-04-19 18:45:40 -04:00
Jeremy Long
2f31c53fd4 Updating Dependency Bundler to group related dependencies
Former-commit-id: f9d971b134dc75847b45c1bb3b0bc2fce37e5c1a
2013-04-19 18:44:25 -04:00
Jeremy Long
9f661535e0 Updating Dependency Bundler to group related dependencies
Former-commit-id: 4d2d05f0ba2fc3890de7fba8f6ff0a7b6a858f4b
2013-04-19 18:43:31 -04:00
Jeremy Long
5b0d4bf8e6 Adding Dependency Bundling to collapse multiple related dependencies into a single reportable instance
Former-commit-id: 17a6af2954e8b6da6ecd0b97895372624945d138
2013-04-18 17:58:47 -04:00
Jeremy Long
a639264149 checkstyle fix
Former-commit-id: e99149f776739afa17c930f0e9666c53f92a0296
2013-04-18 07:02:05 -04:00
Jeremy Long
91ab257eb6 PMD fixes
Former-commit-id: f34bcaff389cbfbcaa2e6b2244be3fbe16d01b52
2013-04-18 07:00:33 -04:00
Jeremy Long
e24a62d621 checkstyle fixes
Former-commit-id: 2bd6f330836c7dab07e5968ef845b4d48ede4abe
2013-04-18 06:54:36 -04:00
Jeremy Long
ec9f4b2b61 minor update to the description
Former-commit-id: c0af5d3511ac7ccb11d36193793baa9f2b2a2cb3
2013-04-18 06:54:24 -04:00
Jeremy Long
b66c7da4b3 bug fixes
Former-commit-id: 488d8b3e2b3db0bab3bc84091bac1b758336a3e6
2013-04-18 06:46:03 -04:00
Jeremy Long
6544cc98d5 minor update
Former-commit-id: 69b26d4f5a82c312242fa088306cf3c3628c4796
2013-04-18 06:45:41 -04:00
Jeremy Long
2dbef9e1fa added sorting for References via Comparable interface
Former-commit-id: bd93d1f376ab5869b3a9718a6017f2c311c83bb3
2013-04-18 06:29:08 -04:00
Jeremy Long
a924e81adb minor bug fix with sorted set
Former-commit-id: a53c5c220bb460b378583aa73c01ec2dfa81a196
2013-04-18 06:25:12 -04:00
Jeremy Long
1ded1b603e added vulnerable software
Former-commit-id: dd4b3a9e06bb33e4f895565bec4588a8b38f6f5d
2013-04-18 06:24:40 -04:00
Jeremy Long
a3012a29c2 updated to use SortedSet instead of Set in a couple of places
Former-commit-id: ae1d42bbf2ccb5994cb793872ff228c8ca9fbd86
2013-04-18 05:50:17 -04:00
Jeremy Long
8fcd800aff implemented the Comparable interface
Former-commit-id: 23c9ecf90a0392e2398376e63c78134de6d2de9e
2013-04-18 05:43:13 -04:00
Jeremy Long
4d414ea082 implemented the Comparable interface
Former-commit-id: 2be5ef6e2d0d9570186273fb6b8fc42e372ff251
2013-04-18 05:42:25 -04:00
Jeremy Long
d5b2380bc2 checkstyle patches
Former-commit-id: d06ea48208fa0b3d35b9a8d21b3b7b8e8172aaa6
2013-04-11 23:18:28 -04:00
Jeremy Long
d2853fafa9 updated to release a snapshot
Former-commit-id: 2fb68d59dac83f3f27c601b66d33448bd101faea
2013-04-11 23:01:18 -04:00
Jeremy Long
0e5a207c44 added functionality to remove some false positives
Former-commit-id: 4de4e94c96a3e65454f7626bee604b9286bd9a9b
2013-04-11 22:59:46 -04:00
Jeremy Long
d7744537ae Implemented the Comparable interface
Former-commit-id: 07d5fd34d76c296cfc2c1f049b285bbd9b05189a
2013-04-11 06:05:58 -04:00
Jeremy Long
9e79e9efb6 added counts for imported quantities
Former-commit-id: 39e4c4029ac3cf6ea76e2ac35370692e1fb1caea
2013-04-09 06:56:09 -04:00
Jeremy Long
a04338d184 added counts for imported quantities
Former-commit-id: 17673e8771d4314fc48bcf63f95a8992e6cbe17e
2013-04-09 06:55:43 -04:00
Jeremy Long
772b0ca2b0 checkstyle updates
Former-commit-id: e18a6c9a01cf3fdbbdd87446bb25b77e3e455c0f
2013-03-30 22:11:04 -04:00
Jeremy Long
13eb2b75d5 checkstyle corrections
Former-commit-id: eb05a880382ec71f00df8bb7f9b25aa98ceeb182
2013-03-28 22:44:11 -04:00
Jeremy Long
c800440e44 removed old file
Former-commit-id: 5490212a8587339f653f6b21ac1856b28835c40c
2013-03-28 21:51:07 -04:00
Jeremy Long
05f822380c updated dependencies and plugins
Former-commit-id: 9b528552fbc01c195250b1d2e2609296f31a8187
2013-03-28 21:50:28 -04:00
Jeremy Long
7896c81e98 added ignores for Eclipse project files
Former-commit-id: cc744fa73f6fc36650bd9ececf198f1c4cb353c3
2013-03-27 07:22:47 -04:00
Jeremy Long
ea50569b2a version 0.2.6.1
Former-commit-id: d249ee7a38c7443c030b1db4042cf92a34f7a8f8
2013-03-16 16:56:34 -04:00
Jeremy Long
7bce07aa0e checkstyle fixes
Former-commit-id: 31ff9324a8acd201002e4843deb5a2cfb08f2d88
2013-03-16 16:53:41 -04:00
Jeremy Long
5ef02290dd added package name scanning back in if no other data was found
Former-commit-id: e83c18cd1cd5f08ffb85cd91f0df2a8fe6382a81
2013-03-10 08:18:25 -04:00
Jeremy Long
34d5ba7d35 Added 'deep scan' argument/property to indicate more evidence should be collected even if it increases false positives
Former-commit-id: cc2c489f8187eb459301a132ff63a2ebe4289e01
2013-03-08 17:33:01 -05:00
Jeremy Long
55004e7832 fixed bug
Former-commit-id: 94c67d4289b5766c3d184cddfc8231efec645764
2013-03-08 17:32:16 -05:00
Jeremy Long
4945446171 bug fix regarding duplicate terms being added to the lucene query
Former-commit-id: d12f68cfe986918f1be438fdb8d4281bcf1dd441
2013-03-03 09:50:12 -05:00
Jeremy Long
0e2d2408ca bug fixes
Former-commit-id: 2bbdb3407b26b6d10a65abc81643d4b8ede3d74c
2013-03-03 09:47:54 -05:00
Jeremy Long
8b8707c36e change in namespace as this is now an OWASP project
Former-commit-id: 162fbfc156a284f1597d230f65eaf29dc0f3e0fb
2013-03-03 08:57:38 -05:00
Jeremy Long
3bd9caf113 completed version 1 of XML report
Former-commit-id: 5768da52f398b124f79e25f40ba2bcd5a0931666
2013-02-22 21:47:41 -05:00
Jeremy Long
f713a83abf added XML Report Template
Former-commit-id: c9ca7e19d955d0d112749bb550b3880f80e6b9b7
2013-02-21 02:33:11 -05:00
Jeremy Long
b0e0f8c8bf converted README.txt to MarkDown
Former-commit-id: 34e7f81a6946c77b5bb4d2076b9a179a6d76b0df
2013-02-20 07:27:06 -05:00
Jeremy Long
c8623fd3a2 updated
Former-commit-id: 17bdf87061690071911d7e45d74d136dd46ba9cd
2013-02-20 07:25:28 -05:00
Jeremy Long
c6aad2c2d4 updated
Former-commit-id: b78334f9a2cab81bd1a899a9552d0c231fd78e0b
2013-02-20 07:23:28 -05:00
Jeremy Long
7ede87753b updated
Former-commit-id: b1e2063d8a9257c5d951f38457daa2bfb6a8af55
2013-02-20 07:22:30 -05:00
Jeremy Long
59bed5a0fa converted README.txt to MarkDown
Former-commit-id: 702563b2fd101576431e646ccab39388ef038a4d
2013-02-20 07:19:56 -05:00
Jeremy Long
e59377d9a3 spelling fixes
Former-commit-id: 8d53d845ec1212370aec6f58bec97cd94ef9b20d
2013-02-19 21:40:42 -05:00
Jeremy Long
6274cfce4b cleanup and spelling fixes
Former-commit-id: 9c44ae88606f12728bc424d566ef11194c5c399b
2013-02-19 21:35:24 -05:00
Jeremy Long
9d624702f6 add ignore for IntelliJ files
Former-commit-id: 06c627dce1fcd6cdb8c48a707555590248e7a798
2013-02-19 20:25:00 -05:00
Jeremy Long
f9d8ff3f74 spelling errors corrected
Former-commit-id: 1173c3632cdbcdafc111062e5c343b3a49bb7398
2013-02-17 07:46:10 -05:00
Jeremy Long
6c837f0639 Patches from Steve Springett for XML report format
Former-commit-id: 711371d19c3b79cc6411adef59d992cc16d5bf57
2013-02-17 07:27:01 -05:00
Jeremy Long
03c9ce3589 updated failing test
Former-commit-id: 12be2627cab271c3a15e484681965fcb0f4480e0
2013-02-13 21:38:03 -05:00
Jeremy Long
1ac7cdacb0 updated notice
Former-commit-id: 8f74cc2b80dbbebfa57cd3e8fff8dc33e0cc046c
2013-02-03 08:20:47 -05:00
Jeremy Long
ba93be1814 [maven-release-plugin] prepare release dependency-check-0.2.6.0
Former-commit-id: 3e72fb031177b1aac466a3c30be88a839667aef9
2013-02-02 17:12:48 -05:00
Jeremy Long
1404bbab9f updated
Former-commit-id: 080d367023ff85e259e725a8d1f754040a2e92aa
2013-02-02 16:59:55 -05:00
Jeremy Long
a5f8ed6378 updated version
Former-commit-id: 847e8e79ebf18fbacdd77ea6593433ec63e6c85f
2013-02-02 16:50:29 -05:00
Jeremy Long
1b59212003 updated usage
Former-commit-id: ab5472c4c3d89916c20741e84c29203e24a37f4c
2013-02-02 16:49:11 -05:00
Jeremy Long
4142901dc6 bug fixes and additions
Former-commit-id: 6ac1a641dce3b4826aadf886ec45364fd9b6ea5a
2013-02-02 16:44:46 -05:00
Jeremy Long
4ba9431e6f bug fixes and additions
Former-commit-id: e0d87c47ba547a14cdb67721e807776ec426b1ec
2013-02-02 16:44:06 -05:00
Jeremy Long
5da83517a8 added CWE Names
Former-commit-id: 60803fba6071a09ae03a18410c103a587f5fd61d
2013-01-14 22:14:45 -05:00
Jeremy Long
a7e95c2a4d minor update
Former-commit-id: 79b44ce9a813e9b20c0915c5a5aac368d0643219
2013-01-13 17:05:19 -05:00
Jeremy Long
ae7fbbb04f added CWE
Former-commit-id: ce1b558996087cf4b95ca485de236f9bed477d2b
2013-01-13 17:01:46 -05:00
Jeremy Long
cc18ef9aa8 fixed analysis phase
Former-commit-id: 45112eb83551a22f380c676e9fd2bc9e9d73afa8
2013-01-13 16:53:28 -05:00
Jeremy Long
4202e8a7ba Added CVSS Scores
Former-commit-id: 2c670c2e08def9095a8526b6a9cf64664cc1c89e
2013-01-13 16:48:27 -05:00
Jeremy Long
882ff8a325 version 0.2.5.1
Former-commit-id: a9d02a59a7f91fb02a4a920e74d6fb25aa0cd4b8
2013-01-09 22:51:06 -05:00
Jeremy Long
1b29957731 additional spring jar files for testing
Former-commit-id: 4de847b3212e2c54a70df4bb3533a2849e58b644
2013-01-09 22:50:11 -05:00
Jeremy Long
5702543bc5 fixed analyzer method signature, added SpringCleaningAnalyzer, and removed ArchiveAnalyzer interface
Former-commit-id: 9060cd5d69d499b808e16d1171ac3cd3b077548d
2013-01-09 22:49:41 -05:00
Jeremy Long
c810f0647a added 2013 NVD CVE file
Former-commit-id: 77350c8956596ba2da1401bb2c82d2a412563e59
2013-01-08 15:40:58 -05:00
Jeremy Long
d366b67bee added mailing list
Former-commit-id: 6ddd9f7d38893237b33052921bb5008af627fb4a
2013-01-06 12:38:56 -05:00
Jeremy Long
85286b3cf9 version 0.2.5.0
Former-commit-id: 68aa4287866052e89fd4bb4164341ae7914a57e0
2013-01-06 12:13:08 -05:00
Jeremy Long
ae4b5464c7 bug fixes/replaced CVE datastore (lucene->H2)
Former-commit-id: 58386fc80bd3a9dca8bc486c56037efa91b1b81e
2013-01-06 12:04:27 -05:00
Jeremy Long
dec2536e3e updated file header
Former-commit-id: 49307eadff2fde3fe6dd211606f414f3c1d872d2
2012-12-30 17:37:21 -05:00
Jeremy Long
30ea512dcc added equals and hashCode
Former-commit-id: 9a7aa87fdaff6395dd6c65d406aa054d925c0d6e
2012-12-30 16:50:19 -05:00
Jeremy Long
f6cdf34b25 format fix
Former-commit-id: dd0aeaa7dd3efb39e02e81892512ab1c45ba8149
2012-12-30 16:49:51 -05:00
Jeremy Long
99818d038b fixed commons-io reference
Former-commit-id: 6504b636a8b233e776d1577590b6bc36103f9d4a
2012-12-30 16:48:05 -05:00
Jeremy Long
c35ce8e195 added db4o as project-local repo
Former-commit-id: b5f672db3db5bf09930b414b3ebcc5ecc0707c7a
2012-12-30 15:58:11 -05:00
Jeremy Long
2ae856b0dd added vulnerable software
Former-commit-id: 77aced7512a8e1b7f7cba8653c7724472064003c
2012-12-30 15:57:34 -05:00
Jeremy Long
e592598990 minor update
Former-commit-id: 315b35c7098d506c3636544eb5d456a35e6c7ef1
2012-12-30 15:56:29 -05:00
Jeremy Long
07af34fbd0 minor update
Former-commit-id: 71400fe6b401169bdcec13aecededea0e7ece7a0
2012-12-30 15:56:21 -05:00
Jeremy Long
0b3e313260 adding vulnerable software
Former-commit-id: 8ce12bbab5ad294a3565f3f13e72611e3345168d
2012-12-30 09:46:21 -05:00
Jeremy Long
21947de4e0 formating update
Former-commit-id: 930cd5460070e28da8913860f727d83b318cc5b4
2012-12-30 09:31:49 -05:00
Jeremy Long
3cdd0baabb minor bug fixes
Former-commit-id: a605c8a5f8dbf18186cdfc6e4460956702100339
2012-12-30 09:30:12 -05:00
Jeremy Long
f851e62330 removed deprecated functionality
Former-commit-id: 56f9dba3e11d33a9e735465938d7c9b8997193a1
2012-12-30 09:09:23 -05:00
Jeremy Long
bea19ad8ce Update NVD CVE timestamp checking
Former-commit-id: a0b977d3b3066ff369967c4b6abad2a8d2ca0eeb
2012-12-30 08:53:14 -05:00
Jeremy Long
f5b48f5390 added Vulnerability class
Former-commit-id: 3ea88eb3c608f4eac7058c415b9e3d4eae045bae
2012-12-29 10:16:34 -05:00
Jeremy Long
cc712b86d5 updated to v0.2.4.0
Former-commit-id: 1e8ec2b1b85d5aa8ecb975c5b0cbecbf50f33141
2012-12-29 08:31:09 -05:00
Jeremy Long
0cf6cfc2b0 updates and bug fixes for CPE data
Former-commit-id: 83635e150d5030b81a6b56d55115bb4ca19089f9
2012-12-29 08:28:23 -05:00
Jeremy Long
6f19360da5 updated test data
Former-commit-id: e9c938ba4ab6d766eefde8670f2516a216341285
2012-12-22 06:44:32 -05:00
Jeremy Long
f216b4716f version 0.2.3.2
Former-commit-id: 9e85ddb155da34e54b0a2d57c79a77c2066c0326
2012-12-22 06:16:46 -05:00
Jeremy Long
3bf638f7c6 added find bugs and fixed some bugs
Former-commit-id: 4448947c0e718bdef87d241008043e76c001feea
2012-12-22 06:15:39 -05:00
Jeremy Long
5ec9a24c99 continued removal of cpe.xml - it is incomplete for our purpose
Former-commit-id: 1e1a61f92edfd8ba27530fd53fa0d21bf7862ea4
2012-12-22 04:30:26 -05:00
Jeremy Long
23caa1d0b5 bug fixes
Former-commit-id: 266897e8a32735a77f1b3e7aa1e0842e0fc69b65
2012-12-20 21:39:02 -05:00
Jeremy Long
36ecf7c7fd upgrade to lucene 4.0
Former-commit-id: 97ae6c47d6498fea873202dae257a2dfab0b683f
2012-12-16 21:26:30 -05:00
Jeremy Long
0027e75a45 bug fixes
Former-commit-id: a415f5e84dbe7c887a20a8acd18403655c82f9be
2012-12-02 22:22:25 -05:00
Jeremy Long
4cd759bfa6 fixed reported bug
Former-commit-id: a60403eea234dd78663314c9405c6629d60fa5ae
2012-11-20 20:11:08 -05:00
Jeremy Long
0f2752220a Cleaned up reporting
Former-commit-id: 87f2ddb1f8e9d764cf641d86bed23cbec4b509d7
2012-11-17 07:57:55 -05:00
Jeremy Long
ce1ed46851 v0.2.3
Former-commit-id: cb65976e03e63f296f2eefc5d8ef2c7462abc7ee
2012-11-12 14:50:04 -05:00
Jeremy Long
aa795ee7eb updated to use directory of jar instead of working directory to store data
Former-commit-id: 93b0784cd0f38445c0550737b2377618f4ebee1e
2012-11-12 14:48:39 -05:00
Jeremy Long
5c83671739 general updates
Former-commit-id: 9ad33356df25672ff4e9c91e8c1d456450069402
2012-11-12 13:36:44 -05:00
Jeremy Long
3fb9390040 location of data files is no longer the working directory, rather the location of the JAR file itself
Former-commit-id: b3f83447f9422618d6db60d49488830381787110
2012-11-12 12:19:39 -05:00
Jeremy Long
965687186c updated to v0.2.2
Former-commit-id: 68e8e536a18fb8e42943ca90e0fa10427815089e
2012-11-12 10:54:38 -05:00
Jeremy Long
83742437d6 Added support to parse pom.xml contained within a JAR
Former-commit-id: 2074209494ac958b83d49b3d9918b4badae0d17c
2012-11-12 10:53:27 -05:00
Jeremy Long
a37e53769c release v0.2.1
Former-commit-id: 9dc7ec7489e3b6f76141e342f985cb558a063c32
2012-10-30 21:27:52 -04:00
Jeremy Long
084a389a02 changed logging levels
Former-commit-id: 710e6386b39675c1672a5c2d81c62862349fac78
2012-10-30 21:21:12 -04:00
Jeremy Long
7971c42814 performance enhancement for nvd cve import.
Former-commit-id: 5a40d5798c804c4632e6ed2dd04d6d7c9e0f51b8
2012-10-30 21:13:47 -04:00
Jeremy Long
c694461abc updated data
Former-commit-id: eac04a6cce2a24bcc53db0802cd4cd2c092264e8
2012-10-30 00:39:06 -04:00
694 changed files with 368307 additions and 206900 deletions

16
.gitignore vendored
View File

@@ -1,4 +1,6 @@
*/target/**
# IntelliJ test run side-effects
dependency-check-core/data/
# Intellij project files
*.iml
*.ipr
@@ -7,8 +9,20 @@
# Eclipse project files
.classpath
.project
.settings
maven-eclipse.xml
.externalToolBuilders
.pmd
# Netbeans configuration
nb-configuration.xml
/target/
#maven-shade-plugin generated pom
dependency-reduced-pom.xml
dependency-reduced-pom.xml
#ruby Gemfile, etc. This is a java project, Gemfile is here to check site problem with Jekyll
Gemfile
Gemfile.lock
_site/**
#unknown as to why these are showing up... but need to be ignored.
.LCKpom.xml~
#coverity
/cov-int/

View File

@@ -1,674 +1,202 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,3 +1,4 @@
[![Build Status](https://dependency-check.ci.cloudbees.com/buildStatus/icon?job=dependency-check)](https://dependency-check.ci.cloudbees.com/job/dependency-check/)
Dependency-Check
================
@@ -9,12 +10,14 @@ Current Releases
-------------
### Jenkins Plugin
For instructions on the use of the Jenkins plugin please see the [Jenkins dependency-check page](http://wiki.jenkins-ci.org/x/CwDgAQ).
For instructions on the use of the Jenkins plugin please see the [OWASP Dependency-Check Plugin page](https://wiki.jenkins-ci.org/display/JENKINS/OWASP+Dependency-Check+Plugin).
### Command Line
More detailed instructions can be found on the [dependency-check github pages](http://jeremylong.github.io/DependencyCheck/dependency-check-cli/installation.html).
The latest CLI can be downloaded from bintray's [dependency-check page](https://bintray.com/jeremy-long/owasp/dependency-check).
More detailed instructions can be found on the
[dependency-check github pages](http://jeremylong.github.io/DependencyCheck/dependency-check-cli/).
The latest CLI can be downloaded from bintray's
[dependency-check page](https://bintray.com/jeremy-long/owasp/dependency-check).
On *nix
```
@@ -26,10 +29,16 @@ On Windows
> bin/dependency-check.bat -h
> bin/dependency-check.bat --app Testing --out . --scan [path to jar files to be scanned]
```
On Mac with [Homebrew](http://brew.sh)
```
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --app Testing --out . --scan [path to jar files to be scanned]
```
### Maven Plugin
More detailed instructions can be found on the [dependency-check-maven github pages](http://jeremylong.github.io/DependencyCheck/dependency-check-maven/installation.html).
More detailed instructions can be found on the [dependency-check-maven github pages](http://jeremylong.github.io/DependencyCheck/dependency-check-maven).
The plugin can be configured using the following:
```xml
@@ -40,7 +49,6 @@ The plugin can be configured using the following:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>1.0.2</version>
<executions>
<execution>
<goals>
@@ -59,15 +67,19 @@ The plugin can be configured using the following:
### Ant Task
For instructions on the use of the Ant Task, please see the [dependency-check-ant github page](http://jeremylong.github.io/DependencyCheck/dependency-check-maven/installation.html).
For instructions on the use of the Ant Task, please see the [dependency-check-ant github page](http://jeremylong.github.io/DependencyCheck/dependency-check-ant).
Development Usage
-------------
The following instructions outline how to compile and use the current snapshot. While every intention is to maintain a stable snapshot it is recommended
that the release versions listed above be used.
Note, currently the install goal may take a long time to execute the integration tests. However, if this takes more then 30 minutes it is likely that the
download of data from the NVD is having an issue. This issue is still being researched and a solution should be published soon.
The repository has some large files due to test resources. The team has tried to cleanup the history as much as possible.
However, it is recommended that you perform a shallow clone to save yourself time:
```bash
git clone --depth 1 git@github.com:jeremylong/DependencyCheck.git
```
On *nix
```
@@ -82,7 +94,7 @@ On Windows
> dependency-check-cli/target/release/bin/dependency-check.bat --app Testing --out . --scan ./src/test/resources
```
Then load the resulting 'DependencyCheck-Report.html' into your favourite browser.
Then load the resulting 'DependencyCheck-Report.html' into your favorite browser.
Mailing List
------------
@@ -96,9 +108,9 @@ Archive: [google group](https://groups.google.com/forum/#!forum/dependency-check
Copyright & License
-
Dependency-Check is Copyright (c) 2012-2013 Jeremy Long. All Rights Reserved.
Dependency-Check is Copyright (c) 2012-2016 Jeremy Long. All Rights Reserved.
Permission to modify and redistribute is granted under the terms of the GPLv3 license. See the [LICENSE.txt] [GPLv3] file for the full license.
Permission to modify and redistribute is granted under the terms of the Apache 2.0 license. See the [LICENSE.txt](https://raw.githubusercontent.com/jeremylong/DependencyCheck/master/LICENSE.txt) file for the full license.
Dependency-Check makes use of several other open source libraries. Please see the [NOTICE.txt] [notices] file for more information.
@@ -106,5 +118,4 @@ Dependency-Check makes use of several other open source libraries. Please see th
[wiki]: https://github.com/jeremylong/DependencyCheck/wiki
[subscribe]: mailto:dependency-check+subscribe@googlegroups.com
[post]: mailto:dependency-check@googlegroups.com
[GPLv3]: https://github.com/jeremylong/DependencyCheck/blob/master/LICENSE.txt
[notices]: https://github.com/jeremylong/DependencyCheck/blob/master/NOTICES.txt
[notices]: https://github.com/jeremylong/DependencyCheck/blob/master/NOTICE.txt

View File

@@ -1,674 +1,202 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,9 +1,6 @@
-----------------------------
---begin dependency-check----
-----------------------------
dependency-check
OWASP dependency-check
Copyright (c) 2012-2013 Jeremy Long. All Rights Reserved.
Copyright (c) 2012-2015 Jeremy Long. All Rights Reserved.
The licenses for the software listed below can be found in the META-INF/licenses/[dependency name].
@@ -19,11 +16,3 @@ An original copy of the license agreement can be found at: http://www.h2database
This product includes data from the Common Weakness Enumeration (CWE): http://cwe.mitre.org/
This product downloads and utilizes data from the National Vulnerability Database hosted by NIST: http://nvd.nist.gov/download.cfm
-----------------------------
---end dependency-check------
-----------------------------
Notices below are from dependent libraries and have been included via maven-shade-plugin.
-----------------------------

View File

@@ -6,7 +6,7 @@ performed are a "best effort" and as such, there could be false positives as wel
vulnerabilities in 3rd party components is a well-known problem and is currently documented in the 2013 OWASP
Top 10 as [A9 - Using Components with Known Vulnerabilities](https://www.owasp.org/index.php/Top_10_2013-A9-Using_Components_with_Known_Vulnerabilities).
Documentation and links to production binary releases can be found on the [github pages](http://jeremylong.github.io/DependencyCheck/dependency-check-ant/installation.html).
Documentation and links to production binary releases can be found on the [github pages](http://jeremylong.github.io/DependencyCheck/dependency-check-ant/index.html).
Mailing List
------------
@@ -18,8 +18,8 @@ Post: [dependency-check@googlegroups.com](mailto:dependency-check@googlegroups.c
Copyright & License
-------------------
Dependency-Check is Copyright (c) 2012-2013 Jeremy Long. All Rights Reserved.
Dependency-Check is Copyright (c) 2012-2014 Jeremy Long. All Rights Reserved.
Permission to modify and redistribute is granted under the terms of the GPLv3 license. See the [LICENSE.txt](https://github.com/jeremylong/DependencyCheck/dependency-check-ant/blob/master/LICENSE.txt) file for the full license.
Permission to modify and redistribute is granted under the terms of the Apache 2.0 license. See the [LICENSE.txt](https://raw.githubusercontent.com/jeremylong/DependencyCheck/master/LICENSE.txt) file for the full license.
Dependency-Check-Ant makes use of other open source libraries. Please see the [NOTICE.txt](https://github.com/jeremylong/DependencyCheck/dependency-check-ant/blob/master/NOTICES.txt) file for more information.
Dependency-Check-Ant makes use of other open source libraries. Please see the [NOTICE.txt](https://raw.githubusercontent.com/jeremylong/DependencyCheck/master/dependency-check-ant/NOTICE.txt) file for more information.

View File

@@ -1,223 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
http://checkstyle.sourceforge.net/5.x/config.html#Checker
<property name="basedir" value="${basedir}"/>
-->
<property name="severity" value="error"/>
<module name="SuppressionFilter">
<property name="file" value="${checkstyle.suppressions.file}"/>
</module>
<module name="JavadocPackage">
<property name="allowLegacy" value="false"/>
</module>
<module name="Translation">
<property name="severity" value="warning"/>
</module>
<module name="FileTabCharacter">
<property name="eachLine" value="false"/>
</module>
<module name="FileLength">
<property name="fileExtensions" value="java"/>
</module>
<module name="NewlineAtEndOfFile">
<property name="fileExtensions" value="java"/>
<property name="lineSeparator" value="lf"/>
</module>
<module name="RegexpHeader">
<property name="headerFile" value="${checkstyle.header.file}"/>
<property name="fileExtensions" value="java"/>
<property name="id" value="header"/>
</module>
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
</module>
<module name="TreeWalker">
<property name="tabWidth" value="4"/>
<module name="AvoidStarImport"/>
<module name="ConstantName"/>
<module name="EmptyBlock"/>
<module name="EmptyForIteratorPad"/>
<module name="EqualsHashCode"/>
<module name="OneStatementPerLine"/>
<!-- module name="IllegalCatch"/ -->
<!--module name="ImportControl">
<property name="file" value="${checkstyle.importcontrol.file}"/>
</module-->
<module name="IllegalImport"/>
<module name="IllegalInstantiation"/>
<module name="IllegalThrows"/>
<module name="InnerAssignment"/>
<module name="JavadocType">
<property name="authorFormat" value="\S"/>
</module>
<module name="JavadocMethod">
<property name="allowUndeclaredRTE" value="true"/>
<property name="allowThrowsTagsForSubclasses" value="true"/>
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
<module name="JavadocVariable"/>
<module name="JavadocStyle">
<property name="scope" value="public"/>
</module>
<module name="LeftCurly">
<property name="option" value="eol"/>
<property name="tokens" value="CLASS_DEF"/>
<property name="tokens" value="CTOR_DEF"/>
<property name="tokens" value="INTERFACE_DEF"/>
<property name="tokens" value="METHOD_DEF"/>
<property name="tokens" value="LITERAL_CATCH"/>
<property name="tokens" value="LITERAL_DO"/>
<property name="tokens" value="LITERAL_ELSE"/>
<property name="tokens" value="LITERAL_FINALLY"/>
<property name="tokens" value="LITERAL_FOR"/>
<property name="tokens" value="LITERAL_IF"/>
<property name="tokens" value="LITERAL_SWITCH"/>
<property name="tokens" value="LITERAL_SYNCHRONIZED"/>
<property name="tokens" value="LITERAL_TRY"/>
<property name="tokens" value="LITERAL_WHILE"/>
</module>
<module name="OuterTypeNumber"/>
<module name="LineLength">
<property name="ignorePattern" value="^ *\* *[^ ]+$"/>
<property name="max" value="150"/>
</module>
<module name="MethodCount">
<property name="maxTotal" value="40"/>
</module>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="MethodLength">
<property name="max" value="160"/>
<property name="countEmpty" value="false"/>
</module>
<module name="MethodName"/>
<module name="MethodParamPad"/>
<module name="ModifierOrder"/>
<module name="NeedBraces"/>
<module name="NoWhitespaceAfter">
<property name="tokens" value="ARRAY_INIT"/>
<property name="tokens" value="BNOT"/>
<property name="tokens" value="DEC"/>
<property name="tokens" value="DOT"/>
<property name="tokens" value="INC"/>
<property name="tokens" value="LNOT"/>
<property name="tokens" value="UNARY_MINUS"/>
<property name="tokens" value="UNARY_PLUS"/>
</module>
<module name="NoWhitespaceBefore"/>
<module name="NoWhitespaceBefore">
<property name="tokens" value="DOT"/>
<property name="allowLineBreaks" value="true"/>
</module>
<module name="OperatorWrap"/>
<module name="OperatorWrap">
<property name="tokens" value="ASSIGN"/>
<property name="tokens" value="DIV_ASSIGN"/>
<property name="tokens" value="PLUS_ASSIGN"/>
<property name="tokens" value="MINUS_ASSIGN"/>
<property name="tokens" value="STAR_ASSIGN"/>
<property name="tokens" value="MOD_ASSIGN"/>
<property name="tokens" value="SR_ASSIGN"/>
<property name="tokens" value="BSR_ASSIGN"/>
<property name="tokens" value="SL_ASSIGN"/>
<property name="tokens" value="BXOR_ASSIGN"/>
<property name="tokens" value="BOR_ASSIGN"/>
<property name="tokens" value="BAND_ASSIGN"/>
<property name="option" value="eol"/>
</module>
<module name="PackageName"/>
<module name="ParameterName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="ParameterNumber">
<property name="id" value="paramNum"/>
</module>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="RedundantImport"/>
<module name="RedundantModifier"/>
<module name="RightCurly">
<property name="option" value="same"/>
</module>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<module name="StaticVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="TypeName"/>
<module name="UnusedImports"/>
<module name="UpperEll"/>
<module name="VisibilityModifier"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<module name="GenericWhitespace"/>
<module name="FinalClass"/>
<module name="MissingSwitchDefault"/>
<!--module name="MagicNumber"/-->
<!--module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="0"/>
</module-->
<module name="ArrayTrailingComma"/>
<module name="FinalLocalVariable"/>
<module name="EqualsAvoidNull"/>
<module name="ParameterAssignment"/>
<!-- Generates quite a few errors -->
<module name="CyclomaticComplexity">
<property name="severity" value="ignore"/>
</module>
<module name="NestedForDepth">
<property name="max" value="2"/>
</module>
<module name="NestedIfDepth">
<property name="max" value="4"/>
</module>
<module name="NestedTryDepth">
<property name="max" value="2"/>
</module>
<!--module name="ExplicitInitialization"/-->
<module name="AnnotationUseStyle"/>
<module name="MissingDeprecated"/>
<module name="MissingOverride">
<property name="javaFiveCompatibility" value="true"/>
</module>
<module name="PackageAnnotation"/>
<module name="SuppressWarnings"/>
<module name="OuterTypeFilename"/>
<module name="HideUtilityClassConstructor"/>
</module>
</module>

View File

@@ -1,19 +0,0 @@
^/\*\s*$
^ \* This file is part of dependency-check-ant\.\s*$
^ \*\s*$
^ \* Dependency-check-ant is free software\: you can redistribute it and/or modify it\s*$
^ \* under the terms of the GNU General Public License as published by the Free\s*$
^ \* Software Foundation, either version 3 of the License, or \(at your option\) any\s*$
^ \* later version\.
^ \*\s*$
^ \* Dependency-check-ant is distributed in the hope that it will be useful, but\s*$
^ \* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\s*$
^ \* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\s*$
^ \* details\.\s*$
^ \*\s*$
^ \* You should have received a copy of the GNU General Public License along with\s*$
^ \* dependency-check-ant\. If not, see http://www.gnu.org/licenses/\.\s*$
^ \*\s*$
^ \* Copyright \(c\) 2013 (Jeremy Long|Steve Springett)\. All Rights Reserved\.\s*$
^ \*/\s*$
^package

View File

@@ -1,9 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
<suppressions>
<suppress checks=".*" files=".*[\\/]package-info\.java" />
</suppressions>

View File

@@ -1,35 +1,33 @@
<!--
This file is part of dependency-check-ant.
Dependency-check-ant is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Dependency-check is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
http://www.apache.org/licenses/LICENSE-2.0
You should have received a copy of the GNU General Public License
along with dependency-check-ant. If not, see <http://www.gnu.org/licenses />.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright (c) 2013 - Jeremy Long. All Rights Reserved.
-->
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-parent</artifactId>
<version>1.0.5</version>
<version>1.3.6</version>
</parent>
<artifactId>dependency-check-ant</artifactId>
<packaging>jar</packaging>
<name>Dependency-Check Ant Task</name>
<description>Dependency-check is a utility that attempts to detect publicly disclosed vulnerabilities contained within project dependencies. It does this by determining if there is a Common Platform Enumeration (CPE) identifier for a given dependency. If found, it will generate a report linking to the associated CVE entries.</description>
<description>dependency-check-ant is an Ant Task that uses dependency-check-core to detect publicly disclosed vulnerabilities associated with the project's dependencies. The task will generate a report listing the dependency, any identified Common Platform Enumeration (CPE) identifiers, and the associated Common Vulnerability and Exposure (CVE) entries.</description>
<!-- begin copy from http://minds.coremedia.com/2012/09/11/problem-solved-deploy-multi-module-maven-project-site-as-github-pages/ -->
<distributionManagement>
<site>
@@ -70,7 +68,6 @@ Copyright (c) 2013 - Jeremy Long. All Rights Reserved.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<escapeWindowsPaths>false</escapeWindowsPaths>
</configuration>
@@ -195,50 +192,40 @@ Copyright (c) 2013 - Jeremy Long. All Rights Reserved.
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/NOTICE.txt</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
<resource>META-INF/NOTICE</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
<resource>META-INF/LICENSE</resource>
</transformer>
</transformers>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<attach>false</attach> <!-- don't install/deploy this archive -->
</configuration>
<executions>
<execution>
<id>create-distribution</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/release.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<excludes>
<exclude>**/checkstyle*</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<check>
<branchRate>85</branchRate>
@@ -268,14 +255,9 @@ Copyright (c) 2013 - Jeremy Long. All Rights Reserved.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
<systemProperties>
<property>
<name>net.sourceforge.cobertura.datafile</name>
<value>${project.build.directory}/cobertura/cobertura.ser</value>
<workingDirectory>target</workingDirectory>
</property>
<property>
<name>data.directory</name>
<value>${project.build.directory}/dependency-check-data</value>
@@ -283,154 +265,55 @@ Copyright (c) 2013 - Jeremy Long. All Rights Reserved.
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${reporting.checkstyle-plugin.version}</version>
<configuration>
<showDeprecation>false</showDeprecation>
<enableRulesSummary>false</enableRulesSummary>
<enableFilesSummary>false</enableFilesSummary>
<configLocation>${basedir}/../src/main/config/checkstyle-checks.xml</configLocation>
<headerLocation>${basedir}/../src/main/config/checkstyle-header.txt</headerLocation>
<suppressionsLocation>${basedir}/../src/main/config/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<artifactId>maven-pmd-plugin</artifactId>
<version>${reporting.pmd-plugin.version}</version>
<configuration>
<skipDeploy>true</skipDeploy>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.6</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>summary</report>
<report>license</report>
<report>help</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<reportSets>
<reportSet>
<id>default</id>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.0</version>
<reportSets>
<reportSet>
<reports>
<report>dependency-updates-report</report>
<report>plugin-updates-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.14</version>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.4</version>
<configuration>
<tagListOptions>
<tagClasses>
<tagClass>
<displayName>Todo Work</displayName>
<tags>
<tag>
<matchString>todo</matchString>
<matchType>ignoreCase</matchType>
</tag>
<tag>
<matchString>FIXME</matchString>
<matchType>exact</matchType>
</tag>
</tags>
</tagClass>
</tagClasses>
</tagListOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.10</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<configLocation>${basedir}/config/checkstyle-checks.xml</configLocation>
<headerLocation>${basedir}/config/checkstyle-header.txt</headerLocation>
<suppressionsLocation>${basedir}/config/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<targetJdk>1.6</targetJdk>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</reportPlugins>
<targetJdk>1.6</targetJdk>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<excludes>
<exclude>**/generated/*.java</exclude>
</excludes>
<rulesets>
<ruleset>../src/main/config/dcrules.xml</ruleset>
<ruleset>/rulesets/java/basic.xml</ruleset>
<ruleset>/rulesets/java/imports.xml</ruleset>
<ruleset>/rulesets/java/unusedcode.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</build>
</reporting>
<dependencies>
<dependency>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-utils</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-core</artifactId>
@@ -441,12 +324,11 @@ Copyright (c) 2013 - Jeremy Long. All Rights Reserved.
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.9.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-testutil</artifactId>
<version>1.9.1</version>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -12,18 +12,25 @@
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<!--fileSets>
<fileSet>
<outputDirectory>/</outputDirectory>
<outputDirectory>dependency-check</outputDirectory>
<directory>${project.build.directory}</directory>
<includes>
<include>dependency-check*.jar</include>
</includes>
</fileSet>
</fileSets>
</fileSets-->
<files>
<file>
<source>${project.build.directory}/${project.artifactId}-${project.version}.jar</source>
<outputDirectory>dependency-check-ant</outputDirectory>
<destName>dependency-check-ant.jar</destName>
</file>
</files>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<outputDirectory>dependency-check-ant/lib</outputDirectory>
<scope>runtime</scope>
</dependencySet>
</dependencySets>

View File

@@ -0,0 +1,273 @@
/*
* This file is part of dependency-check-ant.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 The OWASP Foundation. All Rights Reserved.
*/
package org.owasp.dependencycheck.ant.logging;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.slf4j.helpers.FormattingTuple;
import org.slf4j.helpers.MarkerIgnoringBase;
import org.slf4j.helpers.MessageFormatter;
/**
* An instance of {@link org.slf4j.Logger} which simply calls the log method on the delegate Ant task.
*
* @author colezlaw
*/
public class AntLoggerAdapter extends MarkerIgnoringBase {
/**
* A reference to the Ant task used for logging.
*/
private Task task;
/**
* Constructs an Ant Logger Adapter.
*
* @param task the Ant Task to use for logging
*/
public AntLoggerAdapter(Task task) {
super();
this.task = task;
}
/**
* Sets the current Ant task to use for logging.
*
* @param task the Ant task to use for logging
*/
public void setTask(Task task) {
this.task = task;
}
@Override
public boolean isTraceEnabled() {
// Might be a more efficient way to do this, but Ant doesn't enable or disable
// various levels globally - it just fires things at registered Listeners.
return true;
}
@Override
public void trace(String msg) {
if (task != null) {
task.log(msg, Project.MSG_VERBOSE);
}
}
@Override
public void trace(String format, Object arg) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg);
task.log(tp.getMessage(), Project.MSG_VERBOSE);
}
}
@Override
public void trace(String format, Object arg1, Object arg2) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg1, arg2);
task.log(tp.getMessage(), Project.MSG_VERBOSE);
}
}
@Override
public void trace(String format, Object... arguments) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arguments);
task.log(tp.getMessage(), Project.MSG_VERBOSE);
}
}
@Override
public void trace(String msg, Throwable t) {
if (task != null) {
task.log(msg, t, Project.MSG_VERBOSE);
}
}
@Override
public boolean isDebugEnabled() {
return true;
}
@Override
public void debug(String msg) {
if (task != null) {
task.log(msg, Project.MSG_DEBUG);
}
}
@Override
public void debug(String format, Object arg) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg);
task.log(tp.getMessage(), Project.MSG_DEBUG);
}
}
@Override
public void debug(String format, Object arg1, Object arg2) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg1, arg2);
task.log(tp.getMessage(), Project.MSG_DEBUG);
}
}
@Override
public void debug(String format, Object... arguments) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arguments);
task.log(tp.getMessage(), Project.MSG_DEBUG);
}
}
@Override
public void debug(String msg, Throwable t) {
if (task != null) {
task.log(msg, t, Project.MSG_DEBUG);
}
}
@Override
public boolean isInfoEnabled() {
return true;
}
@Override
public void info(String msg) {
if (task != null) {
task.log(msg, Project.MSG_INFO);
}
}
@Override
public void info(String format, Object arg) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg);
task.log(tp.getMessage(), Project.MSG_INFO);
}
}
@Override
public void info(String format, Object arg1, Object arg2) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg1, arg2);
task.log(tp.getMessage(), Project.MSG_INFO);
}
}
@Override
public void info(String format, Object... arguments) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arguments);
task.log(tp.getMessage(), Project.MSG_INFO);
}
}
@Override
public void info(String msg, Throwable t) {
if (task != null) {
task.log(msg, t, Project.MSG_INFO);
}
}
@Override
public boolean isWarnEnabled() {
return true;
}
@Override
public void warn(String msg) {
if (task != null) {
task.log(msg, Project.MSG_WARN);
}
}
@Override
public void warn(String format, Object arg) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg);
task.log(tp.getMessage(), Project.MSG_WARN);
}
}
@Override
public void warn(String format, Object... arguments) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arguments);
task.log(tp.getMessage(), Project.MSG_WARN);
}
}
@Override
public void warn(String format, Object arg1, Object arg2) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg1, arg2);
task.log(tp.getMessage(), Project.MSG_WARN);
}
}
@Override
public void warn(String msg, Throwable t) {
if (task != null) {
task.log(msg, t, Project.MSG_WARN);
}
}
@Override
public boolean isErrorEnabled() {
return true;
}
@Override
public void error(String msg) {
if (task != null) {
task.log(msg, Project.MSG_ERR);
}
}
@Override
public void error(String format, Object arg) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg);
task.log(tp.getMessage(), Project.MSG_ERR);
}
}
@Override
public void error(String format, Object arg1, Object arg2) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arg1, arg2);
task.log(tp.getMessage(), Project.MSG_ERR);
}
}
@Override
public void error(String format, Object... arguments) {
if (task != null) {
final FormattingTuple tp = MessageFormatter.format(format, arguments);
task.log(tp.getMessage(), Project.MSG_ERR);
}
}
@Override
public void error(String msg, Throwable t) {
if (task != null) {
task.log(msg, t, Project.MSG_ERR);
}
}
}

View File

@@ -0,0 +1,56 @@
/*
* This file is part of dependency-check-ant.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 The OWASP Foundation. All Rights Reserved.
*/
package org.owasp.dependencycheck.ant.logging;
import org.apache.tools.ant.Task;
import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
/**
* An implementation of {@link org.slf4j.ILoggerFactory} which always returns {@link AntLoggerAdapter} instances.
*
* @author colezlaw
*/
public class AntLoggerFactory implements ILoggerFactory {
/**
* A reference to the Ant logger Adapter.
*/
private final AntLoggerAdapter antLoggerAdapter;
/**
* Constructs a new Ant Logger Factory.
*
* @param task the Ant task to use for logging
*/
public AntLoggerFactory(Task task) {
super();
this.antLoggerAdapter = new AntLoggerAdapter(task);
}
/**
* Returns the Ant logger adapter.
*
* @param name ignored in this implementation
* @return the Ant logger adapter
*/
@Override
public Logger getLogger(String name) {
return antLoggerAdapter;
}
}

View File

@@ -0,0 +1,4 @@
/**
* This package includes the Ant task definitions.
*/
package org.owasp.dependencycheck.ant.logging;

View File

@@ -0,0 +1,966 @@
/*
* This file is part of dependency-check-ant.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.taskdefs;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.EnumeratedAttribute;
import org.apache.tools.ant.types.Reference;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
import org.apache.tools.ant.types.resources.FileProvider;
import org.apache.tools.ant.types.resources.Resources;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.data.nvdcve.CveDB;
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Identifier;
import org.owasp.dependencycheck.dependency.Vulnerability;
import org.owasp.dependencycheck.reporting.ReportGenerator;
import org.owasp.dependencycheck.reporting.ReportGenerator.Format;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.impl.StaticLoggerBinder;
/**
* An Ant task definition to execute dependency-check during an Ant build.
*
* @author Jeremy Long
*/
public class Check extends Update {
/**
* System specific new line character.
*/
private static final String NEW_LINE = System.getProperty("line.separator", "\n").intern();
/**
* Construct a new DependencyCheckTask.
*/
public Check() {
super();
// Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from
// core end up coming through this tasks logger
StaticLoggerBinder.getSingleton().setTask(this);
}
//The following code was copied Apache Ant PathConvert
//BEGIN COPY from org.apache.tools.ant.taskdefs.PathConvert
/**
* Path to be converted
*/
private Resources path = null;
/**
* Reference to path/fileset to convert
*/
private Reference refid = null;
/**
* Add an arbitrary ResourceCollection.
*
* @param rc the ResourceCollection to add.
* @since Ant 1.7
*/
public void add(ResourceCollection rc) {
if (isReference()) {
throw new BuildException("Nested elements are not allowed when using the refid attribute.");
}
getPath().add(rc);
}
/**
* Returns the path. If the path has not been initialized yet, this class is synchronized, and will instantiate the path
* object.
*
* @return the path
*/
private synchronized Resources getPath() {
if (path == null) {
path = new Resources(getProject());
path.setCache(true);
}
return path;
}
/**
* Learn whether the refid attribute of this element been set.
*
* @return true if refid is valid.
*/
public boolean isReference() {
return refid != null;
}
/**
* Add a reference to a Path, FileSet, DirSet, or FileList defined elsewhere.
*
* @param r the reference to a path, fileset, dirset or filelist.
*/
public void setRefid(Reference r) {
if (path != null) {
throw new BuildException("Nested elements are not allowed when using the refid attribute.");
}
refid = r;
}
/**
* If this is a reference, this method will add the referenced resource collection to the collection of paths.
*
* @throws BuildException if the reference is not to a resource collection
*/
private void dealWithReferences() throws BuildException {
if (isReference()) {
final Object o = refid.getReferencedObject(getProject());
if (!(o instanceof ResourceCollection)) {
throw new BuildException("refid '" + refid.getRefId()
+ "' does not refer to a resource collection.");
}
getPath().add((ResourceCollection) o);
}
}
// END COPY from org.apache.tools.ant.taskdefs
/**
* The application name for the report.
*
* @deprecated use projectName instead.
*/
@Deprecated
private String applicationName = null;
/**
* Get the value of applicationName.
*
* @return the value of applicationName
*
* @deprecated use projectName instead.
*/
@Deprecated
public String getApplicationName() {
return applicationName;
}
/**
* Set the value of applicationName.
*
* @param applicationName new value of applicationName
* @deprecated use projectName instead.
*/
@Deprecated
public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
/**
* The name of the project being analyzed.
*/
private String projectName = "dependency-check";
/**
* Get the value of projectName.
*
* @return the value of projectName
*/
public String getProjectName() {
if (applicationName != null) {
log("Configuration 'applicationName' has been deprecated, please use 'projectName' instead", Project.MSG_WARN);
if ("dependency-check".equals(projectName)) {
projectName = applicationName;
}
}
return projectName;
}
/**
* Set the value of projectName.
*
* @param projectName new value of projectName
*/
public void setProjectName(String projectName) {
this.projectName = projectName;
}
/**
* Specifies the destination directory for the generated Dependency-Check report.
*/
private String reportOutputDirectory = ".";
/**
* Get the value of reportOutputDirectory.
*
* @return the value of reportOutputDirectory
*/
public String getReportOutputDirectory() {
return reportOutputDirectory;
}
/**
* Set the value of reportOutputDirectory.
*
* @param reportOutputDirectory new value of reportOutputDirectory
*/
public void setReportOutputDirectory(String reportOutputDirectory) {
this.reportOutputDirectory = reportOutputDirectory;
}
/**
* Specifies if the build should be failed if a CVSS score above a specified level is identified. The default is 11 which
* means since the CVSS scores are 0-10, by default the build will never fail and the CVSS score is set to 11. The valid range
* for the fail build on CVSS is 0 to 11, where anything above 10 will not cause the build to fail.
*/
private float failBuildOnCVSS = 11;
/**
* Get the value of failBuildOnCVSS.
*
* @return the value of failBuildOnCVSS
*/
public float getFailBuildOnCVSS() {
return failBuildOnCVSS;
}
/**
* Set the value of failBuildOnCVSS.
*
* @param failBuildOnCVSS new value of failBuildOnCVSS
*/
public void setFailBuildOnCVSS(float failBuildOnCVSS) {
this.failBuildOnCVSS = failBuildOnCVSS;
}
/**
* Sets whether auto-updating of the NVD CVE/CPE data is enabled. It is not recommended that this be turned to false. Default
* is true.
*/
private Boolean autoUpdate;
/**
* Get the value of autoUpdate.
*
* @return the value of autoUpdate
*/
public Boolean isAutoUpdate() {
return autoUpdate;
}
/**
* Set the value of autoUpdate.
*
* @param autoUpdate new value of autoUpdate
*/
public void setAutoUpdate(Boolean autoUpdate) {
this.autoUpdate = autoUpdate;
}
/**
* Whether only the update phase should be executed.
*
* @deprecated Use the update task instead
*/
@Deprecated
private boolean updateOnly = false;
/**
* Get the value of updateOnly.
*
* @return the value of updateOnly
* @deprecated Use the update task instead
*/
@Deprecated
public boolean isUpdateOnly() {
return updateOnly;
}
/**
* Set the value of updateOnly.
*
* @param updateOnly new value of updateOnly
* @deprecated Use the update task instead
*/
@Deprecated
public void setUpdateOnly(boolean updateOnly) {
this.updateOnly = updateOnly;
}
/**
* The report format to be generated (HTML, XML, VULN, ALL). Default is HTML.
*/
private String reportFormat = "HTML";
/**
* Get the value of reportFormat.
*
* @return the value of reportFormat
*/
public String getReportFormat() {
return reportFormat;
}
/**
* Set the value of reportFormat.
*
* @param reportFormat new value of reportFormat
*/
public void setReportFormat(ReportFormats reportFormat) {
this.reportFormat = reportFormat.getValue();
}
/**
* The path to the suppression file.
*/
private String suppressionFile;
/**
* Get the value of suppressionFile.
*
* @return the value of suppressionFile
*/
public String getSuppressionFile() {
return suppressionFile;
}
/**
* Set the value of suppressionFile.
*
* @param suppressionFile new value of suppressionFile
*/
public void setSuppressionFile(String suppressionFile) {
this.suppressionFile = suppressionFile;
}
/**
* flag indicating whether or not to show a summary of findings.
*/
private boolean showSummary = true;
/**
* Get the value of showSummary.
*
* @return the value of showSummary
*/
public boolean isShowSummary() {
return showSummary;
}
/**
* Set the value of showSummary.
*
* @param showSummary new value of showSummary
*/
public void setShowSummary(boolean showSummary) {
this.showSummary = showSummary;
}
/**
* Whether or not the Jar Analyzer is enabled.
*/
private Boolean jarAnalyzerEnabled;
/**
* Returns whether or not the analyzer is enabled.
*
* @return true if the analyzer is enabled
*/
public Boolean isJarAnalyzerEnabled() {
return jarAnalyzerEnabled;
}
/**
* Sets whether or not the analyzer is enabled.
*
* @param jarAnalyzerEnabled the value of the new setting
*/
public void setJarAnalyzerEnabled(Boolean jarAnalyzerEnabled) {
this.jarAnalyzerEnabled = jarAnalyzerEnabled;
}
/**
* Whether or not the Archive Analyzer is enabled.
*/
private Boolean archiveAnalyzerEnabled;
/**
* Returns whether or not the analyzer is enabled.
*
* @return true if the analyzer is enabled
*/
public Boolean isArchiveAnalyzerEnabled() {
return archiveAnalyzerEnabled;
}
/**
* Whether or not the .NET Assembly Analyzer is enabled.
*/
private Boolean assemblyAnalyzerEnabled;
/**
* Sets whether or not the analyzer is enabled.
*
* @param archiveAnalyzerEnabled the value of the new setting
*/
public void setArchiveAnalyzerEnabled(Boolean archiveAnalyzerEnabled) {
this.archiveAnalyzerEnabled = archiveAnalyzerEnabled;
}
/**
* Returns whether or not the analyzer is enabled.
*
* @return true if the analyzer is enabled
*/
public Boolean isAssemblyAnalyzerEnabled() {
return assemblyAnalyzerEnabled;
}
/**
* Sets whether or not the analyzer is enabled.
*
* @param assemblyAnalyzerEnabled the value of the new setting
*/
public void setAssemblyAnalyzerEnabled(Boolean assemblyAnalyzerEnabled) {
this.assemblyAnalyzerEnabled = assemblyAnalyzerEnabled;
}
/**
* Whether or not the .NET Nuspec Analyzer is enabled.
*/
private Boolean nuspecAnalyzerEnabled;
/**
* Returns whether or not the analyzer is enabled.
*
* @return true if the analyzer is enabled
*/
public Boolean isNuspecAnalyzerEnabled() {
return nuspecAnalyzerEnabled;
}
/**
* Sets whether or not the analyzer is enabled.
*
* @param nuspecAnalyzerEnabled the value of the new setting
*/
public void setNuspecAnalyzerEnabled(Boolean nuspecAnalyzerEnabled) {
this.nuspecAnalyzerEnabled = nuspecAnalyzerEnabled;
}
/**
* Whether or not the PHP Composer Analyzer is enabled.
*/
private Boolean composerAnalyzerEnabled;
/**
* Get the value of composerAnalyzerEnabled.
*
* @return the value of composerAnalyzerEnabled
*/
public Boolean isComposerAnalyzerEnabled() {
return composerAnalyzerEnabled;
}
/**
* Set the value of composerAnalyzerEnabled.
*
* @param composerAnalyzerEnabled new value of composerAnalyzerEnabled
*/
public void setComposerAnalyzerEnabled(Boolean composerAnalyzerEnabled) {
this.composerAnalyzerEnabled = composerAnalyzerEnabled;
}
/**
* Whether the autoconf analyzer should be enabled.
*/
private Boolean autoconfAnalyzerEnabled;
/**
* Get the value of autoconfAnalyzerEnabled.
*
* @return the value of autoconfAnalyzerEnabled
*/
public Boolean isAutoconfAnalyzerEnabled() {
return autoconfAnalyzerEnabled;
}
/**
* Set the value of autoconfAnalyzerEnabled.
*
* @param autoconfAnalyzerEnabled new value of autoconfAnalyzerEnabled
*/
public void setAutoconfAnalyzerEnabled(Boolean autoconfAnalyzerEnabled) {
this.autoconfAnalyzerEnabled = autoconfAnalyzerEnabled;
}
/**
* Whether the CMake analyzer should be enabled.
*/
private Boolean cmakeAnalyzerEnabled;
/**
* Get the value of cmakeAnalyzerEnabled.
*
* @return the value of cmakeAnalyzerEnabled
*/
public Boolean isCMakeAnalyzerEnabled() {
return cmakeAnalyzerEnabled;
}
/**
* Set the value of cmakeAnalyzerEnabled.
*
* @param cmakeAnalyzerEnabled new value of cmakeAnalyzerEnabled
*/
public void setCMakeAnalyzerEnabled(Boolean cmakeAnalyzerEnabled) {
this.cmakeAnalyzerEnabled = cmakeAnalyzerEnabled;
}
/**
* Whether or not the openssl analyzer is enabled.
*/
private Boolean opensslAnalyzerEnabled;
/**
* Get the value of opensslAnalyzerEnabled.
*
* @return the value of opensslAnalyzerEnabled
*/
public Boolean isOpensslAnalyzerEnabled() {
return opensslAnalyzerEnabled;
}
/**
* Set the value of opensslAnalyzerEnabled.
*
* @param opensslAnalyzerEnabled new value of opensslAnalyzerEnabled
*/
public void setOpensslAnalyzerEnabled(Boolean opensslAnalyzerEnabled) {
this.opensslAnalyzerEnabled = opensslAnalyzerEnabled;
}
/**
* Whether or not the Node.js Analyzer is enabled.
*/
private Boolean nodeAnalyzerEnabled;
/**
* Get the value of nodeAnalyzerEnabled.
*
* @return the value of nodeAnalyzerEnabled
*/
public Boolean isNodeAnalyzerEnabled() {
return nodeAnalyzerEnabled;
}
/**
* Set the value of nodeAnalyzerEnabled.
*
* @param nodeAnalyzerEnabled new value of nodeAnalyzerEnabled
*/
public void setNodeAnalyzerEnabled(Boolean nodeAnalyzerEnabled) {
this.nodeAnalyzerEnabled = nodeAnalyzerEnabled;
}
/**
* Whether the ruby gemspec analyzer should be enabled.
*/
private Boolean rubygemsAnalyzerEnabled;
/**
* Get the value of rubygemsAnalyzerEnabled.
*
* @return the value of rubygemsAnalyzerEnabled
*/
public Boolean isRubygemsAnalyzerEnabled() {
return rubygemsAnalyzerEnabled;
}
/**
* Set the value of rubygemsAnalyzerEnabled.
*
* @param rubygemsAnalyzerEnabled new value of rubygemsAnalyzerEnabled
*/
public void setRubygemsAnalyzerEnabled(Boolean rubygemsAnalyzerEnabled) {
this.rubygemsAnalyzerEnabled = rubygemsAnalyzerEnabled;
}
/**
* Whether the python package analyzer should be enabled.
*/
private Boolean pyPackageAnalyzerEnabled;
/**
* Get the value of pyPackageAnalyzerEnabled.
*
* @return the value of pyPackageAnalyzerEnabled
*/
public Boolean isPyPackageAnalyzerEnabled() {
return pyPackageAnalyzerEnabled;
}
/**
* Set the value of pyPackageAnalyzerEnabled.
*
* @param pyPackageAnalyzerEnabled new value of pyPackageAnalyzerEnabled
*/
public void setPyPackageAnalyzerEnabled(Boolean pyPackageAnalyzerEnabled) {
this.pyPackageAnalyzerEnabled = pyPackageAnalyzerEnabled;
}
/**
* Whether the python distribution analyzer should be enabled.
*/
private Boolean pyDistributionAnalyzerEnabled;
/**
* Get the value of pyDistributionAnalyzerEnabled.
*
* @return the value of pyDistributionAnalyzerEnabled
*/
public Boolean isPyDistributionAnalyzerEnabled() {
return pyDistributionAnalyzerEnabled;
}
/**
* Set the value of pyDistributionAnalyzerEnabled.
*
* @param pyDistributionAnalyzerEnabled new value of pyDistributionAnalyzerEnabled
*/
public void setPyDistributionAnalyzerEnabled(Boolean pyDistributionAnalyzerEnabled) {
this.pyDistributionAnalyzerEnabled = pyDistributionAnalyzerEnabled;
}
/**
* Whether or not the central analyzer is enabled.
*/
private Boolean centralAnalyzerEnabled;
/**
* Get the value of centralAnalyzerEnabled.
*
* @return the value of centralAnalyzerEnabled
*/
public Boolean isCentralAnalyzerEnabled() {
return centralAnalyzerEnabled;
}
/**
* Set the value of centralAnalyzerEnabled.
*
* @param centralAnalyzerEnabled new value of centralAnalyzerEnabled
*/
public void setCentralAnalyzerEnabled(Boolean centralAnalyzerEnabled) {
this.centralAnalyzerEnabled = centralAnalyzerEnabled;
}
/**
* Whether or not the nexus analyzer is enabled.
*/
private Boolean nexusAnalyzerEnabled;
/**
* Get the value of nexusAnalyzerEnabled.
*
* @return the value of nexusAnalyzerEnabled
*/
public Boolean isNexusAnalyzerEnabled() {
return nexusAnalyzerEnabled;
}
/**
* Set the value of nexusAnalyzerEnabled.
*
* @param nexusAnalyzerEnabled new value of nexusAnalyzerEnabled
*/
public void setNexusAnalyzerEnabled(Boolean nexusAnalyzerEnabled) {
this.nexusAnalyzerEnabled = nexusAnalyzerEnabled;
}
/**
* The URL of a Nexus server's REST API end point (http://domain/nexus/service/local).
*/
private String nexusUrl;
/**
* Get the value of nexusUrl.
*
* @return the value of nexusUrl
*/
public String getNexusUrl() {
return nexusUrl;
}
/**
* Set the value of nexusUrl.
*
* @param nexusUrl new value of nexusUrl
*/
public void setNexusUrl(String nexusUrl) {
this.nexusUrl = nexusUrl;
}
/**
* Whether or not the defined proxy should be used when connecting to Nexus.
*/
private Boolean nexusUsesProxy;
/**
* Get the value of nexusUsesProxy.
*
* @return the value of nexusUsesProxy
*/
public Boolean isNexusUsesProxy() {
return nexusUsesProxy;
}
/**
* Set the value of nexusUsesProxy.
*
* @param nexusUsesProxy new value of nexusUsesProxy
*/
public void setNexusUsesProxy(Boolean nexusUsesProxy) {
this.nexusUsesProxy = nexusUsesProxy;
}
/**
* Additional ZIP File extensions to add analyze. This should be a comma-separated list of file extensions to treat like ZIP
* files.
*/
private String zipExtensions;
/**
* Get the value of zipExtensions.
*
* @return the value of zipExtensions
*/
public String getZipExtensions() {
return zipExtensions;
}
/**
* Set the value of zipExtensions.
*
* @param zipExtensions new value of zipExtensions
*/
public void setZipExtensions(String zipExtensions) {
this.zipExtensions = zipExtensions;
}
/**
* The path to Mono for .NET assembly analysis on non-windows systems.
*/
private String pathToMono;
/**
* Get the value of pathToMono.
*
* @return the value of pathToMono
*/
public String getPathToMono() {
return pathToMono;
}
/**
* Set the value of pathToMono.
*
* @param pathToMono new value of pathToMono
*/
public void setPathToMono(String pathToMono) {
this.pathToMono = pathToMono;
}
@Override
public void execute() throws BuildException {
dealWithReferences();
validateConfiguration();
populateSettings();
Engine engine = null;
try {
engine = new Engine(Check.class.getClassLoader());
if (isUpdateOnly()) {
log("Deprecated 'UpdateOnly' property set; please use the UpdateTask instead", Project.MSG_WARN);
engine.doUpdates();
} else {
try {
for (Resource resource : path) {
final FileProvider provider = resource.as(FileProvider.class);
if (provider != null) {
final File file = provider.getFile();
if (file != null && file.exists()) {
engine.scan(file);
}
}
}
engine.analyzeDependencies();
DatabaseProperties prop = null;
CveDB cve = null;
try {
cve = new CveDB();
cve.open();
prop = cve.getDatabaseProperties();
} catch (DatabaseException ex) {
log("Unable to retrieve DB Properties", ex, Project.MSG_DEBUG);
} finally {
if (cve != null) {
cve.close();
}
}
final ReportGenerator reporter = new ReportGenerator(getProjectName(), engine.getDependencies(), engine.getAnalyzers(), prop);
reporter.generateReports(reportOutputDirectory, reportFormat);
if (this.failBuildOnCVSS <= 10) {
checkForFailure(engine.getDependencies());
}
if (this.showSummary) {
showSummary(engine.getDependencies());
}
} catch (IOException ex) {
log("Unable to generate dependency-check report", ex, Project.MSG_DEBUG);
throw new BuildException("Unable to generate dependency-check report", ex);
} catch (Exception ex) {
log("An exception occurred; unable to continue task", ex, Project.MSG_DEBUG);
throw new BuildException("An exception occurred; unable to continue task", ex);
}
}
} catch (DatabaseException ex) {
log("Unable to connect to the dependency-check database; analysis has stopped", ex, Project.MSG_ERR);
} finally {
Settings.cleanup(true);
if (engine != null) {
engine.cleanup();
}
}
}
/**
* Validate the configuration to ensure the parameters have been properly configured/initialized.
*
* @throws BuildException if the task was not configured correctly.
*/
private void validateConfiguration() throws BuildException {
if (path == null) {
throw new BuildException("No project dependencies have been defined to analyze.");
}
if (failBuildOnCVSS < 0 || failBuildOnCVSS > 11) {
throw new BuildException("Invalid configuration, failBuildOnCVSS must be between 0 and 11.");
}
}
/**
* Takes the properties supplied and updates the dependency-check settings. Additionally, this sets the system properties
* required to change the proxy server, port, and connection timeout.
*
* @throws BuildException thrown when an invalid setting is configured.
*/
@Override
protected void populateSettings() throws BuildException {
super.populateSettings();
Settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate);
Settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressionFile);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled);
Settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl);
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy);
Settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions);
Settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_MONO_PATH, pathToMono);
}
/**
* Checks to see if a vulnerability has been identified with a CVSS score that is above the threshold set in the
* configuration.
*
* @param dependencies the list of dependency objects
* @throws BuildException thrown if a CVSS score is found that is higher then the threshold set
*/
private void checkForFailure(List<Dependency> dependencies) throws BuildException {
final StringBuilder ids = new StringBuilder();
for (Dependency d : dependencies) {
for (Vulnerability v : d.getVulnerabilities()) {
if (v.getCvssScore() >= failBuildOnCVSS) {
if (ids.length() == 0) {
ids.append(v.getName());
} else {
ids.append(", ").append(v.getName());
}
}
}
}
if (ids.length() > 0) {
final String msg = String.format("%n%nDependency-Check Failure:%n"
+ "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n"
+ "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString());
throw new BuildException(msg);
}
}
/**
* Generates a warning message listing a summary of dependencies and their associated CPE and CVE entries.
*
* @param dependencies a list of dependency objects
*/
private void showSummary(List<Dependency> dependencies) {
final StringBuilder summary = new StringBuilder();
for (Dependency d : dependencies) {
boolean firstEntry = true;
final StringBuilder ids = new StringBuilder();
for (Vulnerability v : d.getVulnerabilities()) {
if (firstEntry) {
firstEntry = false;
} else {
ids.append(", ");
}
ids.append(v.getName());
}
if (ids.length() > 0) {
summary.append(d.getFileName()).append(" (");
firstEntry = true;
for (Identifier id : d.getIdentifiers()) {
if (firstEntry) {
firstEntry = false;
} else {
summary.append(", ");
}
summary.append(id.getValue());
}
summary.append(") : ").append(ids).append(NEW_LINE);
}
}
if (summary.length() > 0) {
final String msg = String.format("%n%n"
+ "One or more dependencies were identified with known vulnerabilities:%n%n%s"
+ "%n%nSee the dependency-check report for more details.%n%n", summary.toString());
log(msg, Project.MSG_WARN);
}
}
/**
* An enumeration of supported report formats: "ALL", "HTML", "XML", "VULN", etc..
*/
public static class ReportFormats extends EnumeratedAttribute {
/**
* Returns the list of values for the report format.
*
* @return the list of values for the report format
*/
@Override
public String[] getValues() {
int i = 0;
final Format[] formats = Format.values();
final String[] values = new String[formats.length];
for (Format format : formats) {
values[i++] = format.name();
}
return values;
}
}
}

View File

@@ -1,571 +0,0 @@
/*
* This file is part of dependency-check-ant.
*
* Dependency-check-ant is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* Dependency-check-ant is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-ant. If not, see http://www.gnu.org/licenses/.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.taskdefs;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.EnumeratedAttribute;
import org.apache.tools.ant.types.Reference;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
import org.apache.tools.ant.types.resources.FileProvider;
import org.apache.tools.ant.types.resources.Resources;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Vulnerability;
import org.owasp.dependencycheck.reporting.ReportGenerator;
import org.owasp.dependencycheck.reporting.ReportGenerator.Format;
import org.owasp.dependencycheck.utils.LogUtils;
import org.owasp.dependencycheck.utils.Settings;
/**
* An Ant task definition to execute dependency-check during an Ant build.
*
* @author Jeremy Long (jeremy.long@owasp.org)
*/
public class DependencyCheckTask extends Task {
/**
* The properties file location.
*/
private static final String PROPERTIES_FILE = "task.properties";
/**
* Name of the logging properties file.
*/
private static final String LOG_PROPERTIES_FILE = "log.properties";
/**
* Construct a new DependencyCheckTask.
*/
public DependencyCheckTask() {
super();
}
//The following code was copied Apache Ant PathConvert
//BEGIN COPY from org.apache.tools.ant.taskdefs.PathConvert
/**
* Path to be converted
*/
private Resources path = null;
/**
* Reference to path/fileset to convert
*/
private Reference refid = null;
/**
* Add an arbitrary ResourceCollection.
*
* @param rc the ResourceCollection to add.
* @since Ant 1.7
*/
public void add(ResourceCollection rc) {
if (isReference()) {
throw new BuildException("Nested elements are not allowed when using the refid attribute.");
}
getPath().add(rc);
}
/**
* Returns the path. If the path has not been initialized yet, this class is
* synchronized, and will instantiate the path object.
*
* @return the path
*/
private synchronized Resources getPath() {
if (path == null) {
path = new Resources(getProject());
path.setCache(true);
}
return path;
}
/**
* Learn whether the refid attribute of this element been set.
*
* @return true if refid is valid.
*/
public boolean isReference() {
return refid != null;
}
/**
* Add a reference to a Path, FileSet, DirSet, or FileList defined
* elsewhere.
*
* @param r the reference to a path, fileset, dirset or filelist.
*/
public void setRefid(Reference r) {
if (path != null) {
throw new BuildException("Nested elements are not allowed when using the refid attribute.");
}
refid = r;
}
/**
* If this is a reference, this method will add the referenced resource
* collection to the collection of paths.
*
* @throws BuildException if the reference is not to a resource collection
*/
private void dealWithReferences() throws BuildException {
if (isReference()) {
final Object o = refid.getReferencedObject(getProject());
if (!(o instanceof ResourceCollection)) {
throw new BuildException("refid '" + refid.getRefId()
+ "' does not refer to a resource collection.");
}
getPath().add((ResourceCollection) o);
}
}
// END COPY from org.apache.tools.ant.taskdefs
/**
* The application name for the report.
*/
private String applicationName = "Dependency-Check";
/**
* Get the value of applicationName.
*
* @return the value of applicationName
*/
public String getApplicationName() {
return applicationName;
}
/**
* Set the value of applicationName.
*
* @param applicationName new value of applicationName
*/
public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
/**
* The location of the data directory that contains
*/
private String dataDirectory = null;
/**
* Get the value of dataDirectory.
*
* @return the value of dataDirectory
*/
public String getDataDirectory() {
return dataDirectory;
}
/**
* Set the value of dataDirectory.
*
* @param dataDirectory new value of dataDirectory
*/
public void setDataDirectory(String dataDirectory) {
this.dataDirectory = dataDirectory;
}
/**
* Specifies the destination directory for the generated Dependency-Check
* report.
*/
private String reportOutputDirectory = ".";
/**
* Get the value of reportOutputDirectory.
*
* @return the value of reportOutputDirectory
*/
public String getReportOutputDirectory() {
return reportOutputDirectory;
}
/**
* Set the value of reportOutputDirectory.
*
* @param reportOutputDirectory new value of reportOutputDirectory
*/
public void setReportOutputDirectory(String reportOutputDirectory) {
this.reportOutputDirectory = reportOutputDirectory;
}
/**
* Specifies if the build should be failed if a CVSS score above a specified
* level is identified. The default is 11 which means since the CVSS scores
* are 0-10, by default the build will never fail and the CVSS score is set
* to 11. The valid range for the fail build on CVSS is 0 to 11, where
* anything above 10 will not cause the build to fail.
*/
private float failBuildOnCVSS = 11;
/**
* Get the value of failBuildOnCVSS.
*
* @return the value of failBuildOnCVSS
*/
public float getFailBuildOnCVSS() {
return failBuildOnCVSS;
}
/**
* Set the value of failBuildOnCVSS.
*
* @param failBuildOnCVSS new value of failBuildOnCVSS
*/
public void setFailBuildOnCVSS(float failBuildOnCVSS) {
this.failBuildOnCVSS = failBuildOnCVSS;
}
/**
* Sets whether auto-updating of the NVD CVE/CPE data is enabled. It is not
* recommended that this be turned to false. Default is true.
*/
private boolean autoUpdate = true;
/**
* Get the value of autoUpdate.
*
* @return the value of autoUpdate
*/
public boolean isAutoUpdate() {
return autoUpdate;
}
/**
* Set the value of autoUpdate.
*
* @param autoUpdate new value of autoUpdate
*/
public void setAutoUpdate(boolean autoUpdate) {
this.autoUpdate = autoUpdate;
}
/**
* The report format to be generated (HTML, XML, VULN, ALL). This
* configuration option has no affect if using this within the Site plugin
* unless the externalReport is set to true. Default is HTML.
*/
private String reportFormat = "HTML";
/**
* Get the value of reportFormat.
*
* @return the value of reportFormat
*/
public String getReportFormat() {
return reportFormat;
}
/**
* Set the value of reportFormat.
*
* @param reportFormat new value of reportFormat
*/
public void setReportFormat(ReportFormats reportFormat) {
this.reportFormat = reportFormat.getValue();
}
/**
* The Proxy URL.
*/
private String proxyUrl;
/**
* Get the value of proxyUrl.
*
* @return the value of proxyUrl
*/
public String getProxyUrl() {
return proxyUrl;
}
/**
* Set the value of proxyUrl.
*
* @param proxyUrl new value of proxyUrl
*/
public void setProxyUrl(String proxyUrl) {
this.proxyUrl = proxyUrl;
}
/**
* The Proxy Port.
*/
private String proxyPort;
/**
* Get the value of proxyPort.
*
* @return the value of proxyPort
*/
public String getProxyPort() {
return proxyPort;
}
/**
* Set the value of proxyPort.
*
* @param proxyPort new value of proxyPort
*/
public void setProxyPort(String proxyPort) {
this.proxyPort = proxyPort;
}
/**
* The Proxy username.
*/
private String proxyUsername;
/**
* Get the value of proxyUsername.
*
* @return the value of proxyUsername
*/
public String getProxyUsername() {
return proxyUsername;
}
/**
* Set the value of proxyUsername.
*
* @param proxyUsername new value of proxyUsername
*/
public void setProxyUsername(String proxyUsername) {
this.proxyUsername = proxyUsername;
}
/**
* The Proxy password.
*/
private String proxyPassword;
/**
* Get the value of proxyPassword.
*
* @return the value of proxyPassword
*/
public String getProxyPassword() {
return proxyPassword;
}
/**
* Set the value of proxyPassword.
*
* @param proxyPassword new value of proxyPassword
*/
public void setProxyPassword(String proxyPassword) {
this.proxyPassword = proxyPassword;
}
/**
* The Connection Timeout.
*/
private String connectionTimeout;
/**
* Get the value of connectionTimeout.
*
* @return the value of connectionTimeout
*/
public String getConnectionTimeout() {
return connectionTimeout;
}
/**
* Set the value of connectionTimeout.
*
* @param connectionTimeout new value of connectionTimeout
*/
public void setConnectionTimeout(String connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
/**
* The file path used for verbose logging.
*/
private String logFile = null;
/**
* Get the value of logFile.
*
* @return the value of logFile
*/
public String getLogFile() {
return logFile;
}
/**
* Set the value of logFile.
*
* @param logFile new value of logFile
*/
public void setLogFile(String logFile) {
this.logFile = logFile;
}
@Override
public void execute() throws BuildException {
final InputStream in = DependencyCheckTask.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE);
LogUtils.prepareLogger(in, logFile);
dealWithReferences();
validateConfiguration();
populateSettings();
final Engine engine = new Engine();
for (Resource resource : path) {
final FileProvider provider = resource.as(FileProvider.class);
if (provider != null) {
final File file = provider.getFile();
if (file != null && file.exists()) {
engine.scan(file);
}
}
}
try {
engine.analyzeDependencies();
final ReportGenerator reporter = new ReportGenerator(applicationName, engine.getDependencies(), engine.getAnalyzers());
reporter.generateReports(reportOutputDirectory, reportFormat);
if (this.failBuildOnCVSS <= 10) {
checkForFailure(engine.getDependencies());
}
} catch (IOException ex) {
Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex);
throw new BuildException("Unable to generate dependency-check report", ex);
} catch (Exception ex) {
Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.SEVERE, null, ex);
throw new BuildException("An exception occured; unable to continue task", ex);
}
}
/**
* Validate the configuration to ensure the parameters have been properly
* configured/initialized.
*
* @throws BuildException if the task was not configured correctly.
*/
private void validateConfiguration() throws BuildException {
if (path == null) {
throw new BuildException("No project dependencies have been defined to analyze.");
}
if (failBuildOnCVSS < 0 || failBuildOnCVSS > 11) {
throw new BuildException("Invalid configuration, failBuildOnCVSS must be between 0 and 11.");
}
}
/**
* Takes the properties supplied and updates the dependency-check settings.
* Additionally, this sets the system properties required to change the
* proxy url, port, and connection timeout.
*/
private void populateSettings() {
InputStream taskProperties = null;
try {
taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);
Settings.mergeProperties(taskProperties);
} catch (IOException ex) {
Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file.");
Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex);
} finally {
if (taskProperties != null) {
try {
taskProperties.close();
} catch (IOException ex) {
Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINEST, null, ex);
}
}
}
if (dataDirectory != null) {
Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
} else {
final File jarPath = new File(DependencyCheckTask.class.getProtectionDomain().getCodeSource().getLocation().getPath());
final File base = jarPath.getParentFile();
final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY);
final File dataDir = new File(base, sub);
Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
}
Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate);
if (proxyUrl != null && !proxyUrl.isEmpty()) {
Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl);
}
if (proxyPort != null && !proxyPort.isEmpty()) {
Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort);
}
if (proxyUsername != null && !proxyUsername.isEmpty()) {
Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername);
}
if (proxyPassword != null && !proxyPassword.isEmpty()) {
Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword);
}
if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
}
}
/**
* Checks to see if a vulnerability has been identified with a CVSS score
* that is above the threshold set in the configuration.
*
* @param dependencies the list of dependency objects
* @throws BuildException thrown if a CVSS score is found that is higher
* then the threshold set
*/
private void checkForFailure(List<Dependency> dependencies) throws BuildException {
final StringBuilder ids = new StringBuilder();
for (Dependency d : dependencies) {
for (Vulnerability v : d.getVulnerabilities()) {
if (v.getCvssScore() >= failBuildOnCVSS) {
if (ids.length() == 0) {
ids.append(v.getName());
} else {
ids.append(", ").append(v.getName());
}
}
}
}
if (ids.length() > 0) {
final String msg = String.format("%n%nDependency-Check Failure:%n"
+ "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n"
+ "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString());
throw new BuildException(msg);
}
}
/**
* An enumeration of supported report formats: "ALL", "HTML", "XML", "VULN",
* etc..
*/
public static class ReportFormats extends EnumeratedAttribute {
/**
* Returns the list of values for the report format.
*
* @return the list of values for the report format
*/
@Override
public String[] getValues() {
int i = 0;
final Format[] formats = Format.values();
final String[] values = new String[formats.length];
for (Format format : formats) {
values[i++] = format.name();
}
return values;
}
}
}

View File

@@ -0,0 +1,127 @@
/*
* This file is part of dependency-check-ant.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.taskdefs;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.impl.StaticLoggerBinder;
/**
* An Ant task definition to execute dependency-check during an Ant build.
*
* @author Jeremy Long
*/
public class Purge extends Task {
/**
* The properties file location.
*/
private static final String PROPERTIES_FILE = "task.properties";
/**
* Construct a new DependencyCheckTask.
*/
public Purge() {
super();
// Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from
// core end up coming through this tasks logger
StaticLoggerBinder.getSingleton().setTask(this);
}
/**
* The location of the data directory that contains
*/
private String dataDirectory = null;
/**
* Get the value of dataDirectory.
*
* @return the value of dataDirectory
*/
public String getDataDirectory() {
return dataDirectory;
}
/**
* Set the value of dataDirectory.
*
* @param dataDirectory new value of dataDirectory
*/
public void setDataDirectory(String dataDirectory) {
this.dataDirectory = dataDirectory;
}
@Override
public void execute() throws BuildException {
populateSettings();
File db;
try {
db = new File(Settings.getDataDirectory(), "dc.h2.db");
if (db.exists()) {
if (db.delete()) {
log("Database file purged; local copy of the NVD has been removed", Project.MSG_INFO);
} else {
log(String.format("Unable to delete '%s'; please delete the file manually", db.getAbsolutePath()), Project.MSG_ERR);
}
} else {
log(String.format("Unable to purge database; the database file does not exists: %s", db.getAbsolutePath()), Project.MSG_ERR);
}
} catch (IOException ex) {
log("Unable to delete the database", Project.MSG_ERR);
} finally {
Settings.cleanup(true);
}
}
/**
* Takes the properties supplied and updates the dependency-check settings. Additionally, this sets the system properties
* required to change the proxy server, port, and connection timeout.
*/
protected void populateSettings() {
Settings.initialize();
InputStream taskProperties = null;
try {
taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);
Settings.mergeProperties(taskProperties);
} catch (IOException ex) {
log("Unable to load the dependency-check ant task.properties file.", ex, Project.MSG_WARN);
} finally {
if (taskProperties != null) {
try {
taskProperties.close();
} catch (IOException ex) {
log("", ex, Project.MSG_DEBUG);
}
}
}
if (dataDirectory != null) {
Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
} else {
final File jarPath = new File(Purge.class.getProtectionDomain().getCodeSource().getLocation().getPath());
final File base = jarPath.getParentFile();
final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY);
final File dataDir = new File(base, sub);
Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
}
}
}

View File

@@ -0,0 +1,437 @@
/*
* This file is part of dependency-check-ant.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.taskdefs;
import org.apache.tools.ant.BuildException;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.impl.StaticLoggerBinder;
/**
* An Ant task definition to execute dependency-check update. This will download the latest data from the National Vulnerability
* Database (NVD) and store a copy in the local database.
*
* @author Jeremy Long
*/
public class Update extends Purge {
/**
* Construct a new UpdateTask.
*/
public Update() {
super();
// Call this before Dependency Check Core starts logging anything - this way, all SLF4J messages from
// core end up coming through this tasks logger
StaticLoggerBinder.getSingleton().setTask(this);
}
/**
* The Proxy Server.
*/
private String proxyServer;
/**
* Get the value of proxyServer.
*
* @return the value of proxyServer
*/
public String getProxyServer() {
return proxyServer;
}
/**
* Set the value of proxyServer.
*
* @param server new value of proxyServer
*/
public void setProxyServer(String server) {
this.proxyServer = server;
}
/**
* The Proxy Port.
*/
private String proxyPort;
/**
* Get the value of proxyPort.
*
* @return the value of proxyPort
*/
public String getProxyPort() {
return proxyPort;
}
/**
* Set the value of proxyPort.
*
* @param proxyPort new value of proxyPort
*/
public void setProxyPort(String proxyPort) {
this.proxyPort = proxyPort;
}
/**
* The Proxy username.
*/
private String proxyUsername;
/**
* Get the value of proxyUsername.
*
* @return the value of proxyUsername
*/
public String getProxyUsername() {
return proxyUsername;
}
/**
* Set the value of proxyUsername.
*
* @param proxyUsername new value of proxyUsername
*/
public void setProxyUsername(String proxyUsername) {
this.proxyUsername = proxyUsername;
}
/**
* The Proxy password.
*/
private String proxyPassword;
/**
* Get the value of proxyPassword.
*
* @return the value of proxyPassword
*/
public String getProxyPassword() {
return proxyPassword;
}
/**
* Set the value of proxyPassword.
*
* @param proxyPassword new value of proxyPassword
*/
public void setProxyPassword(String proxyPassword) {
this.proxyPassword = proxyPassword;
}
/**
* The Connection Timeout.
*/
private String connectionTimeout;
/**
* Get the value of connectionTimeout.
*
* @return the value of connectionTimeout
*/
public String getConnectionTimeout() {
return connectionTimeout;
}
/**
* Set the value of connectionTimeout.
*
* @param connectionTimeout new value of connectionTimeout
*/
public void setConnectionTimeout(String connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
/**
* The database driver name; such as org.h2.Driver.
*/
private String databaseDriverName;
/**
* Get the value of databaseDriverName.
*
* @return the value of databaseDriverName
*/
public String getDatabaseDriverName() {
return databaseDriverName;
}
/**
* Set the value of databaseDriverName.
*
* @param databaseDriverName new value of databaseDriverName
*/
public void setDatabaseDriverName(String databaseDriverName) {
this.databaseDriverName = databaseDriverName;
}
/**
* The path to the database driver JAR file if it is not on the class path.
*/
private String databaseDriverPath;
/**
* Get the value of databaseDriverPath.
*
* @return the value of databaseDriverPath
*/
public String getDatabaseDriverPath() {
return databaseDriverPath;
}
/**
* Set the value of databaseDriverPath.
*
* @param databaseDriverPath new value of databaseDriverPath
*/
public void setDatabaseDriverPath(String databaseDriverPath) {
this.databaseDriverPath = databaseDriverPath;
}
/**
* The database connection string.
*/
private String connectionString;
/**
* Get the value of connectionString.
*
* @return the value of connectionString
*/
public String getConnectionString() {
return connectionString;
}
/**
* Set the value of connectionString.
*
* @param connectionString new value of connectionString
*/
public void setConnectionString(String connectionString) {
this.connectionString = connectionString;
}
/**
* The user name for connecting to the database.
*/
private String databaseUser;
/**
* Get the value of databaseUser.
*
* @return the value of databaseUser
*/
public String getDatabaseUser() {
return databaseUser;
}
/**
* Set the value of databaseUser.
*
* @param databaseUser new value of databaseUser
*/
public void setDatabaseUser(String databaseUser) {
this.databaseUser = databaseUser;
}
/**
* The password to use when connecting to the database.
*/
private String databasePassword;
/**
* Get the value of databasePassword.
*
* @return the value of databasePassword
*/
public String getDatabasePassword() {
return databasePassword;
}
/**
* Set the value of databasePassword.
*
* @param databasePassword new value of databasePassword
*/
public void setDatabasePassword(String databasePassword) {
this.databasePassword = databasePassword;
}
/**
* The url for the modified NVD CVE (1.2 schema).
*/
private String cveUrl12Modified;
/**
* Get the value of cveUrl12Modified.
*
* @return the value of cveUrl12Modified
*/
public String getCveUrl12Modified() {
return cveUrl12Modified;
}
/**
* Set the value of cveUrl12Modified.
*
* @param cveUrl12Modified new value of cveUrl12Modified
*/
public void setCveUrl12Modified(String cveUrl12Modified) {
this.cveUrl12Modified = cveUrl12Modified;
}
/**
* The url for the modified NVD CVE (2.0 schema).
*/
private String cveUrl20Modified;
/**
* Get the value of cveUrl20Modified.
*
* @return the value of cveUrl20Modified
*/
public String getCveUrl20Modified() {
return cveUrl20Modified;
}
/**
* Set the value of cveUrl20Modified.
*
* @param cveUrl20Modified new value of cveUrl20Modified
*/
public void setCveUrl20Modified(String cveUrl20Modified) {
this.cveUrl20Modified = cveUrl20Modified;
}
/**
* Base Data Mirror URL for CVE 1.2.
*/
private String cveUrl12Base;
/**
* Get the value of cveUrl12Base.
*
* @return the value of cveUrl12Base
*/
public String getCveUrl12Base() {
return cveUrl12Base;
}
/**
* Set the value of cveUrl12Base.
*
* @param cveUrl12Base new value of cveUrl12Base
*/
public void setCveUrl12Base(String cveUrl12Base) {
this.cveUrl12Base = cveUrl12Base;
}
/**
* Data Mirror URL for CVE 2.0.
*/
private String cveUrl20Base;
/**
* Get the value of cveUrl20Base.
*
* @return the value of cveUrl20Base
*/
public String getCveUrl20Base() {
return cveUrl20Base;
}
/**
* Set the value of cveUrl20Base.
*
* @param cveUrl20Base new value of cveUrl20Base
*/
public void setCveUrl20Base(String cveUrl20Base) {
this.cveUrl20Base = cveUrl20Base;
}
/**
* The number of hours to wait before re-checking for updates.
*/
private Integer cveValidForHours;
/**
* Get the value of cveValidForHours.
*
* @return the value of cveValidForHours
*/
public Integer getCveValidForHours() {
return cveValidForHours;
}
/**
* Set the value of cveValidForHours.
*
* @param cveValidForHours new value of cveValidForHours
*/
public void setCveValidForHours(Integer cveValidForHours) {
this.cveValidForHours = cveValidForHours;
}
/**
* Executes the update by initializing the settings, downloads the NVD XML data, and then processes the data storing it in the
* local database.
*
* @throws BuildException thrown if a connection to the local database cannot be made.
*/
@Override
public void execute() throws BuildException {
populateSettings();
Engine engine = null;
try {
engine = new Engine(Update.class.getClassLoader());
engine.doUpdates();
} catch (DatabaseException ex) {
throw new BuildException("Unable to connect to the dependency-check database; unable to update the NVD data", ex);
} finally {
Settings.cleanup(true);
if (engine != null) {
engine.cleanup();
}
}
}
/**
* Takes the properties supplied and updates the dependency-check settings. Additionally, this sets the system properties
* required to change the proxy server, port, and connection timeout.
*
* @throws BuildException thrown when an invalid setting is configured.
*/
@Override
protected void populateSettings() throws BuildException {
super.populateSettings();
Settings.setStringIfNotEmpty(Settings.KEYS.PROXY_SERVER, proxyServer);
Settings.setStringIfNotEmpty(Settings.KEYS.PROXY_PORT, proxyPort);
Settings.setStringIfNotEmpty(Settings.KEYS.PROXY_USERNAME, proxyUsername);
Settings.setStringIfNotEmpty(Settings.KEYS.PROXY_PASSWORD, proxyPassword);
Settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword);
Settings.setStringIfNotEmpty(Settings.KEYS.CVE_MODIFIED_12_URL, cveUrl12Modified);
Settings.setStringIfNotEmpty(Settings.KEYS.CVE_MODIFIED_20_URL, cveUrl20Modified);
Settings.setStringIfNotEmpty(Settings.KEYS.CVE_SCHEMA_1_2, cveUrl12Base);
Settings.setStringIfNotEmpty(Settings.KEYS.CVE_SCHEMA_2_0, cveUrl20Base);
if (cveValidForHours != null) {
if (cveValidForHours >= 0) {
Settings.setInt(Settings.KEYS.CVE_CHECK_VALID_FOR_HOURS, cveValidForHours);
} else {
throw new BuildException("Invalid setting: `cpeValidForHours` must be 0 or greater");
}
}
}
}

View File

@@ -1,11 +1,4 @@
/**
* <html>
* <head>
* <title>org.owasp.dependencycheck.taskdefs</title>
* </head>
* <body>
* This package includes the Ant task definitions.
* </body>
* </html>
* This package includes the a slf4j logging implementation that wraps the Ant logger.
*/
package org.owasp.dependencycheck.taskdefs;

View File

@@ -0,0 +1,103 @@
/*
* This file is part of dependency-check-ant.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 The OWASP Foundation. All Rights Reserved.
*/
package org.slf4j.impl;
import org.apache.tools.ant.Task;
import org.owasp.dependencycheck.ant.logging.AntLoggerFactory;
import org.slf4j.ILoggerFactory;
import org.slf4j.spi.LoggerFactoryBinder;
/**
* The binding of org.slf4j.LoggerFactory class with an actual instance of org.slf4j.ILoggerFactory is performed using information
* returned by this class.
*
* @author colezlaw
*/
public class StaticLoggerBinder implements LoggerFactoryBinder {
/**
* The unique instance of this class
*
*/
private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
/**
* Return the singleton of this class.
*
* @return the StaticLoggerBinder singleton
*/
public static final StaticLoggerBinder getSingleton() {
return SINGLETON;
}
/**
* Ant tasks have the log method we actually want to call. So we hang onto the task as a delegate
*/
private Task task = null;
/**
* Set the Task which will this is to log through.
*
* @param task the task through which to log
*/
public void setTask(Task task) {
this.task = task;
loggerFactory = new AntLoggerFactory(task);
}
/**
* Declare the version of the SLF4J API this implementation is compiled against. The value of this filed is usually modified
* with each release.
*/
// to avoid constant folding by the compiler, this field must *not* be final
public static String REQUESTED_API_VERSION = "1.7.12"; // final
private static final String LOGGER_FACTORY_CLASS = AntLoggerFactory.class.getName();
/**
* The ILoggerFactory instance returned by the {@link #getLoggerFactory} method should always be the smae object
*/
private ILoggerFactory loggerFactory;
/**
* Constructs a new static logger binder.
*/
private StaticLoggerBinder() {
loggerFactory = new AntLoggerFactory(task);
}
/**
* Returns the logger factory.
*
* @return the logger factory
*/
@Override
public ILoggerFactory getLoggerFactory() {
return loggerFactory;
}
/**
* Returns the logger factory class string.
*
* @return the logger factory class string
*/
@Override
public String getLoggerFactoryClassStr() {
return LOGGER_FACTORY_CLASS;
}
}

View File

@@ -0,0 +1,4 @@
/**
* This package contains the static binder for the slf4j-ant logger.
*/
package org.slf4j.impl;

View File

@@ -0,0 +1,3 @@
dependency-check=org.owasp.dependencycheck.taskdefs.Check
dependency-check-purge=org.owasp.dependencycheck.taskdefs.Purge
dependency-check-update=org.owasp.dependencycheck.taskdefs.Update

View File

@@ -1,23 +0,0 @@
handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
# logging levels
# FINEST, FINER, FINE, CONFIG, INFO, WARNING and SEVERE.
# Configure the ConsoleHandler.
java.util.logging.ConsoleHandler.level=INFO
#org.owasp.dependencycheck.data.nvdcve.xml
# Configure the FileHandler.
#java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
#java.util.logging.FileHandler.level=FINEST
# The following special tokens can be used in the pattern property
# which specifies the location and name of the log file.
# / - standard path separator
# %t - system temporary directory
# %h - value of the user.home system property
# %g - generation number for rotating logs
# %u - unique number to avoid conflicts
# FileHandler writes to %h/demo0.log by default.
#java.util.logging.FileHandler.pattern=./target/dependency-check.log

View File

@@ -1,2 +1,2 @@
# the path to the data directory
data.directory=dependency-check-data
data.directory=data/3.0

View File

@@ -1,3 +0,0 @@
# define custom tasks here
dependencycheck=org.owasp.dependencycheck.taskdefs.DependencyCheckTask

View File

@@ -0,0 +1,19 @@
Configuration
====================
The dependency-check-purge task deletes the local copy of the NVD. This task
should rarely be used, if ever. This is included as a convenience method in
the rare circumstance that the local H2 database because corrupt.
```xml
<target name="dependency-check-purge" description="Dependency-Check purge">
<dependency-check-purge />
</target>
```
Configuration: dependency-check-purge Task
--------------------
The following properties can be set on the dependency-check-purge task.
Property | Description | Default Value
----------------------|----------------------------------------------------------------|------------------
dataDirectory | Data directory that is used to store the local copy of the NVD | data

View File

@@ -0,0 +1,44 @@
Configuration
====================
The dependency-check-update task downloads and updates the local copy of the NVD.
There are several reasons that one may want to use this task; primarily, creating
an update that will be run only once a day or once every few days (but not greater
then 7 days) and then use the `autoUpdate="false"` setting on individual
dependency-check scans. See [Internet Access Required](https://jeremylong.github.io/DependencyCheck/data/index.html)
for more information on why this task would be used.
```xml
<target name="dependency-check-update" description="Dependency-Check Update">
<dependency-check-update />
</target>
```
Configuration: dependency-check-update Task
--------------------
The following properties can be set on the dependency-check task.
Property | Description | Default Value
----------------------|------------------------------------|------------------
proxyServer | The Proxy Server. | &nbsp;
proxyPort | The Proxy Port. | &nbsp;
proxyUsername | Defines the proxy user name. | &nbsp;
proxyPassword | Defines the proxy password. | &nbsp;
connectionTimeout | The URL Connection Timeout. | &nbsp;
Advanced Configuration
====================
The following properties can be configured in the plugin. However, they are less frequently changed. One exception
may be the cvedUrl properties, which can be used to host a mirror of the NVD within an enterprise environment.
Property | Description | Default Value
---------------------|-------------------------------------------------------------------------------------------------------|------------------
cveUrl12Modified | URL for the modified CVE 1.2. | https://nvd.nist.gov/download/nvdcve-Modified.xml.gz
cveUrl20Modified | URL for the modified CVE 2.0. | https://nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-Modified.xml.gz
cveUrl12Base | Base URL for each year's CVE 1.2, the %d will be replaced with the year. | https://nvd.nist.gov/download/nvdcve-%d.xml.gz
cveUrl20Base | Base URL for each year's CVE 2.0, the %d will be replaced with the year. | https://nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-%d.xml.gz
dataDirectory | Data directory that is used to store the local copy of the NVD. This should generally not be changed. | data
databaseDriverName | The name of the database driver. Example: org.h2.Driver. | &nbsp;
databaseDriverPath | The path to the database driver JAR file; only used if the driver is not in the class path. | &nbsp;
connectionString | The connection string used to connect to the database. | &nbsp;
databaseUser | The username used when connecting to the database. | &nbsp;
databasePassword | The password used when connecting to the database. | &nbsp;

View File

@@ -1,5 +1,11 @@
Configuration
====================
Once dependency-check-ant has been [installed](index.html) the defined tasks can be used.
* dependency-check - the primary task used to check the project dependencies. Configuration options are below.
* dependency-check-purge - deletes the local copy of the NVD; this should rarely be used (if ever). See the [purge configuration](config-purge.html) for more information.
* dependency-check-update - downloads and updates the local copy of the NVD. See the [update configuration](config-update.html) for more information.
To configure the dependency-check task you can add it to a target and include a
file based [resource collection](http://ant.apache.org/manual/Types/resources.html#collection)
such as a [FileSet](http://ant.apache.org/manual/Types/fileset.html), [DirSet](http://ant.apache.org/manual/Types/dirset.html),
@@ -8,7 +14,7 @@ the project's dependencies.
```xml
<target name="dependency-check" description="Dependency-Check Analysis">
<dependency-check applicationname="Hello World"
<dependency-check projectname="Hello World"
reportoutputdirectory="${basedir}"
reportformat="ALL">
@@ -18,21 +24,69 @@ the project's dependencies.
</dependency-check>
</target>
```
The following table lists the configurable properties:
Property | Description | Requirement
----------------------|-------------|---------
ApplicationName | The name of the application to use in the generated report. | Required
ReportFormat | The format of the report to be generated. Allowed values are: HTML, XML, VULN, or ALL. The default value is HTML.| Optional
ReportOutputDirectory | The directory where dependency-check will store data used for analysis. Defaults to the current working directory. | Optional
FailBuildOn | If set and a CVE is found that is greater then the specified value the build will fail. The default value is 11 which means that the build will not fail. Valid values are 0-11. | Optional
AutoUpdate | If set to false the NVD CVE data is not automatically updated. Setting this to false could result in false negatives. However, this may be required in some environments. The default value is true. | Optional
DataDirectory | The directory where dependency-check will store data used for analysis. Defaults to a folder called, called 'dependency-check-data', that is in the same directory as the dependency-check-ant jar file was installed in. *It is not recommended to change this.* | Optional
LogFile | The file path to write verbose logging information. | Optional
ProxyUrl | Defines the proxy used to connect to the Internet. | Optional
ProxyPort | Defines the port for the proxy. | Optional
ProxyUsername | Defines the proxy user name. | Optional
ProxyPassword | Defines the proxy password. | Optional
ConnectionTimeout | The connection timeout used when downloading data files from the Internet. | Optional
Configuration: dependency-check Task
--------------------
The following properties can be set on the dependency-check-update task.
Property | Description | Default Value
----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------
autoUpdate | Sets whether auto-updating of the NVD CVE/CPE data is enabled. It is not recommended that this be turned to false. | true
cveValidForHours | Sets the number of hours to wait before checking for new updates from the NVD | 4
failBuildOnCVSS | Specifies if the build should be failed if a CVSS score above a specified level is identified. The default is 11 which means since the CVSS scores are 0-10, by default the build will never fail. | 11
projectName | The name of the project being scanned. | Dependency-Check
reportFormat | The report format to be generated (HTML, XML, VULN, ALL). This configuration option has no affect if using this within the Site plugin unless the externalReport is set to true. | HTML
reportOutputDirectory | The location to write the report(s). Note, this is not used if generating the report as part of a `mvn site` build | 'target'
suppressionFile | The file path to the XML suppression file \- used to suppress [false positives](../general/suppression.html) | &nbsp;
proxyServer | The Proxy Server. | &nbsp;
proxyPort | The Proxy Port. | &nbsp;
proxyUsername | Defines the proxy user name. | &nbsp;
proxyPassword | Defines the proxy password. | &nbsp;
connectionTimeout | The URL Connection Timeout. | &nbsp;
Analyzer Configuration
====================
The following properties are used to configure the various file type analyzers.
These properties can be used to turn off specific analyzers if it is not needed.
Note, that specific analyzers will automatically disable themselves if no file
types that they support are detected - so specifically disabling them may not
be needed.
Property | Description | Default Value
------------------------------|---------------------------------------------------------------------------|------------------
archiveAnalyzerEnabled | Sets whether the Archive Analyzer will be used. | true
zipExtensions | A comma-separated list of additional file extensions to be treated like a ZIP file, the contents will be extracted and analyzed. | &nbsp;
jarAnalyzer | Sets whether the Jar Analyzer will be used. | true
centralAnalyzerEnabled | Sets whether the Central Analyzer will be used. **Disabling this analyzer is not recommended as it could lead to false negatives (e.g. libraries that have vulnerabilities may not be reported correctly).** If this analyzer is being disabled there is a good chance you also want to disable the Nexus Analyzer (see below). | true
nexusAnalyzerEnabled | Sets whether Nexus Analyzer will be used. This analyzer is superceded by the Central Analyzer; however, you can configure this to run against a Nexus Pro installation. | true
nexusUrl | Defines the Nexus web service endpoint (example http://domain.enterprise/nexus/service/local/). If not set the Nexus Analyzer will be disabled. | &nbsp;
nexusUsesProxy | Whether or not the defined proxy should be used when connecting to Nexus. | true
pyDistributionAnalyzerEnabled | Sets whether the Python Distribution Analyzer will be used. | true
pyPackageAnalyzerEnabled | Sets whether the Python Package Analyzer will be used. | true
rubygemsAnalyzerEnabled | Sets whether the Ruby Gemspec Analyzer will be used. | true
opensslAnalyzerEnabled | Sets whether or not the openssl Analyzer should be used. | true
cmakeAnalyzerEnabled | Sets whether or not the CMake Analyzer should be used. | true
autoconfAnalyzerEnabled | Sets whether or not the autoconf Analyzer should be used. | true
composerAnalyzerEnabled | Sets whether or not the PHP Composer Lock File Analyzer should be used. | true
nodeAnalyzerEnabled | Sets whether or not the Node.js Analyzer should be used. | true
nuspecAnalyzerEnabled | Sets whether or not the .NET Nuget Nuspec Analyzer will be used. | true
assemblyAnalyzerEnabled | Sets whether or not the .NET Assembly Analyzer should be used. | true
pathToMono | The path to Mono for .NET assembly analysis on non-windows systems. | &nbsp;
Advanced Configuration
====================
The following properties can be configured in the plugin. However, they are less frequently changed. One exception
may be the cvedUrl properties, which can be used to host a mirror of the NVD within an enterprise environment.
Property | Description | Default Value
---------------------|--------------------------------------------------------------------------|------------------
cveUrl12Modified | URL for the modified CVE 1.2. | http://nvd.nist.gov/download/nvdcve-modified.xml
cveUrl20Modified | URL for the modified CVE 2.0. | http://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-modified.xml
cveUrl12Base | Base URL for each year's CVE 1.2, the %d will be replaced with the year. | http://nvd.nist.gov/download/nvdcve-%d.xml
cveUrl20Base | Base URL for each year's CVE 2.0, the %d will be replaced with the year. | http://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-%d.xml
dataDirectory | Data directory that is used to store the local copy of the NVD. This should generally not be changed. | data
databaseDriverName | The name of the database driver. Example: org.h2.Driver. | &nbsp;
databaseDriverPath | The path to the database driver JAR file; only used if the driver is not in the class path. | &nbsp;
connectionString | The connection string used to connect to the database. | &nbsp;
databaseUser | The username used when connecting to the database. | &nbsp;
databasePassword | The password used when connecting to the database. | &nbsp;

View File

@@ -0,0 +1,35 @@
About
====================
OWASP dependency-check-ant is an Ant Task that uses dependency-check-core to detect publicly
disclosed vulnerabilities associated with the project's dependencies. The task will
generate a report listing the dependency, any identified Common Platform Enumeration (CPE)
identifiers, and the associated Common Vulnerability and Exposure (CVE) entries.
Installation
====================
1. Download dependency-check-ant from [bintray here](http://dl.bintray.com/jeremy-long/owasp/dependency-check-ant-${project.version}-release.zip).
2. Unzip the archive
3. Add the taskdef to your build.xml:
```xml
<!-- Set the value to the installation directory's path -->
<property name="dependency-check.home" value="C:/tools/dependency-check-ant"/>
<path id="dependency-check.path">
<pathelement location="${dependency-check.home}/dependency-check-ant.jar"/>
</path>
<taskdef resource="dependency-check-taskdefs.properties">
<classpath refid="dependency-check.path" />
</taskdef>
```
4. Use the defined taskdefs:
* [dependency-check](configuration.html) - the primary task used to check the project dependencies.
* [dependency-check-purge](config-purge.html) - deletes the local copy of the NVD; this should rarely be used (if ever).
* [dependency-check-update](config-update.html) - downloads and updates the local copy of the NVD.
It is important to understand that the first time this task is executed it may
take 10 minutes or more as it downloads and processes the data from the National
Vulnerability Database (NVD) hosted by NIST: https://nvd.nist.gov
After the first batch download, as long as the task is executed at least once every
seven days the update will only take a few seconds.

View File

@@ -1,13 +0,0 @@
Installation
====================
Download dependency-check-ant from [bintray here](http://dl.bintray.com/jeremy-long/owasp/dependency-check-ant-${project.version}.jar).
To install dependency-check-ant place the dependency-check-ant-${project.version}.jar into
the lib directory of your Ant instalation directory. Once installed you can add
the taskdef to you build.xml and add the task to a new or existing target.
It is important to understand that the first time this task is executed it may
take 20 minutes or more as it downloads and processes the data from the National
Vulnerability Database (NVD) hosted by NIST: https://nvd.nist.gov
After the first batch download, as long as the task is executed at least once every
seven days the update will only take a few seconds.

View File

@@ -1,25 +0,0 @@
Usage
====================
First, add the dependency-check-ant taskdef to your build.xml:
```xml
<taskdef name="dependency-check" classname="org.owasp.dependencycheck.taskdefs.DependencyCheckTask"/>
```
Next, add the task to a target of your choosing:
```xml
<target name="dependency-check" description="Dependency-Check Analysis">
<dependency-check applicationname="Hello World"
autoupdate="true"
reportoutputdirectory="${basedir}"
reportformat="HTML">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</dependency-check>
</target>
```
See the [configuration guide](configuration.html) for more information.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -2,35 +2,34 @@
<!--
This file is part of dependency-check-ant.
Dependency-check-ant is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Dependency-check-ant is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
http://www.apache.org/licenses/LICENSE-2.0
You should have received a copy of the GNU General Public License along with
dependency-check-ant. If not, see http://www.gnu.org/licenses/.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright (c) 2013 Jeremy Long. All Rights Reserved.
-->
<project name="dependency-check-ant">
<bannerLeft>
<name>dependency-check-ant</name>
<name>OWASP dependency-check-ant</name>
<alt>OWASP dependency-check-ant</alt>
<src>./images/dc-ant.svg</src>
</bannerLeft>
<body>
<breadcrumbs>
<item name="dependency-check" href="../index.html"/>
</breadcrumbs>
<menu name="Getting Started">
<item name="Installation" href="installation.html"/>
<item name="Usage" href="usage.html"/>
<item name="Installation" href="index.html"/>
<item name="Configuration" href="configuration.html"/>
</menu>
<menu ref="Project Documentation" />
<menu ref="reports" />
</body>
</project>

View File

@@ -1,63 +1,62 @@
/*
* This file is part of dependency-check-ant.
*
* Dependency-check-ant is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-ant is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-ant. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.taskdefs;
import java.io.File;
import static junit.framework.TestCase.assertTrue;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildFileRule;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.apache.tools.ant.BuildFileTest;
import org.owasp.dependencycheck.data.nvdcve.BaseDBTestCase;
import org.junit.rules.ExpectedException;
import org.owasp.dependencycheck.BaseDBTestCase;
import org.owasp.dependencycheck.utils.Settings;
import static org.junit.Assert.assertTrue;
/**
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class DependencyCheckTaskTest extends BuildFileTest {
public class DependencyCheckTaskTest {
public DependencyCheckTaskTest() {
}
@Rule
public BuildFileRule buildFileRule = new BuildFileRule();
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Before
@Override
public void setUp() throws Exception {
Settings.initialize();
BaseDBTestCase.ensureDBExists();
final String buildFile = this.getClass().getClassLoader().getResource("build.xml").getPath();
configureProject(buildFile);
buildFileRule.configureProject(buildFile);
}
@After
@Override
public void tearDown() {
//no cleanup...
//executeTarget("cleanup");
Settings.cleanup(true);
}
/**
@@ -65,13 +64,13 @@ public class DependencyCheckTaskTest extends BuildFileTest {
*/
@Test
public void testAddFileSet() throws Exception {
File report = new File("target/DependencyCheck-Report.html");
File report = new File("target/dependency-check-report.html");
if (report.exists()) {
if (!report.delete()) {
throw new Exception("Unable to delete 'target/DependencyCheck-Report.html' prior to test.");
}
}
executeTarget("test.fileset");
buildFileRule.executeTarget("test.fileset");
assertTrue("DependencyCheck report was not generated", report.exists());
@@ -84,13 +83,13 @@ public class DependencyCheckTaskTest extends BuildFileTest {
*/
@Test
public void testAddFileList() throws Exception {
File report = new File("target/DependencyCheck-Report.xml");
File report = new File("target/dependency-check-report.xml");
if (report.exists()) {
if (!report.delete()) {
throw new Exception("Unable to delete 'target/DependencyCheck-Report.xml' prior to test.");
}
}
executeTarget("test.filelist");
buildFileRule.executeTarget("test.filelist");
assertTrue("DependencyCheck report was not generated", report.exists());
}
@@ -102,13 +101,13 @@ public class DependencyCheckTaskTest extends BuildFileTest {
*/
@Test
public void testAddDirSet() throws Exception {
File report = new File("target/DependencyCheck-Vulnerability.html");
File report = new File("target/dependency-check-vulnerability.html");
if (report.exists()) {
if (!report.delete()) {
throw new Exception("Unable to delete 'target/DependencyCheck-Vulnerability.html' prior to test.");
}
}
executeTarget("test.dirset");
buildFileRule.executeTarget("test.dirset");
assertTrue("DependencyCheck report was not generated", report.exists());
}
@@ -117,7 +116,7 @@ public class DependencyCheckTaskTest extends BuildFileTest {
*/
@Test
public void testGetFailBuildOnCVSS() {
expectBuildException("failCVSS", "asdfasdfscore");
System.out.println(this.getOutput());
expectedException.expect(BuildException.class);
buildFileRule.executeTarget("failCVSS");
}
}

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="Dependency-Check Test Build" default="test.fileset" basedir=".">
<taskdef name="dependency-check" classname="org.owasp.dependencycheck.taskdefs.DependencyCheckTask" />
<taskdef name="dependency-check" classname="org.owasp.dependencycheck.taskdefs.Check" />
<target name="test.fileset">
<dependency-check

View File

@@ -1,674 +1,202 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -5,7 +5,7 @@ performed are a "best effort" and as such, there could be false positives as wel
vulnerabilities in 3rd party components is a well-known problem and is currently documented in the 2013 OWASP
Top 10 as [A9 - Using Components with Known Vulnerabilities](https://www.owasp.org/index.php/Top_10_2013-A9-Using_Components_with_Known_Vulnerabilities).
Documentation and links to production binary releases can be found on the [github pages](http://jeremylong.github.io/DependencyCheck/dependency-check-cli/installation.html).
Documentation and links to production binary releases can be found on the [github pages](http://jeremylong.github.io/DependencyCheck/dependency-check-cli/index.html).
Mailing List
------------
@@ -17,8 +17,8 @@ Post: [dependency-check@googlegroups.com](mailto:dependency-check@googlegroups.c
Copyright & License
------------
Dependency-Check is Copyright (c) 2012-2013 Jeremy Long. All Rights Reserved.
Dependency-Check is Copyright (c) 2012-2014 Jeremy Long. All Rights Reserved.
Permission to modify and redistribute is granted under the terms of the GPLv3 license. See the [LICENSE.txt](https://github.com/jeremylong/DependencyCheck/dependency-check-cli/blob/master/LICENSE.txt) file for the full license.
Permission to modify and redistribute is granted under the terms of the Apache 2.0 license. See the [LICENSE.txt](https://raw.githubusercontent.com/jeremylong/DependencyCheck/master/LICENSE.txt) file for the full license.
Dependency-Check Command Line makes use of other open source libraries. Please see the [NOTICE.txt](https://github.com/jeremylong/DependencyCheck/dependency-check-cli/blob/master/NOTICES.txt) file for more information.
Dependency-Check Command Line makes use of other open source libraries. Please see the [NOTICE.txt](https://raw.githubusercontent.com/jeremylong/DependencyCheck/master/dependency-check-cli/NOTICE.txt) file for more information.

View File

@@ -1,223 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
http://checkstyle.sourceforge.net/5.x/config.html#Checker
<property name="basedir" value="${basedir}"/>
-->
<property name="severity" value="error"/>
<module name="SuppressionFilter">
<property name="file" value="${checkstyle.suppressions.file}"/>
</module>
<module name="JavadocPackage">
<property name="allowLegacy" value="false"/>
</module>
<module name="Translation">
<property name="severity" value="warning"/>
</module>
<module name="FileTabCharacter">
<property name="eachLine" value="false"/>
</module>
<module name="FileLength">
<property name="fileExtensions" value="java"/>
</module>
<module name="NewlineAtEndOfFile">
<property name="fileExtensions" value="java"/>
<property name="lineSeparator" value="lf"/>
</module>
<module name="RegexpHeader">
<property name="headerFile" value="${checkstyle.header.file}"/>
<property name="fileExtensions" value="java"/>
<property name="id" value="header"/>
</module>
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
</module>
<module name="TreeWalker">
<property name="tabWidth" value="4"/>
<module name="AvoidStarImport"/>
<module name="ConstantName"/>
<module name="EmptyBlock"/>
<module name="EmptyForIteratorPad"/>
<module name="EqualsHashCode"/>
<module name="OneStatementPerLine"/>
<!-- module name="IllegalCatch"/ -->
<!--module name="ImportControl">
<property name="file" value="${checkstyle.importcontrol.file}"/>
</module-->
<module name="IllegalImport"/>
<module name="IllegalInstantiation"/>
<module name="IllegalThrows"/>
<module name="InnerAssignment"/>
<module name="JavadocType">
<property name="authorFormat" value="\S"/>
</module>
<module name="JavadocMethod">
<property name="allowUndeclaredRTE" value="true"/>
<property name="allowThrowsTagsForSubclasses" value="true"/>
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
<module name="JavadocVariable"/>
<module name="JavadocStyle">
<property name="scope" value="public"/>
</module>
<module name="LeftCurly">
<property name="option" value="eol"/>
<property name="tokens" value="CLASS_DEF"/>
<property name="tokens" value="CTOR_DEF"/>
<property name="tokens" value="INTERFACE_DEF"/>
<property name="tokens" value="METHOD_DEF"/>
<property name="tokens" value="LITERAL_CATCH"/>
<property name="tokens" value="LITERAL_DO"/>
<property name="tokens" value="LITERAL_ELSE"/>
<property name="tokens" value="LITERAL_FINALLY"/>
<property name="tokens" value="LITERAL_FOR"/>
<property name="tokens" value="LITERAL_IF"/>
<property name="tokens" value="LITERAL_SWITCH"/>
<property name="tokens" value="LITERAL_SYNCHRONIZED"/>
<property name="tokens" value="LITERAL_TRY"/>
<property name="tokens" value="LITERAL_WHILE"/>
</module>
<module name="OuterTypeNumber"/>
<module name="LineLength">
<property name="ignorePattern" value="^ *\* *[^ ]+$"/>
<property name="max" value="150"/>
</module>
<module name="MethodCount">
<property name="maxTotal" value="40"/>
</module>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="MethodLength">
<property name="max" value="160"/>
<property name="countEmpty" value="false"/>
</module>
<module name="MethodName"/>
<module name="MethodParamPad"/>
<module name="ModifierOrder"/>
<module name="NeedBraces"/>
<module name="NoWhitespaceAfter">
<property name="tokens" value="ARRAY_INIT"/>
<property name="tokens" value="BNOT"/>
<property name="tokens" value="DEC"/>
<property name="tokens" value="DOT"/>
<property name="tokens" value="INC"/>
<property name="tokens" value="LNOT"/>
<property name="tokens" value="UNARY_MINUS"/>
<property name="tokens" value="UNARY_PLUS"/>
</module>
<module name="NoWhitespaceBefore"/>
<module name="NoWhitespaceBefore">
<property name="tokens" value="DOT"/>
<property name="allowLineBreaks" value="true"/>
</module>
<module name="OperatorWrap"/>
<module name="OperatorWrap">
<property name="tokens" value="ASSIGN"/>
<property name="tokens" value="DIV_ASSIGN"/>
<property name="tokens" value="PLUS_ASSIGN"/>
<property name="tokens" value="MINUS_ASSIGN"/>
<property name="tokens" value="STAR_ASSIGN"/>
<property name="tokens" value="MOD_ASSIGN"/>
<property name="tokens" value="SR_ASSIGN"/>
<property name="tokens" value="BSR_ASSIGN"/>
<property name="tokens" value="SL_ASSIGN"/>
<property name="tokens" value="BXOR_ASSIGN"/>
<property name="tokens" value="BOR_ASSIGN"/>
<property name="tokens" value="BAND_ASSIGN"/>
<property name="option" value="eol"/>
</module>
<module name="PackageName"/>
<module name="ParameterName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="ParameterNumber">
<property name="id" value="paramNum"/>
</module>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="RedundantImport"/>
<module name="RedundantModifier"/>
<module name="RightCurly">
<property name="option" value="same"/>
</module>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<module name="StaticVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="TypeName"/>
<module name="UnusedImports"/>
<module name="UpperEll"/>
<module name="VisibilityModifier"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<module name="GenericWhitespace"/>
<module name="FinalClass"/>
<module name="MissingSwitchDefault"/>
<!--module name="MagicNumber"/-->
<!--module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="0"/>
</module-->
<module name="ArrayTrailingComma"/>
<module name="FinalLocalVariable"/>
<module name="EqualsAvoidNull"/>
<module name="ParameterAssignment"/>
<!-- Generates quite a few errors -->
<module name="CyclomaticComplexity">
<property name="severity" value="ignore"/>
</module>
<module name="NestedForDepth">
<property name="max" value="2"/>
</module>
<module name="NestedIfDepth">
<property name="max" value="4"/>
</module>
<module name="NestedTryDepth">
<property name="max" value="2"/>
</module>
<!--module name="ExplicitInitialization"/-->
<module name="AnnotationUseStyle"/>
<module name="MissingDeprecated"/>
<module name="MissingOverride">
<property name="javaFiveCompatibility" value="true"/>
</module>
<module name="PackageAnnotation"/>
<module name="SuppressWarnings"/>
<module name="OuterTypeFilename"/>
<module name="HideUtilityClassConstructor"/>
</module>
</module>

View File

@@ -1,19 +0,0 @@
^/\*\s*$
^ \* This file is part of dependency-check-cli\.\s*$
^ \*\s*$
^ \* Dependency-check-cli is free software\: you can redistribute it and/or modify it\s*$
^ \* under the terms of the GNU General Public License as published by the Free\s*$
^ \* Software Foundation, either version 3 of the License, or \(at your option\) any\s*$
^ \* later version\.
^ \*\s*$
^ \* Dependency-check-cli is distributed in the hope that it will be useful, but\s*$
^ \* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\s*$
^ \* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\s*$
^ \* details\.\s*$
^ \*\s*$
^ \* You should have received a copy of the GNU General Public License along with\s*$
^ \* dependency-check-cli\. If not, see http://www.gnu.org/licenses/\.\s*$
^ \*\s*$
^ \* Copyright \(c\) 201[23] (Jeremy Long|Steve Springett)\. All Rights Reserved\.\s*$
^ \*/\s*$
^package

View File

@@ -1,9 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
<suppressions>
<suppress checks=".*" files=".*[\\/]package-info\.java" />
</suppressions>

View File

@@ -1,35 +1,33 @@
<!--
This file is part of Dependency-Check.
Dependency-Check is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Dependency-Check is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
http://www.apache.org/licenses/LICENSE-2.0
You should have received a copy of the GNU General Public License
along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright (c) 2012 - Jeremy Long. All Rights Reserved.
-->
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-parent</artifactId>
<version>1.0.5</version>
<version>1.3.6</version>
</parent>
<artifactId>dependency-check-cli</artifactId>
<packaging>jar</packaging>
<name>Dependency-Check Command Line</name>
<description>Dependency-Check-Maven is a Maven Plugin that attempts to detect publicly disclosed vulnerabilities contained within project dependencies. It does this by determining if there is a Common Platform Enumeration (CPE) identifier for a given dependency. If found, it will generate a report linking to the associated CVE entries.</description>
<description>dependency-check-cli is an command line tool that uses dependency-check-core to detect publicly disclosed vulnerabilities associated with the scanned project dependencies. The tool will generate a report listing the dependency, any identified Common Platform Enumeration (CPE) identifiers, and the associated Common Vulnerability and Exposure (CVE) entries.</description>
<!-- begin copy from http://minds.coremedia.com/2012/09/11/problem-solved-deploy-multi-module-maven-project-site-as-github-pages/ -->
<distributionManagement>
<site>
@@ -46,6 +44,7 @@ Copyright (c) 2012 - Jeremy Long. All Rights Reserved.
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>logback.xml</include>
</includes>
<filtering>true</filtering>
</resource>
@@ -62,24 +61,21 @@ Copyright (c) 2012 - Jeremy Long. All Rights Reserved.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>org.owasp.dependencycheck.App</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<excludes>
<exclude>**/checkstyle*</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<!--instrumentation>
<ignoreTrivial>true</ignoreTrivial>
</instrumentation-->
<check>
<branchRate>85</branchRate>
<lineRate>85</lineRate>
@@ -113,14 +109,9 @@ Copyright (c) 2012 - Jeremy Long. All Rights Reserved.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
<systemProperties>
<property>
<name>net.sourceforge.cobertura.datafile</name>
<value>${project.build.directory}/cobertura/cobertura.ser</value>
<workingDirectory>target</workingDirectory>
</property>
<property>
<name>cpe</name>
<value>data/cpe</value>
@@ -134,157 +125,14 @@ Copyright (c) 2012 - Jeremy Long. All Rights Reserved.
</systemProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<showDeprecation>false</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<configuration>
<skipDeploy>true</skipDeploy>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.6</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>summary</report>
<report>license</report>
<report>help</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<reportSets>
<reportSet>
<id>default</id>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.0</version>
<reportSets>
<reportSet>
<reports>
<report>dependency-updates-report</report>
<report>plugin-updates-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.14</version>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.4</version>
<configuration>
<tagListOptions>
<tagClasses>
<tagClass>
<displayName>Todo Work</displayName>
<tags>
<tag>
<matchString>todo</matchString>
<matchType>ignoreCase</matchType>
</tag>
<tag>
<matchString>FIXME</matchString>
<matchType>exact</matchType>
</tag>
</tags>
</tagClass>
</tagClasses>
</tagListOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.10</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<configLocation>${basedir}/config/checkstyle-checks.xml</configLocation>
<headerLocation>${basedir}/config/checkstyle-header.txt</headerLocation>
<suppressionsLocation>${basedir}/config/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<targetJdk>1.6</targetJdk>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<excludes>
<exclude>**/generated/*.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</reportPlugins>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<programs>
<program>
<mainClass>org.owasp.dependencycheck.App</mainClass>
<name>dependency-check</name>
<id>dependency-check</id>
</program>
</programs>
<assembleDirectory>${project.build.directory}/release</assembleDirectory>
@@ -325,16 +173,78 @@ Copyright (c) 2012 - Jeremy Long. All Rights Reserved.
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${reporting.checkstyle-plugin.version}</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<enableFilesSummary>false</enableFilesSummary>
<configLocation>${basedir}/../src/main/config/checkstyle-checks.xml</configLocation>
<headerLocation>${basedir}/../src/main/config/checkstyle-header.txt</headerLocation>
<suppressionsLocation>${basedir}/../src/main/config/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${reporting.pmd-plugin.version}</version>
<configuration>
<targetJdk>1.6</targetJdk>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<excludes>
<exclude>**/generated/*.java</exclude>
</excludes>
<rulesets>
<ruleset>../src/main/config/dcrules.xml</ruleset>
<ruleset>/rulesets/java/basic.xml</ruleset>
<ruleset>/rulesets/java/imports.xml</ruleset>
<ruleset>/rulesets/java/unusedcode.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</reporting>
<dependencies>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-utils</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

View File

@@ -1,11 +1,11 @@
Copyright (c) 2012-2013 Jeremy Long. All rights reserved.
Licensed under the GPL License, Version 3; you may not use this work
except in compliance with the License. You may obtain a copy of the
License in the LICENSE.txt file, or at:
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.gnu.org/licenses/gpl-3.0.txt
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,

View File

@@ -2,11 +2,8 @@
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
http://maven.apache.org/xsd/assembly-1.1.2.xsd
"
>
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>release</id>
<formats>
<format>zip</format>
@@ -14,25 +11,41 @@
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<outputDirectory>/</outputDirectory>
<directory>${project.build.directory}/release</directory>
<outputDirectory>dependency-check/bin</outputDirectory>
<directory>${project.build.directory}/release/bin</directory>
<includes>
<include>*.sh</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<outputDirectory>dependency-check/bin</outputDirectory>
<directory>${project.build.directory}/release/bin</directory>
<includes>
<include>*.bat</include>
</includes>
</fileSet>
<fileSet>
<outputDirectory>dependency-check/repo</outputDirectory>
<directory>${project.build.directory}/release/repo</directory>
</fileSet>
<fileSet>
<outputDirectory>dependency-check</outputDirectory>
<includes>
<include>LICENSE*</include>
<include>NOTICE*</include>
</includes>
</fileSet>
<fileSet>
<outputDirectory>licenses</outputDirectory>
<outputDirectory>dependency-check/licenses</outputDirectory>
<directory>${basedir}/src/main/resources/META-INF/licenses</directory>
</fileSet>
<fileSet>
<outputDirectory>licenses</outputDirectory>
<outputDirectory>dependency-check/licenses</outputDirectory>
<directory>${basedir}/../dependency-check-core/src/main/resources/META-INF/licenses</directory>
</fileSet>
<fileSet>
<outputDirectory>/</outputDirectory>
<outputDirectory>dependency-check</outputDirectory>
<directory>${basedir}</directory>
<includes>
<include>README.md</include>

View File

@@ -1,65 +1,55 @@
/*
* This file is part of dependency-check-cli.
*
* Dependency-check-cli is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-cli is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-cli. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.Set;
import org.apache.commons.cli.ParseException;
import org.owasp.dependencycheck.reporting.ReportGenerator;
import org.owasp.dependencycheck.data.nvdcve.CveDB;
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.cli.CliParser;
import org.owasp.dependencycheck.utils.LogUtils;
import org.apache.tools.ant.DirectoryScanner;
import org.owasp.dependencycheck.reporting.ReportGenerator;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.core.FileAppender;
import org.slf4j.impl.StaticLoggerBinder;
/*
* This file is part of App.
*
* App is free software: you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* App is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* App. If not, see http://www.gnu.org/licenses/.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
/**
* The command line interface for the DependencyCheck application.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class App {
/**
* The location of the log properties configuration file.
* The logger.
*/
private static final String LOG_PROPERTIES_FILE = "log.properties";
private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
/**
* The main method for the application.
@@ -67,8 +57,13 @@ public class App {
* @param args the command line arguments
*/
public static void main(String[] args) {
final App app = new App();
app.run(args);
try {
Settings.initialize();
final App app = new App();
app.run(args);
} finally {
Settings.cleanup(true);
}
}
/**
@@ -77,8 +72,8 @@ public class App {
* @param args the command line arguments
*/
public void run(String[] args) {
final CliParser cli = new CliParser();
try {
cli.parse(args);
} catch (FileNotFoundException ex) {
@@ -91,81 +86,216 @@ public class App {
return;
}
final InputStream in = App.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE);
LogUtils.prepareLogger(in, cli.getVerboseLog());
if (cli.getVerboseLog() != null) {
prepareLogger(cli.getVerboseLog());
}
if (cli.isGetVersion()) {
if (cli.isPurge()) {
if (cli.getConnectionString() != null) {
LOGGER.error("Unable to purge the database when using a non-default connection string");
} else {
populateSettings(cli);
File db;
try {
db = new File(Settings.getDataDirectory(), "dc.h2.db");
if (db.exists()) {
if (db.delete()) {
LOGGER.info("Database file purged; local copy of the NVD has been removed");
} else {
LOGGER.error("Unable to delete '{}'; please delete the file manually", db.getAbsolutePath());
}
} else {
LOGGER.error("Unable to purge database; the database file does not exists: {}", db.getAbsolutePath());
}
} catch (IOException ex) {
LOGGER.error("Unable to delete the database");
}
}
} else if (cli.isGetVersion()) {
cli.printVersionInfo();
} else if (cli.isUpdateOnly()) {
populateSettings(cli);
runUpdateOnly();
} else if (cli.isRunScan()) {
updateSettings(cli.isAutoUpdate(), cli.getConnectionTimeout(), cli.getProxyUrl(),
cli.getProxyPort(), cli.getProxyUsername(), cli.getProxyPassword(),
cli.getDataDirectory(), cli.getPropertiesFile());
runScan(cli.getReportDirectory(), cli.getReportFormat(), cli.getApplicationName(), cli.getScanFiles());
populateSettings(cli);
try {
runScan(cli.getReportDirectory(), cli.getReportFormat(), cli.getProjectName(), cli.getScanFiles(),
cli.getExcludeList(), cli.getSymLinkDepth());
} catch (InvalidScanPathException ex) {
LOGGER.error("An invalid scan path was detected; unable to scan '//*' paths");
}
} else {
cli.printHelp();
}
}
/**
* Scans the specified directories and writes the dependency reports to the
* reportDirectory.
* Scans the specified directories and writes the dependency reports to the reportDirectory.
*
* @param reportDirectory the path to the directory where the reports will
* be written
* @param reportDirectory the path to the directory where the reports will be written
* @param outputFormat the output format of the report
* @param applicationName the application name for the report
* @param files the files/directories to scan
* @param excludes the patterns for files/directories to exclude
* @param symLinkDepth the depth that symbolic links will be followed
*
* @throws InvalidScanPathException thrown if the path to scan starts with "//"
*/
private void runScan(String reportDirectory, String outputFormat, String applicationName, String[] files) {
final Engine scanner = new Engine();
for (String file : files) {
scanner.scan(file);
}
scanner.analyzeDependencies();
final List<Dependency> dependencies = scanner.getDependencies();
final ReportGenerator report = new ReportGenerator(applicationName, dependencies, scanner.getAnalyzers());
private void runScan(String reportDirectory, String outputFormat, String applicationName, String[] files,
String[] excludes, int symLinkDepth) throws InvalidScanPathException {
Engine engine = null;
try {
report.generateReports(reportDirectory, outputFormat);
} catch (IOException ex) {
Logger.getLogger(App.class.getName()).log(Level.SEVERE, "There was an IO error while attempting to generate the report.");
Logger.getLogger(App.class.getName()).log(Level.INFO, null, ex);
} catch (Exception ex) {
Logger.getLogger(App.class.getName()).log(Level.SEVERE, "There was an error while attempting to generate the report.");
Logger.getLogger(App.class.getName()).log(Level.INFO, null, ex);
engine = new Engine();
final List<String> antStylePaths = new ArrayList<String>();
for (String file : files) {
final String antPath = ensureCanonicalPath(file);
antStylePaths.add(antPath);
}
final Set<File> paths = new HashSet<File>();
for (String file : antStylePaths) {
LOGGER.debug("Scanning {}", file);
final DirectoryScanner scanner = new DirectoryScanner();
String include = file.replace('\\', '/');
File baseDir;
if (include.startsWith("//")) {
throw new InvalidScanPathException("Unable to scan paths specified by //");
} else {
final int pos = getLastFileSeparator(include);
final String tmpBase = include.substring(0, pos);
final String tmpInclude = include.substring(pos + 1);
if (tmpInclude.indexOf('*') >= 0 || tmpInclude.indexOf('?') >= 0
|| (new File(include)).isFile()) {
baseDir = new File(tmpBase);
include = tmpInclude;
} else {
baseDir = new File(tmpBase, tmpInclude);
include = "**/*";
}
}
//LOGGER.debug("baseDir: {}", baseDir);
//LOGGER.debug("include: {}", include);
scanner.setBasedir(baseDir);
final String[] includes = {include};
scanner.setIncludes(includes);
scanner.setMaxLevelsOfSymlinks(symLinkDepth);
if (symLinkDepth <= 0) {
scanner.setFollowSymlinks(false);
}
if (excludes != null && excludes.length > 0) {
scanner.addExcludes(excludes);
}
scanner.scan();
if (scanner.getIncludedFilesCount() > 0) {
for (String s : scanner.getIncludedFiles()) {
final File f = new File(baseDir, s);
LOGGER.debug("Found file {}", f.toString());
paths.add(f);
}
}
}
engine.scan(paths);
engine.analyzeDependencies();
final List<Dependency> dependencies = engine.getDependencies();
DatabaseProperties prop = null;
CveDB cve = null;
try {
cve = new CveDB();
cve.open();
prop = cve.getDatabaseProperties();
} catch (DatabaseException ex) {
LOGGER.debug("Unable to retrieve DB Properties", ex);
} finally {
if (cve != null) {
cve.close();
}
}
final ReportGenerator report = new ReportGenerator(applicationName, dependencies, engine.getAnalyzers(), prop);
try {
report.generateReports(reportDirectory, outputFormat);
} catch (IOException ex) {
LOGGER.error("There was an IO error while attempting to generate the report.");
LOGGER.debug("", ex);
} catch (Throwable ex) {
LOGGER.error("There was an error while attempting to generate the report.");
LOGGER.debug("", ex);
}
} catch (DatabaseException ex) {
LOGGER.error("Unable to connect to the dependency-check database; analysis has stopped");
LOGGER.debug("", ex);
} finally {
if (engine != null) {
engine.cleanup();
}
}
}
/**
* Only executes the update phase of dependency-check.
*/
private void runUpdateOnly() {
Engine engine = null;
try {
engine = new Engine();
engine.doUpdates();
} catch (DatabaseException ex) {
LOGGER.error("Unable to connect to the dependency-check database; analysis has stopped");
LOGGER.debug("", ex);
} finally {
if (engine != null) {
engine.cleanup();
}
}
}
/**
* Updates the global Settings.
*
* @param autoUpdate whether or not to update cached web data sources
* @param connectionTimeout the timeout to use when downloading resources
* (null or blank will use default)
* @param proxyUrl the proxy url (null or blank means no proxy will be used)
* @param proxyPort the proxy port (null or blank means no port will be
* used)
* @param dataDirectory the directory to store/retrieve persistent data from
* @param propertiesFile the properties file to utilize
* @param cli a reference to the CLI Parser that contains the command line arguments used to set the corresponding settings in
* the core engine.
*/
private void updateSettings(boolean autoUpdate, String connectionTimeout, String proxyUrl, String proxyPort,
String proxyUser, String proxyPass, String dataDirectory, File propertiesFile) {
private void populateSettings(CliParser cli) {
final boolean autoUpdate = cli.isAutoUpdate();
final String connectionTimeout = cli.getConnectionTimeout();
final String proxyServer = cli.getProxyServer();
final String proxyPort = cli.getProxyPort();
final String proxyUser = cli.getProxyUsername();
final String proxyPass = cli.getProxyPassword();
final String dataDirectory = cli.getDataDirectory();
final File propertiesFile = cli.getPropertiesFile();
final String suppressionFile = cli.getSuppressionFile();
final String nexusUrl = cli.getNexusUrl();
final String databaseDriverName = cli.getDatabaseDriverName();
final String databaseDriverPath = cli.getDatabaseDriverPath();
final String connectionString = cli.getConnectionString();
final String databaseUser = cli.getDatabaseUser();
final String databasePassword = cli.getDatabasePassword();
final String additionalZipExtensions = cli.getAdditionalZipExtensions();
final String pathToMono = cli.getPathToMono();
final String cveMod12 = cli.getModifiedCve12Url();
final String cveMod20 = cli.getModifiedCve20Url();
final String cveBase12 = cli.getBaseCve12Url();
final String cveBase20 = cli.getBaseCve20Url();
final Integer cveValidForHours = cli.getCveValidForHours();
if (propertiesFile != null) {
try {
Settings.mergeProperties(propertiesFile);
} catch (FileNotFoundException ex) {
final String msg = String.format("Unable to load properties file '%s'", propertiesFile.getPath());
Logger.getLogger(App.class.getName()).log(Level.SEVERE, msg);
Logger.getLogger(App.class.getName()).log(Level.FINE, null, ex);
LOGGER.error("Unable to load properties file '{}'", propertiesFile.getPath());
LOGGER.debug("", ex);
} catch (IOException ex) {
final String msg = String.format("Unable to find properties file '%s'", propertiesFile.getPath());
Logger.getLogger(App.class.getName()).log(Level.SEVERE, msg);
Logger.getLogger(App.class.getName()).log(Level.FINE, null, ex);
LOGGER.error("Unable to find properties file '{}'", propertiesFile.getPath());
LOGGER.debug("", ex);
}
}
// We have to wait until we've merged the properties before attempting to set whether we use
// the proxy for Nexus since it could be disabled in the properties, but not explicitly stated
// on the command line
final boolean nexusUsesProxy = cli.isNexusUsesProxy();
if (dataDirectory != null) {
Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
} else if (System.getProperty("basedir") != null) {
@@ -179,20 +309,134 @@ public class App {
Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
}
Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate);
if (proxyUrl != null && !proxyUrl.isEmpty()) {
Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl);
Settings.setStringIfNotEmpty(Settings.KEYS.PROXY_SERVER, proxyServer);
Settings.setStringIfNotEmpty(Settings.KEYS.PROXY_PORT, proxyPort);
Settings.setStringIfNotEmpty(Settings.KEYS.PROXY_USERNAME, proxyUser);
Settings.setStringIfNotEmpty(Settings.KEYS.PROXY_PASSWORD, proxyPass);
Settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
Settings.setStringIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressionFile);
Settings.setIntIfNotNull(Settings.KEYS.CVE_CHECK_VALID_FOR_HOURS, cveValidForHours);
//File Type Analyzer Settings
Settings.setBoolean(Settings.KEYS.ANALYZER_JAR_ENABLED, !cli.isJarDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, !cli.isArchiveDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, !cli.isPythonDistributionDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, !cli.isPythonPackageDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, !cli.isAutoconfDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_CMAKE_ENABLED, !cli.isCmakeDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, !cli.isNuspecDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, !cli.isAssemblyDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, !cli.isBundleAuditDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, !cli.isOpenSSLDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, !cli.isComposerDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, !cli.isNodeJsDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, !cli.isRubyGemspecDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, !cli.isCentralDisabled());
Settings.setBoolean(Settings.KEYS.ANALYZER_NEXUS_ENABLED, !cli.isNexusDisabled());
Settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, cli.getPathToBundleAudit());
Settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl);
Settings.setBoolean(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser);
Settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword);
Settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, additionalZipExtensions);
Settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_MONO_PATH, pathToMono);
if (cveBase12 != null && !cveBase12.isEmpty()) {
Settings.setString(Settings.KEYS.CVE_SCHEMA_1_2, cveBase12);
Settings.setString(Settings.KEYS.CVE_SCHEMA_2_0, cveBase20);
Settings.setString(Settings.KEYS.CVE_MODIFIED_12_URL, cveMod12);
Settings.setString(Settings.KEYS.CVE_MODIFIED_20_URL, cveMod20);
}
if (proxyPort != null && !proxyPort.isEmpty()) {
Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort);
}
/**
* Creates a file appender and adds it to logback.
*
* @param verboseLog the path to the verbose log file
*/
private void prepareLogger(String verboseLog) {
final StaticLoggerBinder loggerBinder = StaticLoggerBinder.getSingleton();
final LoggerContext context = (LoggerContext) loggerBinder.getLoggerFactory();
final PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setPattern("%d %C:%L%n%-5level - %msg%n");
encoder.setContext(context);
encoder.start();
final FileAppender fa = new FileAppender();
fa.setAppend(true);
fa.setEncoder(encoder);
fa.setContext(context);
fa.setFile(verboseLog);
final File f = new File(verboseLog);
String name = f.getName();
final int i = name.lastIndexOf('.');
if (i > 1) {
name = name.substring(0, i);
}
if (proxyUser != null && !proxyUser.isEmpty()) {
Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUser);
fa.setName(name);
fa.start();
final ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME);
rootLogger.addAppender(fa);
}
/**
* Takes a path and resolves it to be a canonical &amp; absolute path. The caveats are that this method will take an Ant style
* file selector path (../someDir/**\/*.jar) and convert it to an absolute/canonical path (at least to the left of the first *
* or ?).
*
* @param path the path to canonicalize
* @return the canonical path
*/
protected String ensureCanonicalPath(String path) {
String basePath = null;
String wildCards = null;
final String file = path.replace('\\', '/');
if (file.contains("*") || file.contains("?")) {
int pos = getLastFileSeparator(file);
if (pos < 0) {
return file;
}
pos += 1;
basePath = file.substring(0, pos);
wildCards = file.substring(pos);
} else {
basePath = file;
}
if (proxyPass != null && !proxyPass.isEmpty()) {
Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPass);
File f = new File(basePath);
try {
f = f.getCanonicalFile();
if (wildCards != null) {
f = new File(f, wildCards);
}
} catch (IOException ex) {
LOGGER.warn("Invalid path '{}' was provided.", path);
LOGGER.debug("Invalid path provided", ex);
}
if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
return f.getAbsolutePath().replace('\\', '/');
}
/**
* Returns the position of the last file separator.
*
* @param file a file path
* @return the position of the last file separator
*/
private int getLastFileSeparator(String file) {
if (file.contains("*") || file.contains("?")) {
int p1 = file.indexOf('*');
int p2 = file.indexOf('?');
p1 = p1 > 0 ? p1 : file.length();
p2 = p2 > 0 ? p2 : file.length();
int pos = p1 < p2 ? p1 : p2;
pos = file.lastIndexOf('/', pos);
return pos;
} else {
return file.lastIndexOf('/');
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
/*
* This file is part of dependency-check-cli.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2014 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck;
/**
* Thrown if an invalid path is encountered.
*
* @author Jeremy Long
*/
public class InvalidScanPathException extends Exception {
/**
* The serial version UID for serialization.
*/
private static final long serialVersionUID = 1L;
/**
* Creates a new InvalidScanPathException.
*/
public InvalidScanPathException() {
super();
}
/**
* Creates a new InvalidScanPathException.
*
* @param msg a message for the exception
*/
public InvalidScanPathException(String msg) {
super(msg);
}
/**
* Creates a new InvalidScanPathException.
*
* @param ex the cause of the exception
*/
public InvalidScanPathException(Throwable ex) {
super(ex);
}
/**
* Creates a new InvalidScanPathException.
*
* @param msg a message for the exception
* @param ex the cause of the exception
*/
public InvalidScanPathException(String msg, Throwable ex) {
super(msg, ex);
}
}

View File

@@ -1,553 +0,0 @@
/*
* This file is part of dependency-check-cli.
*
* Dependency-check-cli is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* Dependency-check-cli is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-cli. If not, see http://www.gnu.org/licenses/.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.cli;
import java.io.File;
import java.io.FileNotFoundException;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.OptionGroup;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.owasp.dependencycheck.reporting.ReportGenerator.Format;
import org.owasp.dependencycheck.utils.Settings;
/**
* A utility to parse command line arguments for the DependencyCheck.
*
* @author Jeremy Long (jeremy.long@owasp.org)
*/
public final class CliParser {
/**
* The command line.
*/
private CommandLine line;
/**
* The options for the command line parser.
*/
private final Options options = createCommandLineOptions();
/**
* Indicates whether the arguments are valid.
*/
private boolean isValid = true;
/**
* Parses the arguments passed in and captures the results for later use.
*
* @param args the command line arguments
* @throws FileNotFoundException is thrown when a 'file' argument does not
* point to a file that exists.
* @throws ParseException is thrown when a Parse Exception occurs.
*/
public void parse(String[] args) throws FileNotFoundException, ParseException {
line = parseArgs(args);
if (line != null) {
validateArgs();
}
}
/**
* Parses the command line arguments.
*
* @param args the command line arguments
* @return the results of parsing the command line arguments
* @throws ParseException if the arguments are invalid
*/
private CommandLine parseArgs(String[] args) throws ParseException {
final CommandLineParser parser = new PosixParser();
return parser.parse(options, args);
}
/**
* Validates that the command line arguments are valid.
*
* @throws FileNotFoundException if there is a file specified by either the
* SCAN or CPE command line arguments that does not exist.
* @throws ParseException is thrown if there is an exception parsing the
* command line.
*/
private void validateArgs() throws FileNotFoundException, ParseException {
if (isRunScan()) {
validatePathExists(getScanFiles(), "scan");
validatePathExists(getReportDirectory(), "out");
if (!line.hasOption(ArgumentName.APP_NAME)) {
throw new ParseException("Missing 'app' argument; the scan cannot be run without the an application name.");
}
if (line.hasOption(ArgumentName.OUTPUT_FORMAT)) {
final String format = line.getOptionValue(ArgumentName.OUTPUT_FORMAT);
try {
Format.valueOf(format);
} catch (IllegalArgumentException ex) {
final String msg = String.format("An invalid 'format' of '%s' was specified. Supported output formats are XML, HTML, VULN, or ALL", format);
throw new ParseException(msg);
}
}
}
}
/**
* Validates whether or not the path(s) points at a file that exists; if the
* path(s) does not point to an existing file a FileNotFoundException is
* thrown.
*
* @param paths the paths to validate if they exists
* @param optType the option being validated (e.g. scan, out, etc.)
* @throws FileNotFoundException is thrown if one of the paths being
* validated does not exist.
*/
private void validatePathExists(String[] paths, String optType) throws FileNotFoundException {
for (String path : paths) {
validatePathExists(path, optType);
}
}
/**
* Validates whether or not the path points at a file that exists; if the
* path does not point to an existing file a FileNotFoundException is
* thrown.
*
* @param path the paths to validate if they exists
* @param optType the option being validated (e.g. scan, out, etc.)
* @throws FileNotFoundException is thrown if the path being validated does
* not exist.
*/
private void validatePathExists(String path, String optType) throws FileNotFoundException {
final File f = new File(path);
if (!f.exists()) {
isValid = false;
final String msg = String.format("Invalid '%s' argument: '%s'", optType, path);
throw new FileNotFoundException(msg);
}
}
/**
* Generates an Options collection that is used to parse the command line
* and to display the help message.
*
* @return the command line options used for parsing the command line
*/
@SuppressWarnings("static-access")
private Options createCommandLineOptions() {
final Option help = new Option(ArgumentName.HELP_SHORT, ArgumentName.HELP, false,
"Print this message.");
final Option version = new Option(ArgumentName.VERSION_SHORT, ArgumentName.VERSION,
false, "Print the version information.");
final Option noUpdate = new Option(ArgumentName.DISABLE_AUTO_UPDATE_SHORT, ArgumentName.DISABLE_AUTO_UPDATE,
false, "Disables the automatic updating of the CPE data.");
final Option appName = OptionBuilder.withArgName("name").hasArg().withLongOpt(ArgumentName.APP_NAME)
.withDescription("The name of the application being scanned. This is a required argument.")
.create(ArgumentName.APP_NAME_SHORT);
final Option connectionTimeout = OptionBuilder.withArgName("timeout").hasArg().withLongOpt(ArgumentName.CONNECTION_TIMEOUT)
.withDescription("The connection timeout (in milliseconds) to use when downloading resources.")
.create(ArgumentName.CONNECTION_TIMEOUT_SHORT);
final Option proxyUrl = OptionBuilder.withArgName("url").hasArg().withLongOpt(ArgumentName.PROXY_URL)
.withDescription("The proxy url to use when downloading resources.")
.create(ArgumentName.PROXY_URL_SHORT);
final Option proxyPort = OptionBuilder.withArgName("port").hasArg().withLongOpt(ArgumentName.PROXY_PORT)
.withDescription("The proxy port to use when downloading resources.")
.create(ArgumentName.PROXY_PORT_SHORT);
final Option proxyUsername = OptionBuilder.withArgName("user").hasArg().withLongOpt(ArgumentName.PROXY_USERNAME)
.withDescription("The proxy username to use when downloading resources.")
.create(ArgumentName.PROXY_USERNAME_SHORT);
final Option proxyPassword = OptionBuilder.withArgName("pass").hasArg().withLongOpt(ArgumentName.PROXY_PASSWORD)
.withDescription("The proxy password to use when downloading resources.")
.create(ArgumentName.PROXY_PASSWORD_SHORT);
final Option path = OptionBuilder.withArgName("path").hasArg().withLongOpt(ArgumentName.SCAN)
.withDescription("The path to scan - this option can be specified multiple times.")
.create(ArgumentName.SCAN_SHORT);
final Option props = OptionBuilder.withArgName("file").hasArg().withLongOpt(ArgumentName.PROP)
.withDescription("A property file to load.")
.create(ArgumentName.PROP_SHORT);
final Option data = OptionBuilder.withArgName("path").hasArg().withLongOpt(ArgumentName.DATA_DIRECTORY)
.withDescription("The location of the data directory used to store persistent data. This option should generally not be set.")
.create(ArgumentName.DATA_DIRECTORY_SHORT);
final Option out = OptionBuilder.withArgName("folder").hasArg().withLongOpt(ArgumentName.OUT)
.withDescription("The folder to write reports to. This defaults to the current directory.")
.create(ArgumentName.OUT_SHORT);
final Option outputFormat = OptionBuilder.withArgName("format").hasArg().withLongOpt(ArgumentName.OUTPUT_FORMAT)
.withDescription("The output format to write to (XML, HTML, VULN, ALL). The default is HTML.")
.create(ArgumentName.OUTPUT_FORMAT_SHORT);
final Option verboseLog = OptionBuilder.withArgName("file").hasArg().withLongOpt(ArgumentName.VERBOSE_LOG)
.withDescription("The file path to write verbose logging information.")
.create(ArgumentName.VERBOSE_LOG_SHORT);
final OptionGroup og = new OptionGroup();
og.addOption(path);
final Options opts = new Options();
opts.addOptionGroup(og);
opts.addOption(out);
opts.addOption(outputFormat);
opts.addOption(appName);
opts.addOption(version);
opts.addOption(help);
opts.addOption(noUpdate);
opts.addOption(props);
opts.addOption(data);
opts.addOption(verboseLog);
opts.addOption(proxyPort);
opts.addOption(proxyUrl);
opts.addOption(proxyUsername);
opts.addOption(proxyPassword);
opts.addOption(connectionTimeout);
return opts;
}
/**
* Determines if the 'version' command line argument was passed in.
*
* @return whether or not the 'version' command line argument was passed in
*/
public boolean isGetVersion() {
return (line != null) && line.hasOption(ArgumentName.VERSION);
}
/**
* Determines if the 'help' command line argument was passed in.
*
* @return whether or not the 'help' command line argument was passed in
*/
public boolean isGetHelp() {
return (line != null) && line.hasOption(ArgumentName.HELP);
}
/**
* Determines if the 'scan' command line argument was passed in.
*
* @return whether or not the 'scan' command line argument was passed in
*/
public boolean isRunScan() {
return (line != null) && isValid && line.hasOption(ArgumentName.SCAN);
}
/**
* Displays the command line help message to the standard output.
*/
public void printHelp() {
final HelpFormatter formatter = new HelpFormatter();
final String nl = System.getProperty("line.separator");
formatter.printHelp(Settings.getString("application.name", "DependencyCheck"),
nl + Settings.getString("application.name", "DependencyCheck")
+ " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. "
+ Settings.getString("application.name", "DependencyCheck")
+ " will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov." + nl + nl,
options,
"",
true);
}
/**
* Retrieves the file command line parameter(s) specified for the 'scan'
* argument.
*
* @return the file paths specified on the command line for scan
*/
public String[] getScanFiles() {
return line.getOptionValues(ArgumentName.SCAN);
}
/**
* Returns the directory to write the reports to specified on the command
* line.
*
* @return the path to the reports directory.
*/
public String getReportDirectory() {
return line.getOptionValue(ArgumentName.OUT, ".");
}
/**
* Returns the output format specified on the command line. Defaults to HTML
* if no format was specified.
*
* @return the output format name.
*/
public String getReportFormat() {
return line.getOptionValue(ArgumentName.OUTPUT_FORMAT, "HTML");
}
/**
* Returns the application name specified on the command line.
*
* @return the application name.
*/
public String getApplicationName() {
return line.getOptionValue(ArgumentName.APP_NAME);
}
/**
* Returns the connection timeout.
*
* @return the connection timeout
*/
public String getConnectionTimeout() {
return line.getOptionValue(ArgumentName.CONNECTION_TIMEOUT);
}
/**
* Returns the proxy url.
*
* @return the proxy url
*/
public String getProxyUrl() {
return line.getOptionValue(ArgumentName.PROXY_URL);
}
/**
* Returns the proxy port.
*
* @return the proxy port
*/
public String getProxyPort() {
return line.getOptionValue(ArgumentName.PROXY_PORT);
}
/**
* Returns the proxy username.
*
* @return the proxy username
*/
public String getProxyUsername() {
return line.getOptionValue(ArgumentName.PROXY_USERNAME);
}
/**
* Returns the proxy password.
*
* @return the proxy password
*/
public String getProxyPassword() {
return line.getOptionValue(ArgumentName.PROXY_PASSWORD);
}
/**
* Get the value of dataDirectory.
*
* @return the value of dataDirectory
*/
public String getDataDirectory() {
return line.getOptionValue(ArgumentName.DATA_DIRECTORY);
}
/**
* Returns the properties file specified on the command line.
*
* @return the properties file specified on the command line
*/
public File getPropertiesFile() {
final String path = line.getOptionValue(ArgumentName.PROP);
if (path != null) {
return new File(path);
}
return null;
}
/**
* Returns the path to the verbose log file.
*
* @return the path to the verbose log file
*/
public String getVerboseLog() {
return line.getOptionValue(ArgumentName.VERBOSE_LOG);
}
/**
* <p>Prints the manifest information to standard output.</p>
* <ul><li>Implementation-Title: ${pom.name}</li>
* <li>Implementation-Version: ${pom.version}</li></ul>
*/
public void printVersionInfo() {
final String version = String.format("%s version %s",
Settings.getString("application.name", "DependencyCheck"),
Settings.getString("application.version", "Unknown"));
System.out.println(version);
}
/**
* Checks if the auto update feature has been disabled. If it has been
* disabled via the command line this will return false.
*
* @return if auto-update is allowed.
*/
public boolean isAutoUpdate() {
return (line == null) || !line.hasOption(ArgumentName.DISABLE_AUTO_UPDATE);
}
/**
* A collection of static final strings that represent the possible command
* line arguments.
*/
public static class ArgumentName {
/**
* The long CLI argument name specifying the directory/file to scan.
*/
public static final String SCAN = "scan";
/**
* The short CLI argument name specifying the directory/file to scan.
*/
public static final String SCAN_SHORT = "s";
/**
* The long CLI argument name specifying that the CPE/CVE/etc. data
* should not be automatically updated.
*/
public static final String DISABLE_AUTO_UPDATE = "noupdate";
/**
* The short CLI argument name specifying that the CPE/CVE/etc. data
* should not be automatically updated.
*/
public static final String DISABLE_AUTO_UPDATE_SHORT = "n";
/**
* The long CLI argument name specifying the directory to write the
* reports to.
*/
public static final String OUT = "out";
/**
* The short CLI argument name specifying the directory to write the
* reports to.
*/
public static final String OUT_SHORT = "o";
/**
* The long CLI argument name specifying the output format to write the
* reports to.
*/
public static final String OUTPUT_FORMAT = "format";
/**
* The short CLI argument name specifying the output format to write the
* reports to.
*/
public static final String OUTPUT_FORMAT_SHORT = "f";
/**
* The long CLI argument name specifying the name of the application to
* be scanned.
*/
public static final String APP_NAME = "app";
/**
* The short CLI argument name specifying the name of the application to
* be scanned.
*/
public static final String APP_NAME_SHORT = "a";
/**
* The long CLI argument name asking for help.
*/
public static final String HELP = "help";
/**
* The short CLI argument name asking for help.
*/
public static final String HELP_SHORT = "h";
/**
* The long CLI argument name asking for the version.
*/
public static final String VERSION_SHORT = "v";
/**
* The short CLI argument name asking for the version.
*/
public static final String VERSION = "version";
/**
* The short CLI argument name indicating the proxy port.
*/
public static final String PROXY_PORT_SHORT = "p";
/**
* The CLI argument name indicating the proxy port.
*/
public static final String PROXY_PORT = "proxyport";
/**
* The short CLI argument name indicating the proxy url.
*/
public static final String PROXY_URL_SHORT = "u";
/**
* The CLI argument name indicating the proxy url.
*/
public static final String PROXY_URL = "proxyurl";
/**
* The short CLI argument name indicating the proxy username.
*/
public static final String PROXY_USERNAME_SHORT = "pu";
/**
* The CLI argument name indicating the proxy username.
*/
public static final String PROXY_USERNAME = "proxyuser";
/**
* The short CLI argument name indicating the proxy password.
*/
public static final String PROXY_PASSWORD_SHORT = "pp";
/**
* The CLI argument name indicating the proxy password.
*/
public static final String PROXY_PASSWORD = "proxypass";
/**
* The short CLI argument name indicating the connection timeout.
*/
public static final String CONNECTION_TIMEOUT_SHORT = "c";
/**
* The CLI argument name indicating the connection timeout.
*/
public static final String CONNECTION_TIMEOUT = "connectiontimeout";
/**
* The short CLI argument name for setting the location of an additional
* properties file.
*/
public static final String PROP_SHORT = "p";
/**
* The CLI argument name for setting the location of an additional
* properties file.
*/
public static final String PROP = "propertyfile";
/**
* The CLI argument name for setting the location of the data directory.
*/
public static final String DATA_DIRECTORY = "data";
/**
* The short CLI argument name for setting the location of the data
* directory.
*/
public static final String DATA_DIRECTORY_SHORT = "d";
/**
* The CLI argument name for setting the location of the data directory.
*/
public static final String VERBOSE_LOG = "log";
/**
* The short CLI argument name for setting the location of the data
* directory.
*/
public static final String VERBOSE_LOG_SHORT = "l";
}
}

View File

@@ -1,12 +0,0 @@
/**
* <html>
* <head>
* <title>org.owasp.dependencycheck.cli</title>
* </head>
* <body>
* Includes utility classes such as the CLI Parser,
* </body>
* </html>
*/
package org.owasp.dependencycheck.cli;

View File

@@ -1,12 +1,4 @@
/**
* <html>
* <head>
* <title>org.owasp.dependencycheck</title>
* </head>
* <body>
* Includes the main entry point for the DependencyChecker.
* </body>
* </html>
*/
*/
package org.owasp.dependencycheck;

View File

@@ -1,22 +0,0 @@
handlers=java.util.logging.ConsoleHandler
#, java.util.logging.FileHandler
# logging levels
# FINEST, FINER, FINE, CONFIG, INFO, WARNING and SEVERE.
# Configure the ConsoleHandler.
java.util.logging.ConsoleHandler.level=INFO
# Configure the FileHandler.
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level=FINE
# The following special tokens can be used in the pattern property
# which specifies the location and name of the log file.
# / - standard path separator
# %t - system temporary directory
# %h - value of the user.home system property
# %g - generation number for rotating logs
# %u - unique number to avoid conflicts
# FileHandler writes to %h/demo0.log by default.
java.util.logging.FileHandler.pattern=./dependency-check.log

View File

@@ -0,0 +1,16 @@
<configuration>
<contextName>dependency-check</contextName>
<!-- Logging configuration -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>[%level] %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="console"/>
</root>
</configuration>

View File

@@ -0,0 +1,64 @@
Command Line Arguments
======================
The following table lists the command line arguments:
Short | Argument&nbsp;Name&nbsp;&nbsp; | Parameter | Description | Requirement
-------|-----------------------|-----------------|-------------|------------
| \-\-project | \<name\> | The name of the project being scanned. | Required
\-s | \-\-scan | \<path\> | The path to scan \- this option can be specified multiple times. It is also possible to specify Ant style paths (e.g. directory/**/*.jar). | Required
| \-\-exclude | \<pattern\> | The path patterns to exclude from the scan \- this option can be specified multiple times. This accepts Ant style path patterns (e.g. **/exclude/**). | Optional
| \-\-symLink | \<depth\> | The depth that symbolic links will be followed; the default is 0 meaning symbolic links will not be followed. | Optional
\-o | \-\-out | \<path\> | The folder to write reports to. This defaults to the current directory. If the format is not set to ALL one could specify a specific file name. | Optional
\-f | \-\-format | \<format\> | The output format to write to (XML, HTML, VULN, ALL). The default is HTML. | Required
\-l | \-\-log | \<file\> | The file path to write verbose logging information. | Optional
\-n | \-\-noupdate | | Disables the automatic updating of the CPE data. | Optional
| \-\-suppression | \<file\> | The file path to the suppression XML file; used to suppress [false positives](../general/suppression.html). | Optional
\-h | \-\-help | | Print the help message. | Optional
| \-\-advancedHelp | | Print the advanced help message. | Optional
\-v | \-\-version | | Print the version information. | Optional
| \-\-cveValidForHours | \<hours\> | The number of hours to wait before checking for new updates from the NVD. The default is 4 hours. | Optional
Advanced Options
================
Short | Argument&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Parameter | Description | Default&nbsp;Value
-------|-----------------------|-----------------|----------------------------------------------------------------------------------|-------------------
| \-\-cveUrl12Modified | \<url\> | URL for the modified CVE 1.2 | https://nvd.nist.gov/download/nvdcve-Modified.xml.gz
| \-\-cveUrl20Modified | \<url\> | URL for the modified CVE 2.0 | https://nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-Modified.xml.gz
| \-\-cveUrl12Base | \<url\> | Base URL for each year's CVE 1.2, the %d will be replaced with the year | https://nvd.nist.gov/download/nvdcve-%d.xml.gz
| \-\-cveUrl20Base | \<url\> | Base URL for each year's CVE 2.0, the %d will be replaced with the year | https://nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-%d.xml.gz
\-P | \-\-propertyfile | \<file\> | Specifies a file that contains properties to use instead of applicaion defaults. | &nbsp;
| \-\-updateonly | | If set only the update phase of dependency-check will be executed; no scan will be executed and no report will be generated. | &nbsp;
| \-\-disablePyDist | | Sets whether the Python Distribution Analyzer will be used. | false
| \-\-disablePyPkg | | Sets whether the Python Package Analyzer will be used. | false
| \-\-disableNodeJS | | Sets whether the Node.js Package Analyzer will be used. | false
| \-\-disableRubygems | | Sets whether the Ruby Gemspec Analyzer will be used. | false
| \-\-disableBundleAudit | | Sets whether the Ruby Bundler Audit Analyzer will be used. | false
| \-\-disableAutoconf | | Sets whether the Autoconf Analyzer will be used. | false
| \-\-disableOpenSSL | | Sets whether the OpenSSL Analyzer will be used. | false
| \-\-disableCmake | | Sets whether the Cmake Analyzer will be disabled. | false
| \-\-disableArchive | | Sets whether the Archive Analyzer will be disabled. | false
| \-\-zipExtensions | \<strings\> | A comma-separated list of additional file extensions to be treated like a ZIP file, the contents will be extracted and analyzed. | &nbsp;
| \-\-disableJar | | Sets whether the Jar Analyzer will be disabled. | false
| \-\-disableComposer | | Sets whether the PHP Composer Lock File Analyzer will be disabled. | false
| \-\-disableCentral | | Sets whether the Central Analyzer will be used. **Disabling this analyzer is not recommended as it could lead to false negatives (e.g. libraries that have vulnerabilities may not be reported correctly).** If this analyzer is being disabled there is a good chance you also want to disable the Nexus Analyzer. | false
| \-\-disableNexus | | Sets whether the Nexus Analyzer will be used. Note, this has been superceded by the Central Analyzer. However, you can configure the Nexus URL to utilize an internally hosted Nexus Pro server. | false
| \-\-nexus | \<url\> | The url to the Nexus Server's web service end point (example: http://domain.enterprise/nexus/service/local/). If not set the Nexus Analyzer will be disabled. | &nbsp;
| \-\-nexusUsesProxy | \<true\|false\> | Whether or not the defined proxy should be used when connecting to Nexus. | true
| \-\-disableNuspec | | Sets whether or not the .NET Nuget Nuspec Analyzer will be used. | false
| \-\-disableAssembly | | Sets whether or not the .NET Assembly Analyzer should be used. | false
| \-\-mono | \<path\> | The path to Mono for .NET Assembly analysis on non-windows systems. | &nbsp;
| \-\-bundleAudit | | The path to the bundle-audit executable. | &nbsp;
| \-\-proxyserver | \<server\> | The proxy server to use when downloading resources. | &nbsp;
| \-\-proxyport | \<port\> | The proxy port to use when downloading resources. | &nbsp;
| \-\-connectiontimeout | \<timeout\> | The connection timeout (in milliseconds) to use when downloading resources. | &nbsp;
| \-\-proxypass | \<pass\> | The proxy password to use when downloading resources. | &nbsp;
| \-\-proxyuser | \<user\> | The proxy username to use when downloading resources. | &nbsp;
| \-\-connectionString | \<connStr\> | The connection string to the database. | &nbsp;
| \-\-dbDriverName | \<driver\> | The database driver name. | &nbsp;
| \-\-dbDriverPath | \<path\> | The path to the database driver; note, this does not need to be set unless the JAR is outside of the class path. | &nbsp;
| \-\-dbPassword | \<password\> | The password for connecting to the database. | &nbsp;
| \-\-dbUser | \<user\> | The username used to connect to the database. | &nbsp;
\-d | \-\-data | \<path\> | The location of the data directory used to store persistent data. This option should generally not be set. | &nbsp;
| \-\-purge | | Delete the local copy of the NVD. This is used to force a refresh of the data. | &nbsp;

View File

@@ -0,0 +1,39 @@
About
====================
OWASP dependency-check-cli is an command line tool that uses dependency-check-core to detect
publicly disclosed vulnerabilities associated with the scanned project dependencies. The tool
will generate a report listing the dependency, any identified Common Platform Enumeration (CPE)
identifiers, and the associated Common Vulnerability and Exposure (CVE) entries.
Installation & Usage
====================
Download the dependency-check command line tool [here](http://dl.bintray.com/jeremy-long/owasp/dependency-check-${project.version}-release.zip).
Extract the zip file to a location on your computer and put the 'bin' directory into the
path environment variable. On \*nix systems you will likely need to make the shell
script executable:
$ chmod +777 dependency-check.sh
#set( $H = '#' )
$H$H$H Homebrew
$ brew install dependency-check
This puts an executable `dependency-check` script in the `/bin` directory of
your homebrew installation.
To scan a folder on the system you can run:
$H$H$H Windows
dependency-check.bat --project "My App Name" --scan "c:\java\application\lib"
$H$H$H *nix
dependency-check.sh --project "My App Name" --scan "/java/application/lib"
To view the command line arguments, see the <a href="arguments.html">arguments page</a>, or you can run:
$H$H$H Windows
dependency-check.bat --help
$H$H$H *nix
dependency-check.sh --help

View File

@@ -1,16 +0,0 @@
Installation & Usage
--------------------
Downlod the dependency-check command line tool [here](http://dl.bintray.com/jeremy-long/owasp/dependency-check-${project.version}-release.zip).
Extract the zip file to a location on your computer and put the 'bin' directory into the
path environment variable. On \*nix systems you will likely need to make the shell
script executable:
$ chmod +777 dependency-check.sh
To scan a folder on the system you can run:
### Windows
dependency-check.bat --app "My App Name" --scan "c:\java\application\lib"
### \*nix
dependency-check.sh --app "My App Name" --scan "/java/application/lib"

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -2,33 +2,34 @@
<!--
This file is part of dependency-check-cli.
Dependency-check-cli is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Dependency-check-cli is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
http://www.apache.org/licenses/LICENSE-2.0
You should have received a copy of the GNU General Public License along with
dependency-check-cli. If not, see http://www.gnu.org/licenses/.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright (c) 2013 Jeremy Long. All Rights Reserved.
-->
<project name="dependency-check-cli">
<bannerLeft>
<name>dependency-check-cli</name>
<name>OWASP dependency-check-cli</name>
<alt>OWASP dependency-check-cli</alt>
<src>./images/dc-cli.svg</src>
</bannerLeft>
<body>
<breadcrumbs>
<item name="dependency-check" href="../index.html"/>
</breadcrumbs>
<menu name="Getting Started">
<item name="Installation" href="installation.html"/>
<item name="Installation" href="index.html"/>
<item name="Configuration" href="arguments.html"/>
</menu>
<menu ref="Project Documentation" />
<menu ref="reports" />
</body>
</project>

View File

@@ -0,0 +1,75 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 The OWASP Foundatio. All Rights Reserved.
*/
package org.owasp.dependencycheck;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author jeremy
*/
public class AppTest {
public AppTest() {
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of ensureCanonicalPath method, of class App.
*/
@Test
public void testEnsureCanonicalPath() {
String file = "../*.jar";
App instance = new App();
String result = instance.ensureCanonicalPath(file);
assertFalse(result.contains(".."));
assertTrue(result.endsWith("*.jar"));
}
/**
* Test of ensureCanonicalPath method, of class App.
*/
@Test
public void testEnsureCanonicalPath2() {
String file = "../some/skip/../path/file.txt";
App instance = new App();
String expResult = "/some/path/file.txt";
String result = instance.ensureCanonicalPath(file);
assertTrue("result=" + result, result.endsWith(expResult));
}
}

View File

@@ -1,24 +1,23 @@
/*
* This file is part of Dependency-Check.
*
* Dependency-Check is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-Check is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* Dependency-Check. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.cli;
package org.owasp.dependencycheck;
import org.owasp.dependencycheck.cli.CliParser;
import org.owasp.dependencycheck.CliParser;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
@@ -31,19 +30,22 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.owasp.dependencycheck.utils.Settings;
/**
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class CliParserTest {
@BeforeClass
public static void setUpClass() throws Exception {
Settings.initialize();
}
@AfterClass
public static void tearDownClass() throws Exception {
Settings.cleanup(true);
}
@Before

View File

@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,18 @@
dependency-check
Copyright (c) 2012-2013 Jeremy Long. All Rights Reserved.
The licenses for the software listed below can be found in the META-INF/licenses/[dependency name].
This product includes software developed by The Apache Software Foundation (http://www.apache.org/).
This product includes software developed by Jquery.com (http://jquery.com/).
This product includes software developed by Jonathan Hedley (jsoup.org)
This software contains unmodified binary redistributions for H2 database engine (http://www.h2database.com/), which is dual licensed and available under a modified version of the MPL 1.1 (Mozilla Public License) or under the (unmodified) EPL 1.0 (Eclipse Public License).
An original copy of the license agreement can be found at: http://www.h2database.com/html/license.html
This product includes data from the Common Weakness Enumeration (CWE): http://cwe.mitre.org/
This product downloads and utilizes data from the National Vulnerability Database hosted by NIST: http://nvd.nist.gov/download.cfm

View File

@@ -0,0 +1,28 @@
Dependency-Check-Core
================
Dependency-Check-Core is the main engine used by all of the other modules to do the analysis and reporting.
Mailing List
------------
Subscribe: [dependency-check+subscribe@googlegroups.com] [subscribe]
Post: [dependency-check@googlegroups.com] [post]
Archive: [google group](https://groups.google.com/forum/#!forum/dependency-check)
Copyright & License
------------
Dependency-Check is Copyright (c) 2012-2014 Jeremy Long. All Rights Reserved.
Permission to modify and redistribute is granted under the terms of the Apache 2.0 license. See the [LICENSE.txt](https://raw.githubusercontent.com/jeremylong/DependencyCheck/master/LICENSE.txt) file for the full license.
Dependency-Check makes use of several other open source libraries. Please see the [NOTICE.txt] [notices] file for more information.
[wiki]: https://github.com/jeremylong/DependencyCheck/wiki
[subscribe]: mailto:dependency-check+subscribe@googlegroups.com
[post]: mailto:dependency-check@googlegroups.com
[notices]: https://raw.githubusercontent.com/jeremylong/DependencyCheck/master/NOTICE.txt

View File

@@ -1,223 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
http://checkstyle.sourceforge.net/5.x/config.html#Checker
<property name="basedir" value="${basedir}"/>
-->
<property name="severity" value="error"/>
<module name="SuppressionFilter">
<property name="file" value="${checkstyle.suppressions.file}"/>
</module>
<module name="JavadocPackage">
<property name="allowLegacy" value="false"/>
</module>
<module name="Translation">
<property name="severity" value="warning"/>
</module>
<module name="FileTabCharacter">
<property name="eachLine" value="false"/>
</module>
<module name="FileLength">
<property name="fileExtensions" value="java"/>
</module>
<module name="NewlineAtEndOfFile">
<property name="fileExtensions" value="java"/>
<property name="lineSeparator" value="lf"/>
</module>
<module name="RegexpHeader">
<property name="headerFile" value="${checkstyle.header.file}"/>
<property name="fileExtensions" value="java"/>
<property name="id" value="header"/>
</module>
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
</module>
<module name="TreeWalker">
<property name="tabWidth" value="4"/>
<module name="AvoidStarImport"/>
<module name="ConstantName"/>
<module name="EmptyBlock"/>
<module name="EmptyForIteratorPad"/>
<module name="EqualsHashCode"/>
<module name="OneStatementPerLine"/>
<!-- module name="IllegalCatch"/ -->
<!--module name="ImportControl">
<property name="file" value="${checkstyle.importcontrol.file}"/>
</module-->
<module name="IllegalImport"/>
<module name="IllegalInstantiation"/>
<module name="IllegalThrows"/>
<module name="InnerAssignment"/>
<module name="JavadocType">
<property name="authorFormat" value="\S"/>
</module>
<module name="JavadocMethod">
<property name="allowUndeclaredRTE" value="true"/>
<property name="allowThrowsTagsForSubclasses" value="true"/>
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
<module name="JavadocVariable"/>
<module name="JavadocStyle">
<property name="scope" value="public"/>
</module>
<module name="LeftCurly">
<property name="option" value="eol"/>
<property name="tokens" value="CLASS_DEF"/>
<property name="tokens" value="CTOR_DEF"/>
<property name="tokens" value="INTERFACE_DEF"/>
<property name="tokens" value="METHOD_DEF"/>
<property name="tokens" value="LITERAL_CATCH"/>
<property name="tokens" value="LITERAL_DO"/>
<property name="tokens" value="LITERAL_ELSE"/>
<property name="tokens" value="LITERAL_FINALLY"/>
<property name="tokens" value="LITERAL_FOR"/>
<property name="tokens" value="LITERAL_IF"/>
<property name="tokens" value="LITERAL_SWITCH"/>
<property name="tokens" value="LITERAL_SYNCHRONIZED"/>
<property name="tokens" value="LITERAL_TRY"/>
<property name="tokens" value="LITERAL_WHILE"/>
</module>
<module name="OuterTypeNumber"/>
<module name="LineLength">
<property name="ignorePattern" value="^ *\* *[^ ]+$"/>
<property name="max" value="150"/>
</module>
<module name="MethodCount">
<property name="maxTotal" value="40"/>
</module>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="MethodLength">
<property name="max" value="160"/>
<property name="countEmpty" value="false"/>
</module>
<module name="MethodName"/>
<module name="MethodParamPad"/>
<module name="ModifierOrder"/>
<module name="NeedBraces"/>
<module name="NoWhitespaceAfter">
<property name="tokens" value="ARRAY_INIT"/>
<property name="tokens" value="BNOT"/>
<property name="tokens" value="DEC"/>
<property name="tokens" value="DOT"/>
<property name="tokens" value="INC"/>
<property name="tokens" value="LNOT"/>
<property name="tokens" value="UNARY_MINUS"/>
<property name="tokens" value="UNARY_PLUS"/>
</module>
<module name="NoWhitespaceBefore"/>
<module name="NoWhitespaceBefore">
<property name="tokens" value="DOT"/>
<property name="allowLineBreaks" value="true"/>
</module>
<module name="OperatorWrap"/>
<module name="OperatorWrap">
<property name="tokens" value="ASSIGN"/>
<property name="tokens" value="DIV_ASSIGN"/>
<property name="tokens" value="PLUS_ASSIGN"/>
<property name="tokens" value="MINUS_ASSIGN"/>
<property name="tokens" value="STAR_ASSIGN"/>
<property name="tokens" value="MOD_ASSIGN"/>
<property name="tokens" value="SR_ASSIGN"/>
<property name="tokens" value="BSR_ASSIGN"/>
<property name="tokens" value="SL_ASSIGN"/>
<property name="tokens" value="BXOR_ASSIGN"/>
<property name="tokens" value="BOR_ASSIGN"/>
<property name="tokens" value="BAND_ASSIGN"/>
<property name="option" value="eol"/>
</module>
<module name="PackageName"/>
<module name="ParameterName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="ParameterNumber">
<property name="id" value="paramNum"/>
</module>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="RedundantImport"/>
<module name="RedundantModifier"/>
<module name="RightCurly">
<property name="option" value="same"/>
</module>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<module name="StaticVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="TypeName"/>
<module name="UnusedImports"/>
<module name="UpperEll"/>
<module name="VisibilityModifier"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<module name="GenericWhitespace"/>
<module name="FinalClass"/>
<module name="MissingSwitchDefault"/>
<!--module name="MagicNumber"/-->
<!--module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="0"/>
</module-->
<module name="ArrayTrailingComma"/>
<module name="FinalLocalVariable"/>
<module name="EqualsAvoidNull"/>
<module name="ParameterAssignment"/>
<!-- Generates quite a few errors -->
<module name="CyclomaticComplexity">
<property name="severity" value="ignore"/>
</module>
<module name="NestedForDepth">
<property name="max" value="2"/>
</module>
<module name="NestedIfDepth">
<property name="max" value="4"/>
</module>
<module name="NestedTryDepth">
<property name="max" value="2"/>
</module>
<!--module name="ExplicitInitialization"/-->
<module name="AnnotationUseStyle"/>
<module name="MissingDeprecated"/>
<module name="MissingOverride">
<property name="javaFiveCompatibility" value="true"/>
</module>
<module name="PackageAnnotation"/>
<module name="SuppressWarnings"/>
<module name="OuterTypeFilename"/>
<module name="HideUtilityClassConstructor"/>
</module>
</module>

View File

@@ -1,19 +0,0 @@
^/\*\s*$
^ \* This file is part of dependency-check-core\.\s*$
^ \*\s*$
^ \* Dependency-check-core is free software\: you can redistribute it and/or modify it\s*$
^ \* under the terms of the GNU General Public License as published by the Free\s*$
^ \* Software Foundation, either version 3 of the License, or \(at your option\) any\s*$
^ \* later version\.
^ \*\s*$
^ \* Dependency-check-core is distributed in the hope that it will be useful, but\s*$
^ \* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\s*$
^ \* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\s*$
^ \* details\.\s*$
^ \*\s*$
^ \* You should have received a copy of the GNU General Public License along with\s*$
^ \* dependency-check-core\. If not, see http://www.gnu.org/licenses/\.\s*$
^ \*\s*$
^ \* Copyright \(c\) 201[23] (Jeremy Long|Steve Springett)\. All Rights Reserved\.\s*$
^ \*/\s*$
^package

View File

@@ -1,12 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
<suppressions>
<suppress checks=".*" files=".*[\\/]package-info\.java" />
<suppress checks=".*" files=".*org[\\/]owasp[\\/]dependencycheck[\\/]utils[\\/]Filter.java" />
<suppress checks=".*" files=".*org[\\/]owasp[\\/]dependencycheck[\\/]utils[\\/]Checksum.java" />
<suppress checks=".*" files=".*[\\/]generated[\\/].*.java" />
</suppressions>

View File

@@ -1,34 +1,33 @@
<!--
Copyright (c) 2012 - Jeremy Long
This file is part of dependency-check-core.
This file is part of Dependency-Check.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Dependency-Check is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
http://www.apache.org/licenses/LICENSE-2.0
Dependency-Check is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You should have received a copy of the GNU General Public License
along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
Copyright (c) 2012 Jeremy Long. All Rights Reserved.
-->
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-parent</artifactId>
<version>1.0.5</version>
<version>1.3.6</version>
</parent>
<artifactId>dependency-check-core</artifactId>
<packaging>jar</packaging>
<name>Dependency-Check Core</name>
<description>dependency-check-core is the engine and reporting tool used to identify and report if there are any known, publicly disclosed vulnerabilities in the scanned project's dependencies. The engine extracts meta-data from the dependencies and uses this to do fuzzy key-word matching against the Common Platfrom Enumeration (CPE), if any CPE identifiers are found the associated Common Vulnerability and Exposure (CVE) entries are added to the generated report.</description>
<!-- begin copy from http://minds.coremedia.com/2012/09/11/problem-solved-deploy-multi-module-maven-project-site-as-github-pages/ -->
<distributionManagement>
<site>
@@ -71,12 +70,22 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</testResource>
<testResource>
<directory>${basedir}/../src/test/resources</directory>
<filtering>false</filtering>
</testResource>
<testResource>
<directory>${basedir}/src/test/resources</directory>
<excludes>
<exclude>**/mysql-connector-java-5.1.27-bin.jar</exclude>
</excludes>
<filtering>false</filtering>
</testResource>
</testResources>
@@ -84,7 +93,6 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<phase>generate-resources</phase>
@@ -93,7 +101,7 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
</goals>
<configuration>
<outputDirectory>${project.build.directory}/test-classes</outputDirectory>
<includeScope>provided</includeScope>
<includeScope>test</includeScope>
</configuration>
</execution>
</executions>
@@ -101,40 +109,27 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<id>test-jar</id>
<phase>package</phase>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<includes>
<include>**/*.class</include>
</includes>
</configuration>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<excludes>
<exclude>**/checkstyle*</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<instrumentation>
<!--ignoreTrivial>true</ignoreTrivial-->
<ignores>
<ignore>.*\$KEYS\.class</ignore>
<ignore>.*\$Element\.class</ignore>
@@ -182,14 +177,9 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
<systemProperties>
<property>
<name>net.sourceforge.cobertura.datafile</name>
<value>${project.build.directory}/cobertura/cobertura.ser</value>
<workingDirectory>target</workingDirectory>
</property>
<property>
<name>data.directory</name>
<value>${project.build.directory}/data</value>
@@ -201,347 +191,216 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
</systemProperties>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
<exclude>**/*MySQLTest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.14</version>
<configuration>
<systemProperties>
<property>
<name>data.directory</name>
<value>${project.build.directory}/data</value>
</property>
<property>
<name>temp.directory</name>
<value>${project.build.directory}/temp</value>
</property>
</systemProperties>
<includes>
<include>**/*IntegrationTest.java</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<configuration>
<skipDeploy>true</skipDeploy>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.6</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>summary</report>
<report>license</report>
<report>help</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<reportSets>
<reportSet>
<id>default</id>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.0</version>
<reportSets>
<reportSet>
<reports>
<report>dependency-updates-report</report>
<report>plugin-updates-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.14</version>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
<reportSet>
<id>integration-tests</id>
<reports>
<report>report-only</report>
<report>failsafe-report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.4</version>
<configuration>
<tagListOptions>
<tagClasses>
<tagClass>
<displayName>Todo Work</displayName>
<tags>
<tag>
<matchString>todo</matchString>
<matchType>ignoreCase</matchType>
</tag>
<tag>
<matchString>FIXME</matchString>
<matchType>exact</matchType>
</tag>
</tags>
</tagClass>
</tagClasses>
</tagListOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.10</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<configLocation>${basedir}/config/checkstyle-checks.xml</configLocation>
<headerLocation>${basedir}/config/checkstyle-header.txt</headerLocation>
<suppressionsLocation>${basedir}/config/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<targetJdk>1.6</targetJdk>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<excludes>
<exclude>**/generated/*.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</reportPlugins>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<showDeprecation>false</showDeprecation>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<reportSets>
<reportSet>
<id>integration-tests</id>
<reports>
<report>report-only</report>
<report>failsafe-report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${reporting.checkstyle-plugin.version}</version>
<configuration>
<enableRulesSummary>false</enableRulesSummary>
<enableFilesSummary>false</enableFilesSummary>
<configLocation>${basedir}/../src/main/config/checkstyle-checks.xml</configLocation>
<headerLocation>${basedir}/../src/main/config/checkstyle-header.txt</headerLocation>
<suppressionsLocation>${basedir}/../src/main/config/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${reporting.pmd-plugin.version}</version>
<configuration>
<targetJdk>1.6</targetJdk>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<excludes>
<exclude>**/generated/*.java</exclude>
</excludes>
<rulesets>
<ruleset>../src/main/config/dcrules.xml</ruleset>
<ruleset>/rulesets/java/basic.xml</ruleset>
<ruleset>/rulesets/java/imports.xml</ruleset>
<ruleset>/rulesets/java/unusedcode.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</reporting>
<dependencies>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-test-framework</artifactId>
<version>4.3.1</version>
<scope>test</scope>
</dependency>
<!-- Note, to stay compatible with Jenkins installations only JARs compiled to 1.6 can be used -->
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>annotations</artifactId>
<version>2.0.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!-- Set this to test so that each project that uses this has to have its own implementation of SLF4J -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-utils</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>4.3.1</version>
<artifactId>lucene-test-framework</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
<!-- very limited use of the velocity-tools, not all of the dependencies are needed-->
<exclusions>
<exclusion>
<groupId>commons-chain</groupId>
<artifactId>commons-chain</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
</exclusion>
<exclusion>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
</exclusion>
<exclusion>
<groupId>sslext</groupId>
<artifactId>sslext</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.struts</groupId>
<artifactId>struts-core</artifactId>
</exclusion>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.struts</groupId>
<artifactId>struts-taglib</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.struts</groupId>
<artifactId>struts-tiles</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.172</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.2</version>
<type>jar</type>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>mailapi</artifactId>
</dependency>
<!-- The following dependencies are only used during testing -->
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-cvsexe</artifactId>
<version>1.8.1</version>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>2.5.5</version>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>3.0.0.RELEASE</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>2.5</version>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.1.2</version>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-spring</artifactId>
<version>1.4.1</version>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.4.1</version>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
@@ -549,7 +408,7 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
<artifactId>daytrader-ear</artifactId>
<version>2.1.7</version>
<type>ear</type>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
@@ -557,7 +416,7 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
<artifactId>war</artifactId>
<version>4.0</version>
<type>war</type>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
@@ -565,8 +424,313 @@ along with Dependency-Check. If not, see <http://www.gnu.org/licenses />.
<artifactId>dojo-war</artifactId>
<version>1.3.0</version>
<type>war</type>
<scope>provided</scope>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
<version>2.0.1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
<version>1.1.0.RELEASE</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>uk.ltd.getahead</groupId>
<artifactId>dwr</artifactId>
<version>1.1.1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.0</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
</dependencies>
<profiles>
<profile>
<id>MySQL-IntegrationTest</id>
<activation>
<property>
<name>mysql</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemProperties>
<property>
<name>data.driver_path</name>
<value>${driver_path}</value>
</property>
<property>
<name>data.driver_name</name>
<value>${driver_name}</value>
</property>
<property>
<name>data.connection_string</name>
<value>${connection_string}</value>
</property>
</systemProperties>
<includes>
<include>**/*MySQLTest.java</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>Postgresql-IntegrationTest</id>
<activation>
<property>
<name>postgresql</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1204-jdbc42</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemProperties>
<property>
<name>data.driver_path</name>
<value>${driver_path}</value>
</property>
<property>
<name>data.driver_name</name>
<value>${driver_name}</value>
</property>
<property>
<name>data.connection_string</name>
<value>${connection_string}</value>
</property>
</systemProperties>
<includes>
<include>**/*MySQLTest.java</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- The following profile adds additional
dependencies that are only used during testing.
Additionally, these are only added when using "allTests" to
make the build slightly faster in most cases. -->
<id>False Positive Tests</id>
<activation>
<property>
<name>allTests</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-util</artifactId>
<version>1.7</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.2</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.ws.security</groupId>
<artifactId>wss4j</artifactId>
<version>1.5.7</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.ganyo</groupId>
<artifactId>gcm-server</artifactId>
<version>1.0.2</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7-b1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
<version>1.7.4</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby</artifactId>
<version>1.6.3</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.12</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.11.1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.8-02</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>xmltooling</artifactId>
<version>1.4.1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.12.RELEASE</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.google.gerrit</groupId>
<artifactId>gerrit-extension-api</artifactId>
<version>2.11</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-sqladmin</artifactId>
<version>v1beta4-rev5-1.20.0</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.google.gwt.google-apis</groupId>
<artifactId>gwt-gears</artifactId>
<version>1.2.1</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mozilla</groupId>
<artifactId>rhino</artifactId>
<version>1.7.6</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.microsoft.windowsazure</groupId>
<artifactId>microsoft-azure-api-media</artifactId>
<version>0.5.0</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.microsoft.windowsazure</groupId>
<artifactId>microsoft-azure-api-management-sql</artifactId>
<version>0.5.0</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.microsoft.bingads</groupId>
<artifactId>microsoft.bingads</artifactId>
<version>9.3.4</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
</dependencies>
</profile>
</profiles>
</project>

View File

@@ -1,121 +1,137 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck;
import java.util.EnumMap;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.owasp.dependencycheck.analyzer.AnalysisException;
import org.owasp.dependencycheck.analyzer.AnalysisPhase;
import org.owasp.dependencycheck.analyzer.Analyzer;
import org.owasp.dependencycheck.analyzer.AnalyzerService;
import org.owasp.dependencycheck.data.CachedWebDataSource;
import org.owasp.dependencycheck.data.NoDataException;
import org.owasp.dependencycheck.data.UpdateException;
import org.owasp.dependencycheck.data.UpdateService;
import org.owasp.dependencycheck.data.cpe.CpeIndexReader;
import org.owasp.dependencycheck.analyzer.FileTypeAnalyzer;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.data.nvdcve.ConnectionFactory;
import org.owasp.dependencycheck.data.nvdcve.CveDB;
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
import org.owasp.dependencycheck.data.update.CachedWebDataSource;
import org.owasp.dependencycheck.data.update.UpdateService;
import org.owasp.dependencycheck.data.update.exception.UpdateException;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.utils.FileUtils;
import org.owasp.dependencycheck.exception.NoDataException;
import org.owasp.dependencycheck.utils.InvalidSettingException;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.EnumMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Scans files, directories, etc. for Dependencies. Analyzers are loaded and
* used to process the files found by the scan, if a file is encountered and an
* Analyzer is associated with the file type then the file is turned into a
* dependency.
* Scans files, directories, etc. for Dependencies. Analyzers are loaded and used to process the files found by the scan, if a
* file is encountered and an Analyzer is associated with the file type then the file is turned into a dependency.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class Engine {
public class Engine implements FileFilter {
/**
* The list of dependencies.
*/
private final List<Dependency> dependencies = new ArrayList<Dependency>();
private List<Dependency> dependencies = new ArrayList<Dependency>();
/**
* A Map of analyzers grouped by Analysis phase.
*/
private final EnumMap<AnalysisPhase, List<Analyzer>> analyzers =
new EnumMap<AnalysisPhase, List<Analyzer>>(AnalysisPhase.class);
private Map<AnalysisPhase, List<Analyzer>> analyzers = new EnumMap<AnalysisPhase, List<Analyzer>>(AnalysisPhase.class);
/**
* A set of extensions supported by the analyzers.
* A Map of analyzers grouped by Analysis phase.
*/
private final Set<String> extensions = new HashSet<String>();
private Set<FileTypeAnalyzer> fileTypeAnalyzers = new HashSet<FileTypeAnalyzer>();
/**
* The ClassLoader to use when dynamically loading Analyzer and Update services.
*/
private ClassLoader serviceClassLoader = Thread.currentThread().getContextClassLoader();
/**
* The Logger for use throughout the class.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(Engine.class);
/**
* Creates a new Engine.
*
* @throws DatabaseException thrown if there is an error connecting to the database
*/
public Engine() {
boolean autoUpdate = true;
try {
autoUpdate = Settings.getBoolean(Settings.KEYS.AUTO_UPDATE);
} catch (InvalidSettingException ex) {
Logger.getLogger(Engine.class.getName()).log(Level.FINE, "Invalid setting for auto-update; using true.");
}
if (autoUpdate) {
doUpdates();
}
loadAnalyzers();
public Engine() throws DatabaseException {
initializeEngine();
}
/**
* Creates a new Engine.
*
* @param autoUpdate indicates whether or not data should be updated from
* the Internet
* @deprecated This function should no longer be used; the autoupdate flag
* should be set using:
* <code>Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, value);</code>
* @param serviceClassLoader a reference the class loader being used
* @throws DatabaseException thrown if there is an error connecting to the database
*/
@Deprecated
public Engine(boolean autoUpdate) {
if (autoUpdate) {
doUpdates();
}
public Engine(ClassLoader serviceClassLoader) throws DatabaseException {
this.serviceClassLoader = serviceClassLoader;
initializeEngine();
}
/**
* Creates a new Engine using the specified classloader to dynamically load Analyzer and Update services.
*
* @throws DatabaseException thrown if there is an error connecting to the database
*/
protected final void initializeEngine() throws DatabaseException {
ConnectionFactory.initialize();
loadAnalyzers();
}
/**
* Loads the analyzers specified in the configuration file (or system
* properties).
* Properly cleans up resources allocated during analysis.
*/
public void cleanup() {
ConnectionFactory.cleanup();
}
/**
* Loads the analyzers specified in the configuration file (or system properties).
*/
private void loadAnalyzers() {
if (!analyzers.isEmpty()) {
return;
}
for (AnalysisPhase phase : AnalysisPhase.values()) {
analyzers.put(phase, new ArrayList<Analyzer>());
}
final AnalyzerService service = AnalyzerService.getInstance();
final AnalyzerService service = new AnalyzerService(serviceClassLoader);
final Iterator<Analyzer> iterator = service.getAnalyzers();
while (iterator.hasNext()) {
final Analyzer a = iterator.next();
analyzers.get(a.getAnalysisPhase()).add(a);
if (a.getSupportedExtensions() != null) {
extensions.addAll(a.getSupportedExtensions());
if (a instanceof FileTypeAnalyzer) {
this.fileTypeAnalyzers.add((FileTypeAnalyzer) a);
}
}
}
@@ -140,242 +156,292 @@ public class Engine {
}
/**
* Scans an array of files or directories. If a directory is specified, it
* will be scanned recursively. Any dependencies identified are added to the
* dependency collection.
* Sets the dependencies.
*
* @since v0.3.2.5
*
* @param paths an array of paths to files or directories to be analyzed.
* @param dependencies the dependencies
*/
public void scan(String[] paths) {
public void setDependencies(List<Dependency> dependencies) {
this.dependencies = dependencies;
}
/**
* Scans an array of files or directories. If a directory is specified, it will be scanned recursively. Any dependencies
* identified are added to the dependency collection.
*
* @param paths an array of paths to files or directories to be analyzed
* @return the list of dependencies scanned
* @since v0.3.2.5
*/
public List<Dependency> scan(String[] paths) {
final List<Dependency> deps = new ArrayList<Dependency>();
for (String path : paths) {
final File file = new File(path);
scan(file);
}
}
/**
* Scans a given file or directory. If a directory is specified, it will be
* scanned recursively. Any dependencies identified are added to the
* dependency collection.
*
* @param path the path to a file or directory to be analyzed.
*/
public void scan(String path) {
final File file = new File(path);
scan(file);
}
/**
* Scans an array of files or directories. If a directory is specified, it
* will be scanned recursively. Any dependencies identified are added to the
* dependency collection.
*
* @since v0.3.2.5
*
* @param files an array of paths to files or directories to be analyzed.
*/
public void scan(File[] files) {
for (File file : files) {
scan(file);
}
}
/**
* Scans a list of files or directories. If a directory is specified, it
* will be scanned recursively. Any dependencies identified are added to the
* dependency collection.
*
* @since v0.3.2.5
*
* @param files a set of paths to files or directories to be analyzed.
*/
public void scan(Set<File> files) {
for (File file : files) {
scan(file);
}
}
/**
* Scans a list of files or directories. If a directory is specified, it
* will be scanned recursively. Any dependencies identified are added to the
* dependency collection.
*
* @since v0.3.2.5
*
* @param files a set of paths to files or directories to be analyzed.
*/
public void scan(List<File> files) {
for (File file : files) {
scan(file);
}
}
/**
* Scans a given file or directory. If a directory is specified, it will be
* scanned recursively. Any dependencies identified are added to the
* dependency collection.
*
* @since v0.3.2.4
*
* @param file the path to a file or directory to be analyzed.
*/
public void scan(File file) {
if (file.exists()) {
if (file.isDirectory()) {
scanDirectory(file);
} else {
scanFile(file);
final List<Dependency> d = scan(path);
if (d != null) {
deps.addAll(d);
}
}
return deps;
}
/**
* Recursively scans files and directories. Any dependencies identified are
* added to the dependency collection.
* Scans a given file or directory. If a directory is specified, it will be scanned recursively. Any dependencies identified
* are added to the dependency collection.
*
* @param dir the directory to scan.
* @param path the path to a file or directory to be analyzed
* @return the list of dependencies scanned
*/
protected void scanDirectory(File dir) {
final File[] files = dir.listFiles();
if (files != null) {
for (File f : files) {
if (f.isDirectory()) {
scanDirectory(f);
} else {
scanFile(f);
public List<Dependency> scan(String path) {
final File file = new File(path);
return scan(file);
}
/**
* Scans an array of files or directories. If a directory is specified, it will be scanned recursively. Any dependencies
* identified are added to the dependency collection.
*
* @param files an array of paths to files or directories to be analyzed.
* @return the list of dependencies
* @since v0.3.2.5
*/
public List<Dependency> scan(File[] files) {
final List<Dependency> deps = new ArrayList<Dependency>();
for (File file : files) {
final List<Dependency> d = scan(file);
if (d != null) {
deps.addAll(d);
}
}
return deps;
}
/**
* Scans a collection of files or directories. If a directory is specified, it will be scanned recursively. Any dependencies
* identified are added to the dependency collection.
*
* @param files a set of paths to files or directories to be analyzed
* @return the list of dependencies scanned
* @since v0.3.2.5
*/
public List<Dependency> scan(Collection<File> files) {
final List<Dependency> deps = new ArrayList<Dependency>();
for (File file : files) {
final List<Dependency> d = scan(file);
if (d != null) {
deps.addAll(d);
}
}
return deps;
}
/**
* Scans a given file or directory. If a directory is specified, it will be scanned recursively. Any dependencies identified
* are added to the dependency collection.
*
* @param file the path to a file or directory to be analyzed
* @return the list of dependencies scanned
* @since v0.3.2.4
*/
public List<Dependency> scan(File file) {
if (file.exists()) {
if (file.isDirectory()) {
return scanDirectory(file);
} else {
final Dependency d = scanFile(file);
if (d != null) {
final List<Dependency> deps = new ArrayList<Dependency>();
deps.add(d);
return deps;
}
}
}
return null;
}
/**
* Scans a specified file. If a dependency is identified it is added to the
* dependency collection.
* Recursively scans files and directories. Any dependencies identified are added to the dependency collection.
*
* @param file The file to scan.
* @param dir the directory to scan
* @return the list of Dependency objects scanned
*/
protected void scanFile(File file) {
if (!file.isFile()) {
final String msg = String.format("Path passed to scanFile(File) is not a file: %s. Skipping the file.", file.toString());
Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg);
return;
protected List<Dependency> scanDirectory(File dir) {
final File[] files = dir.listFiles();
final List<Dependency> deps = new ArrayList<Dependency>();
if (files != null) {
for (File f : files) {
if (f.isDirectory()) {
final List<Dependency> d = scanDirectory(f);
if (d != null) {
deps.addAll(d);
}
} else {
final Dependency d = scanFile(f);
deps.add(d);
}
}
}
final String fileName = file.getName();
final String extension = FileUtils.getFileExtension(fileName);
if (extension != null) {
if (extensions.contains(extension)) {
final Dependency dependency = new Dependency(file);
return deps;
}
/**
* Scans a specified file. If a dependency is identified it is added to the dependency collection.
*
* @param file The file to scan
* @return the scanned dependency
*/
protected Dependency scanFile(File file) {
Dependency dependency = null;
if (file.isFile()) {
if (accept(file)) {
dependency = new Dependency(file);
dependencies.add(dependency);
}
} else {
final String msg = String.format("No file extension found on file '%s'. The file was not analyzed.",
file.toString());
Logger.getLogger(Engine.class.getName()).log(Level.FINEST, msg);
LOGGER.debug("Path passed to scanFile(File) is not a file: {}. Skipping the file.", file);
}
return dependency;
}
/**
* Runs the analyzers against all of the dependencies.
* Runs the analyzers against all of the dependencies. Since the mutable dependencies list is exposed via
* {@link #getDependencies()}, this method iterates over a copy of the dependencies list. Thus, the potential for
* {@link java.util.ConcurrentModificationException}s is avoided, and analyzers may safely add or remove entries from the
* dependencies list.
*/
public void analyzeDependencies() {
boolean autoUpdate = true;
try {
autoUpdate = Settings.getBoolean(Settings.KEYS.AUTO_UPDATE);
} catch (InvalidSettingException ex) {
LOGGER.debug("Invalid setting for auto-update; using true.");
}
if (autoUpdate) {
doUpdates();
}
//need to ensure that data exists
try {
ensureDataExists();
} catch (NoDataException ex) {
final String msg = String.format("%n%n%s%n%nUnable to continue dependency-check analysis.", ex.getMessage());
Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, msg);
Logger.getLogger(Engine.class.getName()).log(Level.FINE, null, ex);
LOGGER.error("{}\n\nUnable to continue dependency-check analysis.", ex.getMessage());
LOGGER.debug("", ex);
return;
} catch (DatabaseException ex) {
LOGGER.error("{}\n\nUnable to continue dependency-check analysis.", ex.getMessage());
LOGGER.debug("", ex);
return;
}
//phase one initialize
for (AnalysisPhase phase : AnalysisPhase.values()) {
final List<Analyzer> analyzerList = analyzers.get(phase);
for (Analyzer a : analyzerList) {
try {
final String msg = String.format("Initializing %s", a.getName());
Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg);
a.initialize();
} catch (Exception ex) {
final String msg = String.format("Exception occurred initializing %s.", a.getName());
Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, msg);
Logger.getLogger(Engine.class.getName()).log(Level.INFO, null, ex);
try {
a.close();
} catch (Exception ex1) {
Logger.getLogger(Engine.class.getName()).log(Level.FINEST, null, ex1);
}
}
}
}
LOGGER.debug("\n----------------------------------------------------\nBEGIN ANALYSIS\n----------------------------------------------------");
LOGGER.info("Analysis Starting");
final long analysisStart = System.currentTimeMillis();
// analysis phases
for (AnalysisPhase phase : AnalysisPhase.values()) {
final List<Analyzer> analyzerList = analyzers.get(phase);
for (Analyzer a : analyzerList) {
a = initializeAnalyzer(a);
/* need to create a copy of the collection because some of the
* analyzers may modify it. This prevents ConcurrentModificationExceptions.
* This is okay for adds/deletes because it happens per analyzer.
*/
final String msg = String.format("Begin Analyzer '%s'", a.getName());
Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg);
final Set<Dependency> dependencySet = new HashSet<Dependency>();
dependencySet.addAll(dependencies);
LOGGER.debug("Begin Analyzer '{}'", a.getName());
final Set<Dependency> dependencySet = new HashSet<Dependency>(dependencies);
for (Dependency d : dependencySet) {
final String msgFile = String.format("Begin Analysis of '%s'", d.getActualFilePath());
Logger.getLogger(Engine.class.getName()).log(Level.FINE, msgFile);
if (a.supportsExtension(d.getFileExtension())) {
boolean shouldAnalyze = true;
if (a instanceof FileTypeAnalyzer) {
final FileTypeAnalyzer fAnalyzer = (FileTypeAnalyzer) a;
shouldAnalyze = fAnalyzer.accept(d.getActualFile());
}
if (shouldAnalyze) {
LOGGER.debug("Begin Analysis of '{}'", d.getActualFilePath());
try {
a.analyze(d, this);
} catch (AnalysisException ex) {
d.addAnalysisException(ex);
LOGGER.warn("An error occurred while analyzing '{}'.", d.getActualFilePath());
LOGGER.debug("", ex);
} catch (Throwable ex) {
//final AnalysisException ax = new AnalysisException(axMsg, ex);
LOGGER.warn("An unexpected error occurred during analysis of '{}'", d.getActualFilePath());
LOGGER.debug("", ex);
}
}
}
}
}
//close/cleanup
for (AnalysisPhase phase : AnalysisPhase.values()) {
final List<Analyzer> analyzerList = analyzers.get(phase);
for (Analyzer a : analyzerList) {
final String msg = String.format("Closing Analyzer '%s'", a.getName());
Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg);
try {
a.close();
} catch (Exception ex) {
Logger.getLogger(Engine.class.getName()).log(Level.FINEST, null, ex);
}
closeAnalyzer(a);
}
}
LOGGER.debug("\n----------------------------------------------------\nEND ANALYSIS\n----------------------------------------------------");
LOGGER.info("Analysis Complete ({} ms)", System.currentTimeMillis() - analysisStart);
}
/**
* Initializes the given analyzer.
*
* @param analyzer the analyzer to initialize
* @return the initialized analyzer
*/
protected Analyzer initializeAnalyzer(Analyzer analyzer) {
try {
LOGGER.debug("Initializing {}", analyzer.getName());
analyzer.initialize();
} catch (Throwable ex) {
LOGGER.error("Exception occurred initializing {}.", analyzer.getName());
LOGGER.debug("", ex);
try {
analyzer.close();
} catch (Throwable ex1) {
LOGGER.trace("", ex1);
}
}
return analyzer;
}
/**
* Closes the given analyzer.
*
* @param analyzer the analyzer to close
*/
protected void closeAnalyzer(Analyzer analyzer) {
LOGGER.debug("Closing Analyzer '{}'", analyzer.getName());
try {
analyzer.close();
} catch (Throwable ex) {
LOGGER.trace("", ex);
}
}
/**
* Cycles through the cached web data sources and calls update on all of
* them.
* Cycles through the cached web data sources and calls update on all of them.
*/
private void doUpdates() {
final UpdateService service = UpdateService.getInstance();
public void doUpdates() {
LOGGER.info("Checking for updates");
final long updateStart = System.currentTimeMillis();
final UpdateService service = new UpdateService(serviceClassLoader);
final Iterator<CachedWebDataSource> iterator = service.getDataSources();
while (iterator.hasNext()) {
final CachedWebDataSource source = iterator.next();
try {
source.update();
} catch (UpdateException ex) {
Logger.getLogger(Engine.class.getName()).log(Level.WARNING,
LOGGER.warn(
"Unable to update Cached Web DataSource, using local data instead. Results may not include recent vulnerabilities.");
Logger.getLogger(Engine.class.getName()).log(Level.FINE,
String.format("Unable to update details for %s", source.getClass().getName()), ex);
LOGGER.debug("Unable to update details for {}", source.getClass().getName(), ex);
}
}
LOGGER.info("Check for updates complete ({} ms)", System.currentTimeMillis() - updateStart);
}
/**
* Returns a full list of all of the analyzers. This is useful for reporting
* which analyzers where used.
* Returns a full list of all of the analyzers. This is useful for reporting which analyzers where used.
*
* @return a list of Analyzers
*/
@@ -391,55 +457,49 @@ public class Engine {
/**
* Checks all analyzers to see if an extension is supported.
*
* @param ext a file extension
* @return true or false depending on whether or not the file extension is
* supported
* @param file a file extension
* @return true or false depending on whether or not the file extension is supported
*/
public boolean supportsExtension(String ext) {
if (ext == null) {
@Override
public boolean accept(File file) {
if (file == null) {
return false;
}
for (AnalysisPhase phase : AnalysisPhase.values()) {
final List<Analyzer> analyzerList = analyzers.get(phase);
for (Analyzer a : analyzerList) {
if (a.getSupportedExtensions() != null && a.supportsExtension(ext)) {
return true;
}
}
boolean scan = false;
for (FileTypeAnalyzer a : this.fileTypeAnalyzers) {
/* note, we can't break early on this loop as the analyzers need to know if
they have files to work on prior to initialization */
scan |= a.accept(file);
}
return false;
return scan;
}
/**
* Checks the CPE Index to ensure documents exists. If none exist a
* NoDataException is thrown.
* Returns the set of file type analyzers.
*
* @return the set of file type analyzers
*/
public Set<FileTypeAnalyzer> getFileTypeAnalyzers() {
return this.fileTypeAnalyzers;
}
/**
* Checks the CPE Index to ensure documents exists. If none exist a NoDataException is thrown.
*
* @throws NoDataException thrown if no data exists in the CPE Index
* @throws DatabaseException thrown if there is an exception opening the database
*/
private void ensureDataExists() throws NoDataException {
CpeIndexReader cpe = null;
boolean noDataExists = false;
private void ensureDataExists() throws NoDataException, DatabaseException {
final CveDB cve = new CveDB();
try {
cpe = new CpeIndexReader();
cpe.open();
if (cpe.numDocs() <= 0) {
noDataExists = true;
cve.open();
if (!cve.dataExists()) {
throw new NoDataException("No documents exist");
}
} catch (IOException ex) {
noDataExists = true;
} catch (NullPointerException ex) {
noDataExists = true;
} catch (DatabaseException ex) {
throw new NoDataException(ex.getMessage(), ex);
} finally {
if (cpe != null) {
cpe.close();
}
}
if (noDataExists) {
throw new NoDataException("No data exists in the data store. Please check that you are able to connect "
+ "to the Internet and re-run dependency-check. If the problem persists determine whether you need "
+ "to set a proxy url and port.\\n\\nIf you are unable to solve this problem please contact the mailing "
+ "list for help: dependency-check@googlegroups.com");
cve.close();
}
}
}

View File

@@ -0,0 +1,6 @@
/**
* The agent package holds an agent API that can be used by other applications that have information about dependencies; but would
* rather implement something in their code directly rather then spawn a process to run the entire dependency-check engine. This
* basically provides programmatic access to running a scan.
*/
package org.owasp.dependencycheck.agent;

View File

@@ -1,51 +1,28 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public abstract class AbstractAnalyzer implements Analyzer {
/**
* Utility method to help in the creation of the extensions set. This
* constructs a new Set that can be used in a final static
* declaration.<br/><br/>
*
* This implementation was copied from
* http://stackoverflow.com/questions/2041778/initialize-java-hashset-values-by-construction
*
* @param strings a list of strings to add to the set.
* @return a Set of strings.
*/
protected static Set<String> newHashSet(String... strings) {
final Set<String> set = new HashSet<String>();
Collections.addAll(set, strings);
return set;
}
/**
* The initialize method does nothing for this Analyzer.
*

View File

@@ -0,0 +1,221 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2014 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.utils.InvalidSettingException;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileFilter;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
* The base FileTypeAnalyzer that all analyzers that have specific file types they analyze should extend.
*
* @author Jeremy Long
*/
public abstract class AbstractFileTypeAnalyzer extends AbstractAnalyzer implements FileTypeAnalyzer {
//<editor-fold defaultstate="collapsed" desc="Constructor">
/**
* Base constructor that all children must call. This checks the configuration to determine if the analyzer is enabled.
*/
public AbstractFileTypeAnalyzer() {
reset();
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Field definitions">
/**
* The logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractFileTypeAnalyzer.class);
/**
* Whether the file type analyzer detected any files it needs to analyze.
*/
private boolean filesMatched = false;
/**
* Get the value of filesMatched. A flag indicating whether the scan included any file types this analyzer supports.
*
* @return the value of filesMatched
*/
protected boolean isFilesMatched() {
return filesMatched;
}
/**
* Set the value of filesMatched. A flag indicating whether the scan included any file types this analyzer supports.
*
* @param filesMatched new value of filesMatched
*/
protected void setFilesMatched(boolean filesMatched) {
this.filesMatched = filesMatched;
}
/**
* A flag indicating whether or not the analyzer is enabled.
*/
private boolean enabled = true;
/**
* Get the value of enabled.
*
* @return the value of enabled
*/
public boolean isEnabled() {
return enabled;
}
/**
* Set the value of enabled.
*
* @param enabled new value of enabled
*/
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Abstract methods children must implement">
/**
* <p>
* Returns the {@link java.io.FileFilter} used to determine which files are to be analyzed. An example would be an analyzer
* that inspected Java jar files. Implementors may use {@link org.owasp.dependencycheck.utils.FileFilterBuilder}.</p>
* <p>
* If the analyzer returns null it will not cause additional files to be analyzed, but will be executed against every file
* loaded.</p>
*
* @return the file filter used to determine which files are to be analyzed
*/
protected abstract FileFilter getFileFilter();
/**
* Initializes the file type analyzer.
*
* @throws Exception thrown if there is an exception during initialization
*/
protected abstract void initializeFileTypeAnalyzer() throws Exception;
/**
* Analyzes a given dependency. If the dependency is an archive, such as a WAR or EAR, the contents are extracted, scanned,
* and added to the list of dependencies within the engine.
*
* @param dependency the dependency to analyze
* @param engine the engine scanning
* @throws AnalysisException thrown if there is an analysis exception
*/
protected abstract void analyzeFileType(Dependency dependency, Engine engine) throws AnalysisException;
/**
* <p>
* Returns the setting key to determine if the analyzer is enabled.</p>
*
* @return the key for the analyzer's enabled property
*/
protected abstract String getAnalyzerEnabledSettingKey();
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Final implementations for the Analyzer interface">
/**
* Initializes the analyzer.
*
* @throws Exception thrown if there is an exception during initialization
*/
@Override
public final void initialize() throws Exception {
if (filesMatched) {
initializeFileTypeAnalyzer();
} else {
enabled = false;
}
}
/**
* Resets the enabled flag on the analyzer.
*/
@Override
public final void reset() {
final String key = getAnalyzerEnabledSettingKey();
try {
enabled = Settings.getBoolean(key, true);
} catch (InvalidSettingException ex) {
LOGGER.warn("Invalid setting for property '{}'", key);
LOGGER.debug("", ex);
LOGGER.warn("{} has been disabled", getName());
}
}
/**
* Analyzes a given dependency. If the dependency is an archive, such as a WAR or EAR, the contents are extracted, scanned,
* and added to the list of dependencies within the engine.
*
* @param dependency the dependency to analyze
* @param engine the engine scanning
* @throws AnalysisException thrown if there is an analysis exception
*/
@Override
public final void analyze(Dependency dependency, Engine engine) throws AnalysisException {
if (enabled) {
analyzeFileType(dependency, engine);
}
}
@Override
public boolean accept(File pathname) {
final FileFilter filter = getFileFilter();
boolean accepted = false;
if (null == filter) {
LOGGER.error("The '{}' analyzer is misconfigured and does not have a file filter; it will be disabled", getName());
} else if (enabled) {
accepted = filter.accept(pathname);
if (accepted) {
filesMatched = true;
}
}
return accepted;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Static utility methods">
/**
* <p>
* Utility method to help in the creation of the extensions set. This constructs a new Set that can be used in a final static
* declaration.</p>
* <p>
* This implementation was copied from
* http://stackoverflow.com/questions/2041778/initialize-java-hashset-values-by-construction</p>
*
* @param strings a list of strings to add to the set.
* @return a Set of strings.
*/
protected static Set<String> newHashSet(String... strings) {
final Set<String> set = new HashSet<String>(strings.length);
Collections.addAll(set, strings);
return set;
}
//</editor-fold>
}

View File

@@ -0,0 +1,177 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
import org.owasp.dependencycheck.suppression.SuppressionParseException;
import org.owasp.dependencycheck.suppression.SuppressionParser;
import org.owasp.dependencycheck.suppression.SuppressionRule;
import org.owasp.dependencycheck.utils.DownloadFailedException;
import org.owasp.dependencycheck.utils.Downloader;
import org.owasp.dependencycheck.utils.FileUtils;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Abstract base suppression analyzer that contains methods for parsing the suppression xml file.
*
* @author Jeremy Long
*/
public abstract class AbstractSuppressionAnalyzer extends AbstractAnalyzer {
/**
* The Logger for use throughout the class
*/
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractSuppressionAnalyzer.class);
//<editor-fold defaultstate="collapsed" desc="All standard implementation details of Analyzer">
/**
* Returns a list of file EXTENSIONS supported by this analyzer.
*
* @return a list of file EXTENSIONS supported by this analyzer.
*/
public Set<String> getSupportedExtensions() {
return null;
}
//</editor-fold>
/**
* The initialize method loads the suppression XML file.
*
* @throws Exception thrown if there is an exception
*/
@Override
public void initialize() throws Exception {
super.initialize();
loadSuppressionData();
}
/**
* The list of suppression rules
*/
private List<SuppressionRule> rules;
/**
* Get the value of rules.
*
* @return the value of rules
*/
public List<SuppressionRule> getRules() {
return rules;
}
/**
* Set the value of rules.
*
* @param rules new value of rules
*/
public void setRules(List<SuppressionRule> rules) {
this.rules = rules;
}
/**
* Loads the suppression rules file.
*
* @throws SuppressionParseException thrown if the XML cannot be parsed.
*/
private void loadSuppressionData() throws SuppressionParseException {
final SuppressionParser parser = new SuppressionParser();
File file = null;
try {
rules = parser.parseSuppressionRules(this.getClass().getClassLoader().getResourceAsStream("dependencycheck-base-suppression.xml"));
} catch (SuppressionParseException ex) {
LOGGER.debug("Unable to parse the base suppression data file", ex);
}
final String suppressionFilePath = Settings.getString(Settings.KEYS.SUPPRESSION_FILE);
if (suppressionFilePath == null) {
return;
}
boolean deleteTempFile = false;
try {
final Pattern uriRx = Pattern.compile("^(https?|file)\\:.*", Pattern.CASE_INSENSITIVE);
if (uriRx.matcher(suppressionFilePath).matches()) {
deleteTempFile = true;
file = FileUtils.getTempFile("suppression", "xml");
final URL url = new URL(suppressionFilePath);
try {
Downloader.fetchFile(url, file, false);
} catch (DownloadFailedException ex) {
Downloader.fetchFile(url, file, true);
}
} else {
file = new File(suppressionFilePath);
if (!file.exists()) {
final InputStream suppressionsFromClasspath = this.getClass().getClassLoader().getResourceAsStream(suppressionFilePath);
if (suppressionsFromClasspath != null) {
deleteTempFile = true;
file = FileUtils.getTempFile("suppression", "xml");
try {
org.apache.commons.io.FileUtils.copyInputStreamToFile(suppressionsFromClasspath, file);
} catch (IOException ex) {
throwSuppressionParseException("Unable to locate suppressions file in classpath", ex);
}
}
}
}
if (file != null) {
try {
//rules = parser.parseSuppressionRules(file);
rules.addAll(parser.parseSuppressionRules(file));
LOGGER.debug("{} suppression rules were loaded.", rules.size());
} catch (SuppressionParseException ex) {
LOGGER.warn("Unable to parse suppression xml file '{}'", file.getPath());
LOGGER.warn(ex.getMessage());
LOGGER.debug("", ex);
throw ex;
}
}
} catch (DownloadFailedException ex) {
throwSuppressionParseException("Unable to fetch the configured suppression file", ex);
} catch (MalformedURLException ex) {
throwSuppressionParseException("Configured suppression file has an invalid URL", ex);
} catch (IOException ex) {
throwSuppressionParseException("Unable to create temp file for suppressions", ex);
} finally {
if (deleteTempFile && file != null) {
FileUtils.delete(file);
}
}
}
/**
* Utility method to throw parse exceptions.
*
* @param message the exception message
* @param exception the cause of the exception
* @throws SuppressionParseException throws the generated SuppressionParseException
*/
private void throwSuppressionParseException(String message, Exception exception) throws SuppressionParseException {
LOGGER.warn(message);
LOGGER.debug("", exception);
throw new SuppressionParseException(message, exception);
}
}

View File

@@ -1,18 +1,17 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
@@ -21,7 +20,7 @@ package org.owasp.dependencycheck.analyzer;
/**
* An enumeration defining the phases of analysis.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public enum AnalysisPhase {
@@ -29,6 +28,10 @@ public enum AnalysisPhase {
* Initialization phase.
*/
INITIAL,
/**
* Pre information collection phase.
*/
PRE_INFORMATION_COLLECTION,
/**
* Information collection phase.
*/

View File

@@ -1,65 +1,46 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.util.Set;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Dependency;
/**
* An interface that defines an Analyzer that is used to identify Dependencies.
* An analyzer will collect information about the dependency in the form of
* Evidence.
* An interface that defines an Analyzer that is used to identify Dependencies. An analyzer will collect information
* about the dependency in the form of Evidence.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public interface Analyzer {
/**
* Analyzes the given dependency. The analysis could be anything from
* identifying an Identifier for the dependency, to finding vulnerabilities,
* etc. Additionally, if the analyzer collects enough information to add a
* description or license information for the dependency it should be added.
* Analyzes the given dependency. The analysis could be anything from identifying an Identifier for the dependency,
* to finding vulnerabilities, etc. Additionally, if the analyzer collects enough information to add a description
* or license information for the dependency it should be added.
*
* @param dependency a dependency to analyze.
* @param engine the engine that is scanning the dependencies - this is
* useful if we need to check other dependencies
* @throws AnalysisException is thrown if there is an error analyzing the
* dependency file
* @param engine the engine that is scanning the dependencies - this is useful if we need to check other
* dependencies
* @throws AnalysisException is thrown if there is an error analyzing the dependency file
*/
void analyze(Dependency dependency, Engine engine) throws AnalysisException;
/**
* <p>Returns a list of supported file extensions. An example would be an
* analyzer that inspected java jar files. The getSupportedExtensions
* function would return a set with a single element "jar".</p>
*
* <p><b>Note:</b> when implementing this the extensions returned MUST be
* lowercase.</p>
*
* @return The file extensions supported by this analyzer.
*
* <p>If the analyzer returns null it will not cause additional files to be
* analyzed but will be executed against every file loaded</p>
*/
Set<String> getSupportedExtensions();
/**
* Returns the name of the analyzer.
*
@@ -67,15 +48,6 @@ public interface Analyzer {
*/
String getName();
/**
* Returns whether or not this analyzer can process the given extension.
*
* @param extension the file extension to test for support.
* @return whether or not the specified file extension is supported by this
* analyzer.
*/
boolean supportsExtension(String extension);
/**
* Returns the phase that the analyzer is intended to run in.
*
@@ -84,17 +56,14 @@ public interface Analyzer {
AnalysisPhase getAnalysisPhase();
/**
* The initialize method is called (once) prior to the analyze method being
* called on all of the dependencies.
* The initialize method is called (once) prior to the analyze method being called on all of the dependencies.
*
* @throws Exception is thrown if an exception occurs initializing the
* analyzer.
* @throws Exception is thrown if an exception occurs initializing the analyzer.
*/
void initialize() throws Exception;
/**
* The close method is called after all of the dependencies have been
* analyzed.
* The close method is called after all of the dependencies have been analyzed.
*
* @throws Exception is thrown if an exception occurs closing the analyzer.
*/

View File

@@ -1,18 +1,17 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
@@ -22,15 +21,13 @@ import java.util.Iterator;
import java.util.ServiceLoader;
/**
* The Analyzer Service Loader. This class loads all services that implement
* org.owasp.dependencycheck.analyzer.Analyzer.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public final class AnalyzerService {
public class AnalyzerService {
/**
* The analyzer service singleton.
*/
private static AnalyzerService service;
/**
* The service loader for analyzers.
*/
@@ -38,21 +35,11 @@ public final class AnalyzerService {
/**
* Creates a new instance of AnalyzerService.
*/
private AnalyzerService() {
loader = ServiceLoader.load(Analyzer.class);
}
/**
* Retrieve the singleton instance of AnalyzerService.
*
* @return a singleton AnalyzerService.
* @param classLoader the ClassLoader to use when dynamically loading Analyzer and Update services
*/
public static synchronized AnalyzerService getInstance() {
if (service == null) {
service = new AnalyzerService();
}
return service;
public AnalyzerService(ClassLoader classLoader) {
loader = ServiceLoader.load(Analyzer.class, classLoader);
}
/**

View File

@@ -1,64 +1,76 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.Closeable;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipFile;
import org.apache.commons.compress.compressors.CompressorInputStream;
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
import org.apache.commons.compress.compressors.bzip2.BZip2Utils;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import org.apache.commons.compress.compressors.gzip.GzipUtils;
import org.h2.store.fs.FileUtils;
import org.apache.commons.compress.utils.IOUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.analyzer.exception.ArchiveExtractionException;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.FileUtils;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <p>An analyzer that extracts files from archives and ensures any supported
* files contained within the archive are added to the dependency list.</p>
* <p>
* An analyzer that extracts files from archives and ensures any supported files contained within the archive are added to the
* dependency list.</p>
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class ArchiveAnalyzer extends AbstractAnalyzer implements Analyzer {
public class ArchiveAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The buffer size to use when extracting files from the archive.
* The logger.
*/
private static final int BUFFER_SIZE = 4096;
private static final Logger LOGGER = LoggerFactory.getLogger(ArchiveAnalyzer.class);
/**
* The count of directories created during analysis. This is used for
* creating temporary directories.
* The count of directories created during analysis. This is used for creating temporary directories.
*/
private static int dirCount = 0;
/**
@@ -66,15 +78,15 @@ public class ArchiveAnalyzer extends AbstractAnalyzer implements Analyzer {
*/
private File tempFileLocation = null;
/**
* The max scan depth that the analyzer will recursively extract nested
* archives.
* The max scan depth that the analyzer will recursively extract nested archives.
*/
private static final int MAX_SCAN_DEPTH = Settings.getInt("archive.scan.depth", 3);
/**
* Tracks the current scan/extraction depth for nested archives.
*/
private int scanDepth = 0;
//<editor-fold defaultstate="collapsed" desc="All standard implmentation details of Analyzer">
//<editor-fold defaultstate="collapsed" desc="All standard implementation details of Analyzer">
/**
* The name of the analyzer.
*/
@@ -84,64 +96,84 @@ public class ArchiveAnalyzer extends AbstractAnalyzer implements Analyzer {
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INITIAL;
/**
* The set of file extensions supported by this analyzer.
* The set of things we can handle with Zip methods
*/
private static final Set<String> EXTENSIONS = newHashSet("zip", "ear", "war", "tar", "gz", "tgz");
private static final Set<String> ZIPPABLES = newHashSet("zip", "ear", "war", "jar", "sar", "apk", "nupkg");
/**
* The set of file extensions supported by this analyzer. Note for developers, any additions to this list will need to be
* explicitly handled in {@link #extractFiles(File, File, Engine)}.
*/
private static final Set<String> EXTENSIONS = newHashSet("tar", "gz", "tgz", "bz2", "tbz2");
/**
* Returns a list of file EXTENSIONS supported by this analyzer.
*
* @return a list of file EXTENSIONS supported by this analyzer.
* Detects files with extensions to remove from the engine's collection of dependencies.
*/
public Set<String> getSupportedExtensions() {
return EXTENSIONS;
private static final FileFilter REMOVE_FROM_ANALYSIS = FileFilterBuilder.newInstance().addExtensions("zip", "tar", "gz", "tgz", "bz2", "tbz2")
.build();
static {
final String additionalZipExt = Settings.getString(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS);
if (additionalZipExt != null) {
final String[] ext = additionalZipExt.split("\\s*,\\s*");
Collections.addAll(ZIPPABLES, ext);
}
EXTENSIONS.addAll(ZIPPABLES);
}
/**
* The file filter used to filter supported files.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addExtensions(EXTENSIONS).build();
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* Detects files with .zip extension.
*/
private static final FileFilter ZIP_FILTER = FileFilterBuilder.newInstance().addExtensions("zip").build();
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns whether or not this analyzer can process the given extension.
*
* @param extension the file extension to test for support.
* @return whether or not the specified file extension is supported by this
* analyzer.
*/
public boolean supportsExtension(String extension) {
return EXTENSIONS.contains(extension);
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
//</editor-fold>
/**
* The initialize method does nothing for this Analyzer.
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @throws Exception is thrown if there is an exception deleting or creating
* temporary files
* @return the analyzer's enabled property setting key
*/
@Override
public void initialize() throws Exception {
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_ARCHIVE_ENABLED;
}
/**
* The initialize method does nothing for this Analyzer.
*
* @throws Exception is thrown if there is an exception deleting or creating temporary files
*/
@Override
public void initializeFileTypeAnalyzer() throws Exception {
final File baseDir = Settings.getTempDirectory();
if (!baseDir.exists()) {
if (!baseDir.mkdirs()) {
final String msg = String.format("Unable to make a temporary folder '%s'", baseDir.getPath());
throw new AnalysisException(msg);
}
}
tempFileLocation = File.createTempFile("check", "tmp", baseDir);
if (!tempFileLocation.delete()) {
final String msg = String.format("Unable to delete temporary file '%s'.", tempFileLocation.getAbsolutePath());
@@ -154,68 +186,129 @@ public class ArchiveAnalyzer extends AbstractAnalyzer implements Analyzer {
}
/**
* The close method does nothing for this Analyzer.
* The close method deletes any temporary files and directories created during analysis.
*
* @throws Exception thrown if there is an exception deleting temporary
* files
* @throws Exception thrown if there is an exception deleting temporary files
*/
@Override
public void close() throws Exception {
if (tempFileLocation != null && tempFileLocation.exists()) {
FileUtils.deleteRecursive(tempFileLocation.getAbsolutePath(), true);
LOGGER.debug("Attempting to delete temporary files");
final boolean success = FileUtils.delete(tempFileLocation);
if (!success && tempFileLocation.exists()) {
final String[] l = tempFileLocation.list();
if (l != null && l.length > 0) {
LOGGER.warn("Failed to delete some temporary files, see the log for more details");
}
}
}
}
/**
* Analyzes a given dependency. If the dependency is an archive, such as a
* WAR or EAR, the contents are extracted, scanned, and added to the list of
* dependencies within the engine.
* Analyzes a given dependency. If the dependency is an archive, such as a WAR or EAR, the contents are extracted, scanned,
* and added to the list of dependencies within the engine.
*
* @param dependency the dependency to analyze
* @param engine the engine scanning
* @throws AnalysisException thrown if there is an analysis exception
*/
@Override
public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
public void analyzeFileType(Dependency dependency, Engine engine) throws AnalysisException {
final File f = new File(dependency.getActualFilePath());
final File tmpDir = getNextTempDirectory();
extractFiles(f, tmpDir, engine);
//make a copy
final List<Dependency> dependencies = new ArrayList<Dependency>(engine.getDependencies());
engine.scan(tmpDir);
final List<Dependency> newDependencies = engine.getDependencies();
if (dependencies.size() != newDependencies.size()) {
//get the new dependencies
final Set<Dependency> dependencySet = new HashSet<Dependency>();
dependencySet.addAll(newDependencies);
dependencySet.removeAll(dependencies);
final Set<Dependency> dependencySet = findMoreDependencies(engine, tmpDir);
if (!dependencySet.isEmpty()) {
for (Dependency d : dependencySet) {
//fix the dependency's display name and path
final String displayPath = String.format("%s%s",
dependency.getFilePath(),
d.getActualFilePath().substring(tmpDir.getAbsolutePath().length()));
final String displayName = String.format("%s%s%s",
final String displayName = String.format("%s: %s",
dependency.getFileName(),
File.separator,
d.getFileName());
d.setFilePath(displayPath);
d.setFileName(displayName);
//TODO - can we get more evidence from the parent? EAR contains module name, etc.
//analyze the dependency (i.e. extract files) if it is a supported type.
if (this.supportsExtension(d.getFileExtension()) && scanDepth < MAX_SCAN_DEPTH) {
if (this.accept(d.getActualFile()) && scanDepth < MAX_SCAN_DEPTH) {
scanDepth += 1;
analyze(d, engine);
scanDepth -= 1;
}
}
}
if (REMOVE_FROM_ANALYSIS.accept(dependency.getActualFile())) {
addDisguisedJarsToDependencies(dependency, engine);
engine.getDependencies().remove(dependency);
}
Collections.sort(engine.getDependencies());
}
/**
* If a zip file was identified as a possible JAR, this method will add the zip to the list of dependencies.
*
* @param dependency the zip file
* @param engine the engine
* @throws AnalysisException thrown if there is an issue
*/
private void addDisguisedJarsToDependencies(Dependency dependency, Engine engine) throws AnalysisException {
if (ZIP_FILTER.accept(dependency.getActualFile()) && isZipFileActuallyJarFile(dependency)) {
final File tdir = getNextTempDirectory();
final String fileName = dependency.getFileName();
LOGGER.info("The zip file '{}' appears to be a JAR file, making a copy and analyzing it as a JAR.", fileName);
final File tmpLoc = new File(tdir, fileName.substring(0, fileName.length() - 3) + "jar");
try {
org.apache.commons.io.FileUtils.copyFile(tdir, tmpLoc);
final Set<Dependency> dependencySet = findMoreDependencies(engine, tmpLoc);
if (!dependencySet.isEmpty()) {
if (dependencySet.size() != 1) {
LOGGER.info("Deep copy of ZIP to JAR file resulted in more than one dependency?");
}
for (Dependency d : dependencySet) {
//fix the dependency's display name and path
d.setFilePath(dependency.getFilePath());
d.setDisplayFileName(dependency.getFileName());
}
}
} catch (IOException ex) {
LOGGER.debug("Unable to perform deep copy on '{}'", dependency.getActualFile().getPath(), ex);
}
}
}
/**
* An empty dependency set.
*/
private static final Set<Dependency> EMPTY_DEPENDENCY_SET = Collections.emptySet();
/**
* Scan the given file/folder, and return any new dependencies found.
*
* @param engine used to scan
* @param file target of scanning
* @return any dependencies that weren't known to the engine before
*/
private static Set<Dependency> findMoreDependencies(Engine engine, File file) {
final List<Dependency> before = new ArrayList<Dependency>(engine.getDependencies());
engine.scan(file);
final List<Dependency> after = engine.getDependencies();
final boolean sizeChanged = before.size() != after.size();
final Set<Dependency> newDependencies;
if (sizeChanged) {
//get the new dependencies
newDependencies = new HashSet<Dependency>(after);
newDependencies.removeAll(before);
} else {
newDependencies = EMPTY_DEPENDENCY_SET;
}
return newDependencies;
}
/**
* Retrieves the next temporary directory to extract an archive too.
*
@@ -245,43 +338,41 @@ public class ArchiveAnalyzer extends AbstractAnalyzer implements Analyzer {
* @throws AnalysisException thrown if the archive is not found
*/
private void extractFiles(File archive, File destination, Engine engine) throws AnalysisException {
if (archive == null || destination == null) {
return;
}
FileInputStream fis = null;
try {
fis = new FileInputStream(archive);
} catch (FileNotFoundException ex) {
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.INFO, null, ex);
throw new AnalysisException("Archive file was not found.", ex);
}
final String archiveExt = org.owasp.dependencycheck.utils.FileUtils.getFileExtension(archive.getName()).toLowerCase();
try {
if ("zip".equals(archiveExt) || "war".equals(archiveExt) || "ear".equals(archiveExt)) {
extractArchive(new ZipArchiveInputStream(new BufferedInputStream(fis)), destination, engine);
} else if ("tar".equals(archiveExt)) {
extractArchive(new TarArchiveInputStream(new BufferedInputStream(fis)), destination, engine);
} else if ("gz".equals(archiveExt) || "tgz".equals(archiveExt)) {
final String uncompressedName = GzipUtils.getUncompressedFilename(archive.getName());
final String uncompressedExt = org.owasp.dependencycheck.utils.FileUtils.getFileExtension(uncompressedName).toLowerCase();
if (engine.supportsExtension(uncompressedExt)) {
decompressFile(new GzipCompressorInputStream(new BufferedInputStream(fis)), new File(destination, uncompressedName));
}
}
} catch (ArchiveExtractionException ex) {
final String msg = String.format("Exception extracting archive '%s'.", archive.getName());
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.WARNING, msg);
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.FINE, null, ex);
} catch (IOException ex) {
final String msg = String.format("Exception reading archive '%s'.", archive.getName());
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.WARNING, msg);
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.FINE, null, ex);
} finally {
if (archive != null && destination != null) {
FileInputStream fis;
try {
fis.close();
fis = new FileInputStream(archive);
} catch (FileNotFoundException ex) {
LOGGER.debug("", ex);
throw new AnalysisException("Archive file was not found.", ex);
}
final String archiveExt = FileUtils.getFileExtension(archive.getName()).toLowerCase();
try {
if (ZIPPABLES.contains(archiveExt)) {
extractArchive(new ZipArchiveInputStream(new BufferedInputStream(fis)), destination, engine);
} else if ("tar".equals(archiveExt)) {
extractArchive(new TarArchiveInputStream(new BufferedInputStream(fis)), destination, engine);
} else if ("gz".equals(archiveExt) || "tgz".equals(archiveExt)) {
final String uncompressedName = GzipUtils.getUncompressedFilename(archive.getName());
final File f = new File(destination, uncompressedName);
if (engine.accept(f)) {
decompressFile(new GzipCompressorInputStream(new BufferedInputStream(fis)), f);
}
} else if ("bz2".equals(archiveExt) || "tbz2".equals(archiveExt)) {
final String uncompressedName = BZip2Utils.getUncompressedFilename(archive.getName());
final File f = new File(destination, uncompressedName);
if (engine.accept(f)) {
decompressFile(new BZip2CompressorInputStream(new BufferedInputStream(fis)), f);
}
}
} catch (ArchiveExtractionException ex) {
LOGGER.warn("Exception extracting archive '{}'.", archive.getName());
LOGGER.debug("", ex);
} catch (IOException ex) {
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.FINEST, null, ex);
LOGGER.warn("Exception reading archive '{}'.", archive.getName());
LOGGER.debug("", ex);
} finally {
close(fis);
}
}
}
@@ -292,71 +383,57 @@ public class ArchiveAnalyzer extends AbstractAnalyzer implements Analyzer {
* @param input the archive to extract files from
* @param destination the location to write the files too
* @param engine the dependency-check engine
* @throws ArchiveExtractionException thrown if there is an exception
* extracting files from the archive
* @throws ArchiveExtractionException thrown if there is an exception extracting files from the archive
*/
private void extractArchive(ArchiveInputStream input, File destination, Engine engine) throws ArchiveExtractionException {
ArchiveEntry entry;
try {
while ((entry = input.getNextEntry()) != null) {
final File file = new File(destination, entry.getName());
if (entry.isDirectory()) {
final File d = new File(destination, entry.getName());
if (!d.exists()) {
if (!d.mkdirs()) {
final String msg = String.format("Unable to create '%s'.", d.getAbsolutePath());
throw new AnalysisException(msg);
}
}
} else {
final File file = new File(destination, entry.getName());
final String ext = org.owasp.dependencycheck.utils.FileUtils.getFileExtension(file.getName());
if (engine.supportsExtension(ext)) {
BufferedOutputStream bos = null;
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos, BUFFER_SIZE);
int count;
final byte data[] = new byte[BUFFER_SIZE];
while ((count = input.read(data, 0, BUFFER_SIZE)) != -1) {
bos.write(data, 0, count);
}
bos.flush();
} catch (FileNotFoundException ex) {
Logger.getLogger(ArchiveAnalyzer.class
.getName()).log(Level.FINE, null, ex);
final String msg = String.format("Unable to find file '%s'.", file.getName());
throw new AnalysisException(msg, ex);
} catch (IOException ex) {
Logger.getLogger(ArchiveAnalyzer.class
.getName()).log(Level.FINE, null, ex);
final String msg = String.format("IO Exception while parsing file '%s'.", file.getName());
throw new AnalysisException(msg, ex);
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException ex) {
Logger.getLogger(ArchiveAnalyzer.class
.getName()).log(Level.FINEST, null, ex);
}
}
}
if (!file.exists() && !file.mkdirs()) {
final String msg = String.format("Unable to create directory '%s'.", file.getAbsolutePath());
throw new AnalysisException(msg);
}
} else if (engine.accept(file)) {
extractAcceptedFile(input, file);
}
}
} catch (IOException ex) {
throw new ArchiveExtractionException(ex);
} catch (Throwable ex) {
throw new ArchiveExtractionException(ex);
} finally {
if (input != null) {
try {
input.close();
} catch (IOException ex) {
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.FINEST, null, ex);
}
close(input);
}
}
/**
* Extracts a file from an archive.
*
* @param input the archives input stream
* @param file the file to extract
* @throws AnalysisException thrown if there is an error
*/
private static void extractAcceptedFile(ArchiveInputStream input, File file) throws AnalysisException {
LOGGER.debug("Extracting '{}'", file.getPath());
FileOutputStream fos = null;
try {
final File parent = file.getParentFile();
if (!parent.isDirectory() && !parent.mkdirs()) {
final String msg = String.format("Unable to build directory '%s'.", parent.getAbsolutePath());
throw new AnalysisException(msg);
}
fos = new FileOutputStream(file);
IOUtils.copy(input, fos);
} catch (FileNotFoundException ex) {
LOGGER.debug("", ex);
final String msg = String.format("Unable to find file '%s'.", file.getName());
throw new AnalysisException(msg, ex);
} catch (IOException ex) {
LOGGER.debug("", ex);
final String msg = String.format("IO Exception while parsing file '%s'.", file.getName());
throw new AnalysisException(msg, ex);
} finally {
close(fos);
}
}
@@ -365,32 +442,71 @@ public class ArchiveAnalyzer extends AbstractAnalyzer implements Analyzer {
*
* @param inputStream the compressed file
* @param outputFile the location to write the decompressed file
* @throws ArchiveExtractionException thrown if there is an exception
* decompressing the file
* @throws ArchiveExtractionException thrown if there is an exception decompressing the file
*/
private void decompressFile(CompressorInputStream inputStream, File outputFile) throws ArchiveExtractionException {
LOGGER.debug("Decompressing '{}'", outputFile.getPath());
FileOutputStream out = null;
try {
out = new FileOutputStream(outputFile);
final byte[] buffer = new byte[BUFFER_SIZE];
int n = 0;
while (-1 != (n = inputStream.read(buffer))) {
out.write(buffer, 0, n);
}
IOUtils.copy(inputStream, out);
} catch (FileNotFoundException ex) {
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.FINE, null, ex);
LOGGER.debug("", ex);
throw new ArchiveExtractionException(ex);
} catch (IOException ex) {
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.FINE, null, ex);
LOGGER.debug("", ex);
throw new ArchiveExtractionException(ex);
} finally {
if (out != null) {
try {
out.close();
} catch (IOException ex) {
Logger.getLogger(ArchiveAnalyzer.class.getName()).log(Level.FINEST, null, ex);
}
close(out);
}
}
/**
* Close the given {@link Closeable} instance, ignoring nulls, and logging any thrown {@link IOException}.
*
* @param closeable to be closed
*/
private static void close(Closeable closeable) {
if (null != closeable) {
try {
closeable.close();
} catch (IOException ex) {
LOGGER.trace("", ex);
}
}
}
/**
* Attempts to determine if a zip file is actually a JAR file.
*
* @param dependency the dependency to check
* @return true if the dependency appears to be a JAR file; otherwise false
*/
private boolean isZipFileActuallyJarFile(Dependency dependency) {
boolean isJar = false;
ZipFile zip = null;
try {
zip = new ZipFile(dependency.getActualFilePath());
if (zip.getEntry("META-INF/MANIFEST.MF") != null
|| zip.getEntry("META-INF/maven") != null) {
final Enumeration<ZipArchiveEntry> entries = zip.getEntries();
while (entries.hasMoreElements()) {
final ZipArchiveEntry entry = entries.nextElement();
if (!entry.isDirectory()) {
final String name = entry.getName().toLowerCase();
if (name.endsWith(".class")) {
isJar = true;
break;
}
}
}
}
} catch (IOException ex) {
LOGGER.debug("Unable to unzip zip file '{}'", dependency.getFilePath(), ex);
} finally {
ZipFile.closeQuietly(zip);
}
return isJar;
}
}

View File

@@ -1,67 +0,0 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
/**
* An exception thrown when the analysis of a dependency fails.
*
* @author Jeremy Long (jeremy.long@owasp.org)
*/
public class ArchiveExtractionException extends Exception {
/**
* The serial version UID for serialization.
*/
private static final long serialVersionUID = 1L;
/**
* Creates a new AnalysisException.
*/
public ArchiveExtractionException() {
super();
}
/**
* Creates a new AnalysisException.
*
* @param msg a message for the exception.
*/
public ArchiveExtractionException(String msg) {
super(msg);
}
/**
* Creates a new AnalysisException.
*
* @param ex the cause of the failure.
*/
public ArchiveExtractionException(Throwable ex) {
super(ex);
}
/**
* Creates a new DownloadFailedException.
*
* @param msg a message for the exception.
* @param ex the cause of the failure.
*/
public ArchiveExtractionException(String msg, Throwable ex) {
super(msg, ex);
}
}

View File

@@ -0,0 +1,307 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.io.File;
import java.io.FileFilter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.output.NullOutputStream;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Evidence;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import java.util.ArrayList;
import java.util.List;
/**
* Analyzer for getting company, product, and version information from a .NET assembly.
*
* @author colezlaw
*
*/
public class AssemblyAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The analyzer name
*/
private static final String ANALYZER_NAME = "Assembly Analyzer";
/**
* The analysis phase
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The list of supported extensions
*/
private static final String[] SUPPORTED_EXTENSIONS = {"dll", "exe"};
/**
* The temp value for GrokAssembly.exe
*/
private File grokAssemblyExe = null;
/**
* The DocumentBuilder for parsing the XML
*/
private DocumentBuilder builder;
/**
* Logger
*/
private static final Logger LOGGER = LoggerFactory.getLogger(AssemblyAnalyzer.class);
/**
* Builds the beginnings of a List for ProcessBuilder
*
* @return the list of arguments to begin populating the ProcessBuilder
*/
private List<String> buildArgumentList() {
// Use file.separator as a wild guess as to whether this is Windows
final List<String> args = new ArrayList<String>();
if (!"\\".equals(System.getProperty("file.separator"))) {
if (Settings.getString(Settings.KEYS.ANALYZER_ASSEMBLY_MONO_PATH) != null) {
args.add(Settings.getString(Settings.KEYS.ANALYZER_ASSEMBLY_MONO_PATH));
} else {
args.add("mono");
}
}
args.add(grokAssemblyExe.getPath());
return args;
}
/**
* Performs the analysis on a single Dependency.
*
* @param dependency the dependency to analyze
* @param engine the engine to perform the analysis under
* @throws AnalysisException if anything goes sideways
*/
@Override
public void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
if (grokAssemblyExe == null) {
LOGGER.warn("GrokAssembly didn't get deployed");
return;
}
final List<String> args = buildArgumentList();
args.add(dependency.getActualFilePath());
final ProcessBuilder pb = new ProcessBuilder(args);
Document doc = null;
try {
final Process proc = pb.start();
doc = builder.parse(proc.getInputStream());
// Try evacuating the error stream
final String errorStream = IOUtils.toString(proc.getErrorStream(), "UTF-8");
if (null != errorStream && !errorStream.isEmpty()) {
LOGGER.warn("Error from GrokAssembly: {}", errorStream);
}
int rc = 0;
try {
rc = proc.waitFor();
} catch (InterruptedException ie) {
return;
}
if (rc == 3) {
LOGGER.debug("{} is not a .NET assembly or executable and as such cannot be analyzed by dependency-check",
dependency.getActualFilePath());
return;
} else if (rc != 0) {
LOGGER.warn("Return code {} from GrokAssembly", rc);
}
final XPath xpath = XPathFactory.newInstance().newXPath();
// First, see if there was an error
final String error = xpath.evaluate("/assembly/error", doc);
if (error != null && !error.isEmpty()) {
throw new AnalysisException(error);
}
final String version = xpath.evaluate("/assembly/version", doc);
if (version != null) {
dependency.getVersionEvidence().addEvidence(new Evidence("grokassembly", "version",
version, Confidence.HIGHEST));
}
final String vendor = xpath.evaluate("/assembly/company", doc);
if (vendor != null) {
dependency.getVendorEvidence().addEvidence(new Evidence("grokassembly", "vendor",
vendor, Confidence.HIGH));
}
final String product = xpath.evaluate("/assembly/product", doc);
if (product != null) {
dependency.getProductEvidence().addEvidence(new Evidence("grokassembly", "product",
product, Confidence.HIGH));
}
} catch (IOException ioe) {
throw new AnalysisException(ioe);
} catch (SAXException saxe) {
throw new AnalysisException("Couldn't parse GrokAssembly result", saxe);
} catch (XPathExpressionException xpe) {
// This shouldn't happen
throw new AnalysisException(xpe);
}
}
/**
* Initialize the analyzer. In this case, extract GrokAssembly.exe to a temporary location.
*
* @throws Exception if anything goes wrong
*/
@Override
public void initializeFileTypeAnalyzer() throws Exception {
final File tempFile = File.createTempFile("GKA", ".exe", Settings.getTempDirectory());
FileOutputStream fos = null;
InputStream is = null;
try {
fos = new FileOutputStream(tempFile);
is = AssemblyAnalyzer.class.getClassLoader().getResourceAsStream("GrokAssembly.exe");
IOUtils.copy(is, fos);
grokAssemblyExe = tempFile;
// Set the temp file to get deleted when we're done
grokAssemblyExe.deleteOnExit();
LOGGER.debug("Extracted GrokAssembly.exe to {}", grokAssemblyExe.getPath());
} catch (IOException ioe) {
this.setEnabled(false);
LOGGER.warn("Could not extract GrokAssembly.exe: {}", ioe.getMessage());
throw new AnalysisException("Could not extract GrokAssembly.exe", ioe);
} finally {
if (fos != null) {
try {
fos.close();
} catch (Throwable e) {
LOGGER.debug("Error closing output stream");
}
}
if (is != null) {
try {
is.close();
} catch (Throwable e) {
LOGGER.debug("Error closing input stream");
}
}
}
// Now, need to see if GrokAssembly actually runs from this location.
final List<String> args = buildArgumentList();
try {
final ProcessBuilder pb = new ProcessBuilder(args);
final Process p = pb.start();
// Try evacuating the error stream
IOUtils.copy(p.getErrorStream(), NullOutputStream.NULL_OUTPUT_STREAM);
final Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(p.getInputStream());
final XPath xpath = XPathFactory.newInstance().newXPath();
final String error = xpath.evaluate("/assembly/error", doc);
if (p.waitFor() != 1 || error == null || error.isEmpty()) {
LOGGER.warn("An error occurred with the .NET AssemblyAnalyzer, please see the log for more details.");
LOGGER.debug("GrokAssembly.exe is not working properly");
grokAssemblyExe = null;
this.setEnabled(false);
throw new AnalysisException("Could not execute .NET AssemblyAnalyzer");
}
} catch (AnalysisException e) {
throw e;
} catch (Throwable e) {
LOGGER.warn("An error occurred with the .NET AssemblyAnalyzer;\n"
+ "this can be ignored unless you are scanning .NET DLLs. Please see the log for more details.");
LOGGER.debug("Could not execute GrokAssembly {}", e.getMessage());
this.setEnabled(false);
throw new AnalysisException("An error occurred with the .NET AssemblyAnalyzer", e);
}
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
}
/**
* Removes resources used from the local file system.
*
* @throws Exception thrown if there is a problem closing the analyzer
*/
@Override
public void close() throws Exception {
super.close();
try {
if (grokAssemblyExe != null && !grokAssemblyExe.delete()) {
grokAssemblyExe.deleteOnExit();
}
} catch (SecurityException se) {
LOGGER.debug("Can't delete temporary GrokAssembly.exe");
}
}
/**
* The File Filter used to filter supported extensions.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addExtensions(
SUPPORTED_EXTENSIONS).build();
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* Gets this analyzer's name.
*
* @return the analyzer name
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase this analyzer runs under.
*
* @return the phase this runs under
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED;
}
}

View File

@@ -0,0 +1,279 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Institute for Defense Analyses. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.EvidenceCollection;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import org.owasp.dependencycheck.utils.UrlStringUtils;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Used to analyze Autoconf input files named configure.ac or configure.in. Files simply named "configure" are also analyzed,
* assuming they are generated by Autoconf, and contain certain special package descriptor variables.
*
* @author Dale Visser
* @see <a href="https://www.gnu.org/software/autoconf/">Autoconf - GNU Project - Free Software Foundation (FSF)</a>
*/
public class AutoconfAnalyzer extends AbstractFileTypeAnalyzer {
/**
* Autoconf output filename.
*/
private static final String CONFIGURE = "configure";
/**
* Autoconf input filename.
*/
private static final String CONFIGURE_IN = "configure.in";
/**
* Autoconf input filename.
*/
private static final String CONFIGURE_AC = "configure.ac";
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Autoconf Analyzer";
/**
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The set of file extensions supported by this analyzer.
*/
private static final String[] EXTENSIONS = {"ac", "in"};
/**
* Matches AC_INIT variables in the output configure script.
*/
private static final Pattern PACKAGE_VAR = Pattern.compile(
"PACKAGE_(.+?)='(.*?)'", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
/**
* Matches AC_INIT statement in configure.ac file.
*/
private static final Pattern AC_INIT_PATTERN;
static {
// each instance of param or sep_param has a capture group
final String param = "\\[{0,2}(.+?)\\]{0,2}";
final String sepParam = "\\s*,\\s*" + param;
// Group 1: Package
// Group 2: Version
// Group 3: optional
// Group 4: Bug report address (if it exists)
// Group 5: optional
// Group 6: Tarname (if it exists)
// Group 7: optional
// Group 8: URL (if it exists)
AC_INIT_PATTERN = Pattern.compile(String.format(
"AC_INIT\\(%s%s(%s)?(%s)?(%s)?\\s*\\)", param, sepParam,
sepParam, sepParam, sepParam), Pattern.DOTALL
| Pattern.CASE_INSENSITIVE);
}
/**
* The file filter used to determine which files this analyzer supports.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addFilenames(CONFIGURE).addExtensions(
EXTENSIONS).build();
/**
* Returns the FileFilter
*
* @return the FileFilter
*/
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED;
}
@Override
protected void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
final File actualFile = dependency.getActualFile();
final String name = actualFile.getName();
if (name.startsWith(CONFIGURE)) {
final File parent = actualFile.getParentFile();
final String parentName = parent.getName();
dependency.setDisplayFileName(parentName + "/" + name);
final boolean isOutputScript = CONFIGURE.equals(name);
if (isOutputScript || CONFIGURE_AC.equals(name)
|| CONFIGURE_IN.equals(name)) {
final String contents = getFileContents(actualFile);
if (!contents.isEmpty()) {
if (isOutputScript) {
extractConfigureScriptEvidence(dependency, name,
contents);
} else {
gatherEvidence(dependency, name, contents);
}
}
}
} else {
// copy, alter and set in case some other thread is iterating over
final List<Dependency> dependencies = new ArrayList<Dependency>(
engine.getDependencies());
dependencies.remove(dependency);
engine.setDependencies(dependencies);
}
}
/**
* Extracts evidence from the configuration.
*
* @param dependency the dependency being analyzed
* @param name the name of the source of evidence
* @param contents the contents to analyze for evidence
*/
private void extractConfigureScriptEvidence(Dependency dependency,
final String name, final String contents) {
final Matcher matcher = PACKAGE_VAR.matcher(contents);
while (matcher.find()) {
final String variable = matcher.group(1);
final String value = matcher.group(2);
if (!value.isEmpty()) {
if (variable.endsWith("NAME")) {
dependency.getProductEvidence().addEvidence(name, variable,
value, Confidence.HIGHEST);
} else if ("VERSION".equals(variable)) {
dependency.getVersionEvidence().addEvidence(name, variable,
value, Confidence.HIGHEST);
} else if ("BUGREPORT".equals(variable)) {
dependency.getVendorEvidence().addEvidence(name, variable,
value, Confidence.HIGH);
} else if ("URL".equals(variable)) {
dependency.getVendorEvidence().addEvidence(name, variable,
value, Confidence.HIGH);
}
}
}
}
/**
* Retrieves the contents of a given file.
*
* @param actualFile the file to read
* @return the contents of the file
* @throws AnalysisException thrown if there is an IO Exception
*/
private String getFileContents(final File actualFile)
throws AnalysisException {
String contents = "";
try {
contents = FileUtils.readFileToString(actualFile).trim();
} catch (IOException e) {
throw new AnalysisException(
"Problem occurred while reading dependency file.", e);
}
return contents;
}
/**
* Gathers evidence from a given file
*
* @param dependency the dependency to add evidence to
* @param name the source of the evidence
* @param contents the evidence to analyze
*/
private void gatherEvidence(Dependency dependency, final String name,
String contents) {
final Matcher matcher = AC_INIT_PATTERN.matcher(contents);
if (matcher.find()) {
final EvidenceCollection productEvidence = dependency
.getProductEvidence();
productEvidence.addEvidence(name, "Package", matcher.group(1),
Confidence.HIGHEST);
dependency.getVersionEvidence().addEvidence(name,
"Package Version", matcher.group(2), Confidence.HIGHEST);
final EvidenceCollection vendorEvidence = dependency
.getVendorEvidence();
if (null != matcher.group(3)) {
vendorEvidence.addEvidence(name, "Bug report address",
matcher.group(4), Confidence.HIGH);
}
if (null != matcher.group(5)) {
productEvidence.addEvidence(name, "Tarname", matcher.group(6),
Confidence.HIGH);
}
if (null != matcher.group(7)) {
final String url = matcher.group(8);
if (UrlStringUtils.isUrl(url)) {
vendorEvidence.addEvidence(name, "URL", url,
Confidence.HIGH);
}
}
}
}
/**
* Initializes the file type analyzer.
*
* @throws Exception thrown if there is an exception during initialization
*/
@Override
protected void initializeFileTypeAnalyzer() throws Exception {
// No initialization needed.
}
}

View File

@@ -0,0 +1,237 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Institute for Defense Analyses. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.utils.Checksum;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* <p>
* Used to analyze CMake build files, and collect information that can be used to determine the associated CPE.</p>
* <p>
* Note: This analyzer catches straightforward invocations of the project command, plus some other observed patterns of version
* inclusion in real CMake projects. Many projects make use of older versions of CMake and/or use custom "homebrew" ways to insert
* version information. Hopefully as the newer CMake call pattern grows in usage, this analyzer allow more CPEs to be
* identified.</p>
*
* @author Dale Visser
*/
public class CMakeAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(CMakeAnalyzer.class);
/**
* Used when compiling file scanning regex patterns.
*/
private static final int REGEX_OPTIONS = Pattern.DOTALL
| Pattern.CASE_INSENSITIVE | Pattern.MULTILINE;
/**
* Regex to extract the product information.
*/
private static final Pattern PROJECT = Pattern.compile(
"^ *project *\\([ \\n]*(\\w+)[ \\n]*.*?\\)", REGEX_OPTIONS);
/**
* Regex to extract product and version information.
*
* Group 1: Product
*
* Group 2: Version
*/
private static final Pattern SET_VERSION = Pattern
.compile(
"^ *set\\s*\\(\\s*(\\w+)_version\\s+\"?(\\d+(?:\\.\\d+)+)[\\s\"]?\\)",
REGEX_OPTIONS);
/**
* Detects files that can be analyzed.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addExtensions(".cmake")
.addFilenames("CMakeLists.txt").build();
/**
* A reference to SHA1 message digest.
*/
private static MessageDigest sha1 = null;
static {
try {
sha1 = MessageDigest.getInstance("SHA1");
} catch (NoSuchAlgorithmException e) {
LOGGER.error(e.getMessage());
}
}
/**
* Returns the name of the CMake analyzer.
*
* @return the name of the analyzer
*
*/
@Override
public String getName() {
return "CMake Analyzer";
}
/**
* Tell that we are used for information collection.
*
* @return INFORMATION_COLLECTION
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return AnalysisPhase.INFORMATION_COLLECTION;
}
/**
* Returns the set of supported file extensions.
*
* @return the set of supported file extensions
*/
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* No-op initializer implementation.
*
* @throws Exception never thrown
*/
@Override
protected void initializeFileTypeAnalyzer() throws Exception {
// Nothing to do here.
}
/**
* Analyzes python packages and adds evidence to the dependency.
*
* @param dependency the dependency being analyzed
* @param engine the engine being used to perform the scan
* @throws AnalysisException thrown if there is an unrecoverable error analyzing the dependency
*/
@Override
protected void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
final File file = dependency.getActualFile();
final String parentName = file.getParentFile().getName();
final String name = file.getName();
dependency.setDisplayFileName(String.format("%s%c%s", parentName, File.separatorChar, name));
String contents;
try {
contents = FileUtils.readFileToString(file).trim();
} catch (IOException e) {
throw new AnalysisException(
"Problem occurred while reading dependency file.", e);
}
if (StringUtils.isNotBlank(contents)) {
final Matcher m = PROJECT.matcher(contents);
int count = 0;
while (m.find()) {
count++;
LOGGER.debug(String.format(
"Found project command match with %d groups: %s",
m.groupCount(), m.group(0)));
final String group = m.group(1);
LOGGER.debug("Group 1: " + group);
dependency.getProductEvidence().addEvidence(name, "Project",
group, Confidence.HIGH);
}
LOGGER.debug("Found {} matches.", count);
analyzeSetVersionCommand(dependency, engine, contents);
}
}
/**
* Extracts the version information from the contents. If more then one version is found additional dependencies are added to
* the dependency list.
*
* @param dependency the dependency being analyzed
* @param engine the dependency-check engine
* @param contents the version information
*/
private void analyzeSetVersionCommand(Dependency dependency, Engine engine, String contents) {
Dependency currentDep = dependency;
final Matcher m = SET_VERSION.matcher(contents);
int count = 0;
while (m.find()) {
count++;
LOGGER.debug("Found project command match with {} groups: {}",
m.groupCount(), m.group(0));
String product = m.group(1);
final String version = m.group(2);
LOGGER.debug("Group 1: " + product);
LOGGER.debug("Group 2: " + version);
final String aliasPrefix = "ALIASOF_";
if (product.startsWith(aliasPrefix)) {
product = product.replaceFirst(aliasPrefix, "");
}
if (count > 1) {
//TODO - refactor so we do not assign to the parameter (checkstyle)
currentDep = new Dependency(dependency.getActualFile());
currentDep.setDisplayFileName(String.format("%s:%s", dependency.getDisplayFileName(), product));
final String filePath = String.format("%s:%s", dependency.getFilePath(), product);
currentDep.setFilePath(filePath);
byte[] path;
try {
path = filePath.getBytes("UTF-8");
} catch (UnsupportedEncodingException ex) {
path = filePath.getBytes();
}
currentDep.setSha1sum(Checksum.getHex(sha1.digest(path)));
engine.getDependencies().add(currentDep);
}
final String source = currentDep.getDisplayFileName();
currentDep.getProductEvidence().addEvidence(source, "Product",
product, Confidence.MEDIUM);
currentDep.getVersionEvidence().addEvidence(source, "Version",
version, Confidence.MEDIUM);
}
LOGGER.debug(String.format("Found %d matches.", count));
}
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_CMAKE_ENABLED;
}
}

View File

@@ -1,18 +1,17 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
@@ -21,44 +20,48 @@ package org.owasp.dependencycheck.analyzer;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.data.lucene.LuceneUtils;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Evidence;
import org.owasp.dependencycheck.dependency.Evidence.Confidence;
import org.owasp.dependencycheck.dependency.EvidenceCollection;
import org.owasp.dependencycheck.data.cpe.CpeIndexReader;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.data.cpe.CpeMemoryIndex;
import org.owasp.dependencycheck.data.cpe.Fields;
import org.owasp.dependencycheck.data.cpe.IndexEntry;
import org.owasp.dependencycheck.data.cpe.IndexException;
import org.owasp.dependencycheck.data.lucene.LuceneUtils;
import org.owasp.dependencycheck.data.nvdcve.CveDB;
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Evidence;
import org.owasp.dependencycheck.dependency.EvidenceCollection;
import org.owasp.dependencycheck.dependency.Identifier;
import org.owasp.dependencycheck.dependency.VulnerableSoftware;
import org.owasp.dependencycheck.utils.DependencyVersion;
import org.owasp.dependencycheck.utils.DependencyVersionUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* CPEAnalyzer is a utility class that takes a project dependency and attempts
* to discern if there is an associated CPE. It uses the evidence contained
* within the dependency to search the Lucene index.
* CPEAnalyzer is a utility class that takes a project dependency and attempts to discern if there is an associated CPE. It uses
* the evidence contained within the dependency to search the Lucene index.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class CPEAnalyzer implements Analyzer {
/**
* The Logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(CPEAnalyzer.class);
/**
* The maximum number of query results to return.
*/
@@ -68,91 +71,107 @@ public class CPEAnalyzer implements Analyzer {
*/
static final String WEIGHTING_BOOST = "^5";
/**
* A string representation of a regular expression defining characters
* utilized within the CPE Names.
* A string representation of a regular expression defining characters utilized within the CPE Names.
*/
static final String CLEANSE_CHARACTER_RX = "[^A-Za-z0-9 ._-]";
/**
* A string representation of a regular expression used to remove all but
* alpha characters.
* A string representation of a regular expression used to remove all but alpha characters.
*/
static final String CLEANSE_NONALPHA_RX = "[^A-Za-z]*";
/**
* The additional size to add to a new StringBuilder to account for extra
* data that will be written into the string.
* The additional size to add to a new StringBuilder to account for extra data that will be written into the string.
*/
static final int STRING_BUILDER_BUFFER = 20;
/**
* The CPE Index Reader.
* The CPE in memory index.
*/
private CpeIndexReader cpe;
private CpeMemoryIndex cpe;
/**
* The CVE Database.
*/
private CveDB cve;
/**
* The URL to perform a search of the NVD CVE data at NIST.
*/
public static final String NVD_SEARCH_URL = "https://web.nvd.nist.gov/view/vuln/search-results?adv_search=true&cves=on&cpe_version=%s";
/**
* Returns the name of this analyzer.
*
* @return the name of this analyzer.
*/
@Override
public String getName() {
return "CPE Analyzer";
}
/**
* Returns the analysis phase that this analyzer should run in.
*
* @return the analysis phase that this analyzer should run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return AnalysisPhase.IDENTIFIER_ANALYSIS;
}
/**
* Creates the CPE Lucene Index.
*
* @throws Exception is thrown if there is an issue opening the index.
*/
@Override
public void initialize() throws Exception {
this.open();
}
/**
* Opens the data source.
*
* @throws IOException when the Lucene directory to be queried does not
* exist or is corrupt.
* @throws DatabaseException when the database throws an exception. This
* usually occurs when the database is in use by another process.
* @throws IOException when the Lucene directory to be queried does not exist or is corrupt.
* @throws DatabaseException when the database throws an exception. This usually occurs when the database is in use by another
* process.
*/
public void open() throws IOException, DatabaseException {
cpe = new CpeIndexReader();
cpe.open();
cve = new CveDB();
try {
if (!isOpen()) {
cve = new CveDB();
cve.open();
} catch (SQLException ex) {
Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex);
throw new DatabaseException("Unable to open the cve db", ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex);
throw new DatabaseException("Unable to open the cve db", ex);
cpe = CpeMemoryIndex.getInstance();
try {
LOGGER.info("Creating the CPE Index");
final long creationStart = System.currentTimeMillis();
cpe.open(cve);
LOGGER.info("CPE Index Created ({} ms)", System.currentTimeMillis() - creationStart);
} catch (IndexException ex) {
LOGGER.debug("IndexException", ex);
throw new DatabaseException(ex);
}
}
}
/**
* Closes the data source.
* Closes the data sources.
*/
@Override
public void close() {
if (cpe != null) {
cpe.close();
cpe = null;
}
if (cve != null) {
cve.close();
cve = null;
}
}
/**
* Returns the status of the data source - is the index open.
*
* @return true or false.
*/
public boolean isOpen() {
return (cpe != null) && cpe.isOpen();
return cpe != null && cpe.isOpen();
}
/**
* Ensures that the Lucene index is closed.
*
* @throws Throwable when a throwable is thrown.
*/
@Override
protected void finalize() throws Throwable {
super.finalize();
if (isOpen()) {
close();
}
}
/**
* Searches the data store of CPE entries, trying to identify the CPE for
* the given dependency based on the evidence contained within. The
* dependency passed in is updated with any identified CPE values.
* Searches the data store of CPE entries, trying to identify the CPE for the given dependency based on the evidence contained
* within. The dependency passed in is updated with any identified CPE values.
*
* @param dependency the dependency to search for CPE entries on.
* @throws CorruptIndexException is thrown when the Lucene index is corrupt.
@@ -160,42 +179,45 @@ public class CPEAnalyzer implements Analyzer {
* @throws ParseException is thrown when the Lucene query cannot be parsed.
*/
protected void determineCPE(Dependency dependency) throws CorruptIndexException, IOException, ParseException {
Confidence vendorConf = Confidence.HIGHEST;
Confidence productConf = Confidence.HIGHEST;
String vendors = addEvidenceWithoutDuplicateTerms("", dependency.getVendorEvidence(), vendorConf);
String products = addEvidenceWithoutDuplicateTerms("", dependency.getProductEvidence(), productConf);
int ctr = 0;
do {
//TODO test dojo-war against this. we shold get dojo-toolkit:dojo-toolkit AND dojo-toolkit:toolkit
String vendors = "";
String products = "";
for (Confidence confidence : Confidence.values()) {
if (dependency.getVendorEvidence().contains(confidence)) {
vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), confidence);
LOGGER.debug("vendor search: {}", vendors);
}
if (dependency.getProductEvidence().contains(confidence)) {
products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), confidence);
LOGGER.debug("product search: {}", products);
}
if (!vendors.isEmpty() && !products.isEmpty()) {
final List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(),
dependency.getVendorEvidence().getWeighting());
if (entries == null) {
continue;
}
boolean identifierAdded = false;
for (IndexEntry e : entries) {
LOGGER.debug("Verifying entry: {}", e);
if (verifyEntry(e, dependency)) {
final String vendor = e.getVendor();
final String product = e.getProduct();
determineIdentifiers(dependency, vendor, product);
LOGGER.debug("identified vendor/product: {}/{}", vendor, product);
identifierAdded |= determineIdentifiers(dependency, vendor, product, confidence);
}
}
if (identifierAdded) {
break;
}
}
vendorConf = reduceConfidence(vendorConf);
if (dependency.getVendorEvidence().contains(vendorConf)) {
vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf);
}
productConf = reduceConfidence(productConf);
if (dependency.getProductEvidence().contains(productConf)) {
products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf);
}
} while ((++ctr) < 4);
}
}
/**
* Returns the text created by concatenating the text and the values from
* the EvidenceCollection (filtered for a specific confidence). This
* attempts to prevent duplicate terms from being added.<br/<br/> Note, if
* the evidence is longer then 200 characters it will be truncated.
* Returns the text created by concatenating the text and the values from the EvidenceCollection (filtered for a specific
* confidence). This attempts to prevent duplicate terms from being added.<br/<br/> Note, if the evidence is longer then 200
* characters it will be truncated.
*
* @param text the base text.
* @param ec an EvidenceCollection
@@ -225,87 +247,66 @@ public class CPEAnalyzer implements Analyzer {
}
/**
* Reduces the given confidence by one level. This returns LOW if the
* confidence passed in is not HIGH.
* <p>
* Searches the Lucene CPE index to identify possible CPE entries associated with the supplied vendor, product, and
* version.</p>
*
* @param c the confidence to reduce.
* @return One less then the confidence passed in.
*/
private Confidence reduceConfidence(final Confidence c) {
if (c == Confidence.HIGHEST) {
return Confidence.HIGH;
} else if (c == Confidence.HIGH) {
return Confidence.MEDIUM;
} else {
return Confidence.LOW;
}
}
/**
* <p>Searches the Lucene CPE index to identify possible CPE entries
* associated with the supplied vendor, product, and version.</p>
*
* <p>If either the vendorWeightings or productWeightings lists have been
* populated this data is used to add weighting factors to the search.</p>
* <p>
* If either the vendorWeightings or productWeightings lists have been populated this data is used to add weighting factors to
* the search.</p>
*
* @param vendor the text used to search the vendor field
* @param product the text used to search the product field
* @param vendorWeightings a list of strings to use to add weighting factors
* to the vendor field
* @param productWeightings Adds a list of strings that will be used to add
* weighting factors to the product search
* @param vendorWeightings a list of strings to use to add weighting factors to the vendor field
* @param productWeightings Adds a list of strings that will be used to add weighting factors to the product search
* @return a list of possible CPE values
* @throws CorruptIndexException when the Lucene index is corrupt
* @throws IOException when the Lucene index is not found
* @throws ParseException when the generated query is not valid
*/
protected List<IndexEntry> searchCPE(String vendor, String product,
Set<String> vendorWeightings, Set<String> productWeightings)
throws CorruptIndexException, IOException, ParseException {
final ArrayList<IndexEntry> ret = new ArrayList<IndexEntry>(MAX_QUERY_RESULTS);
Set<String> vendorWeightings, Set<String> productWeightings) {
final List<IndexEntry> ret = new ArrayList<IndexEntry>(MAX_QUERY_RESULTS);
final String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings);
if (searchString == null) {
return ret;
}
final TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS);
for (ScoreDoc d : docs.scoreDocs) {
if (d.score >= 0.08) {
final Document doc = cpe.getDocument(d.doc);
final IndexEntry entry = new IndexEntry();
entry.setVendor(doc.get(Fields.VENDOR));
entry.setProduct(doc.get(Fields.PRODUCT));
// if (d.score < 0.08) {
// System.out.print(entry.getVendor());
// System.out.print(":");
// System.out.print(entry.getProduct());
// System.out.print(":");
// System.out.println(d.score);
// }
entry.setSearchScore(d.score);
if (!ret.contains(entry)) {
ret.add(entry);
try {
final TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS);
for (ScoreDoc d : docs.scoreDocs) {
if (d.score >= 0.08) {
final Document doc = cpe.getDocument(d.doc);
final IndexEntry entry = new IndexEntry();
entry.setVendor(doc.get(Fields.VENDOR));
entry.setProduct(doc.get(Fields.PRODUCT));
entry.setSearchScore(d.score);
if (!ret.contains(entry)) {
ret.add(entry);
}
}
}
return ret;
} catch (ParseException ex) {
LOGGER.warn("An error occurred querying the CPE data. See the log for more details.");
LOGGER.info("Unable to parse: {}", searchString, ex);
} catch (IOException ex) {
LOGGER.warn("An error occurred reading CPE data. See the log for more details.");
LOGGER.info("IO Error with search string: {}", searchString, ex);
}
return ret;
return null;
}
/**
* <p>Builds a Lucene search string by properly escaping data and
* constructing a valid search query.</p>
* <p>
* Builds a Lucene search string by properly escaping data and constructing a valid search query.</p>
*
* <p>If either the possibleVendor or possibleProducts lists have been
* populated this data is used to add weighting factors to the search string
* generated.</p>
* <p>
* If either the possibleVendor or possibleProducts lists have been populated this data is used to add weighting factors to
* the search string generated.</p>
*
* @param vendor text to search the vendor field
* @param product text to search the product field
* @param vendorWeighting a list of strings to apply to the vendor to boost
* the terms weight
* @param productWeightings a list of strings to apply to the product to
* boost the terms weight
* @param vendorWeighting a list of strings to apply to the vendor to boost the terms weight
* @param productWeightings a list of strings to apply to the product to boost the terms weight
* @return the Lucene query
*/
protected String buildSearch(String vendor, String product,
@@ -326,25 +327,21 @@ public class CPEAnalyzer implements Analyzer {
}
/**
* This method constructs a Lucene query for a given field. The searchText
* is split into separate words and if the word is within the list of
* weighted words then an additional weighting is applied to the term as it
* is appended into the query.
* This method constructs a Lucene query for a given field. The searchText is split into separate words and if the word is
* within the list of weighted words then an additional weighting is applied to the term as it is appended into the query.
*
* @param sb a StringBuilder that the query text will be appended to.
* @param field the field within the Lucene index that the query is
* searching.
* @param field the field within the Lucene index that the query is searching.
* @param searchText text used to construct the query.
* @param weightedText a list of terms that will be considered higher
* importance when searching.
* @param weightedText a list of terms that will be considered higher importance when searching.
* @return if the append was successful.
*/
private boolean appendWeightedSearch(StringBuilder sb, String field, String searchText, Set<String> weightedText) {
sb.append(" ").append(field).append(":( ");
sb.append(' ').append(field).append(":( ");
final String cleanText = cleanseText(searchText);
if ("".equals(cleanText)) {
if (cleanText.isEmpty()) {
return false;
}
@@ -354,20 +351,27 @@ public class CPEAnalyzer implements Analyzer {
final StringTokenizer tokens = new StringTokenizer(cleanText);
while (tokens.hasMoreElements()) {
final String word = tokens.nextToken();
String temp = null;
StringBuilder temp = null;
for (String weighted : weightedText) {
final String weightedStr = cleanseText(weighted);
if (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) {
temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST;
temp = new StringBuilder(word.length() + 2);
LuceneUtils.appendEscapedLuceneQuery(temp, word);
temp.append(WEIGHTING_BOOST);
if (!word.equalsIgnoreCase(weightedStr)) {
temp += " " + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST;
temp.append(' ');
LuceneUtils.appendEscapedLuceneQuery(temp, weightedStr);
temp.append(WEIGHTING_BOOST);
}
break;
}
}
sb.append(' ');
if (temp == null) {
temp = LuceneUtils.escapeLuceneQuery(word);
LuceneUtils.appendEscapedLuceneQuery(sb, word);
} else {
sb.append(temp);
}
sb.append(" ").append(temp);
}
}
sb.append(" ) ");
@@ -375,8 +379,7 @@ public class CPEAnalyzer implements Analyzer {
}
/**
* Removes characters from the input text that are not used within the CPE
* index.
* Removes characters from the input text that are not used within the CPE index.
*
* @param text is the text to remove the characters from.
* @return the text having removed some characters.
@@ -386,8 +389,7 @@ public class CPEAnalyzer implements Analyzer {
}
/**
* Compares two strings after lower casing them and removing the non-alpha
* characters.
* Compares two strings after lower casing them and removing the non-alpha characters.
*
* @param l string one to compare.
* @param r string two to compare.
@@ -404,9 +406,8 @@ public class CPEAnalyzer implements Analyzer {
}
/**
* Ensures that the CPE Identified matches the dependency. This validates
* that the product, vendor, and version information for the CPE are
* contained within the dependencies evidence.
* Ensures that the CPE Identified matches the dependency. This validates that the product, vendor, and version information
* for the CPE are contained within the dependencies evidence.
*
* @param entry a CPE entry.
* @param dependency the dependency that the CPE entries could be for.
@@ -415,6 +416,8 @@ public class CPEAnalyzer implements Analyzer {
private boolean verifyEntry(final IndexEntry entry, final Dependency dependency) {
boolean isValid = false;
//TODO - does this nullify some of the fuzzy matching that happens in the lucene search?
// for instance CPE some-component and in the evidence we have SomeComponent.
if (collectionContainsString(dependency.getProductEvidence(), entry.getProduct())
&& collectionContainsString(dependency.getVendorEvidence(), entry.getVendor())) {
//&& collectionContainsVersion(dependency.getVersionEvidence(), entry.getVersion())
@@ -431,18 +434,6 @@ public class CPEAnalyzer implements Analyzer {
* @return whether or not the EvidenceCollection contains the string
*/
private boolean collectionContainsString(EvidenceCollection ec, String text) {
//<editor-fold defaultstate="collapsed" desc="This code fold contains an old version of the code, delete once more testing is done">
// String[] splitText = text.split("[\\s_-]");
//
// for (String search : splitText) {
// //final String search = text.replaceAll("[\\s_-]", "").toLowerCase();
// if (ec.containsUsedString(search)) {
// return true;
// }
// }
//</editor-fold>
//TODO - likely need to change the split... not sure if this will work for CPE with special chars
if (text == null) {
return false;
@@ -451,8 +442,10 @@ public class CPEAnalyzer implements Analyzer {
final List<String> list = new ArrayList<String>();
String tempWord = null;
for (String word : words) {
//single letter words should be concatonated with the next word.
// so { "m", "core", "sample" } -> { "mcore", "sample" }
/*
single letter words should be concatenated with the next word.
so { "m", "core", "sample" } -> { "mcore", "sample" }
*/
if (tempWord != null) {
list.add(tempWord + word);
tempWord = null;
@@ -462,9 +455,16 @@ public class CPEAnalyzer implements Analyzer {
list.add(word);
}
}
if (tempWord != null && !list.isEmpty()) {
final String tmp = list.get(list.size() - 1) + tempWord;
list.add(tmp);
if (tempWord != null) {
if (!list.isEmpty()) {
final String tmp = list.get(list.size() - 1) + tempWord;
list.add(tmp);
} else {
list.add(tempWord);
}
}
if (list.isEmpty()) {
return false;
}
boolean contains = true;
for (String word : list) {
@@ -474,16 +474,14 @@ public class CPEAnalyzer implements Analyzer {
}
/**
* Analyzes a dependency and attempts to determine if there are any CPE
* identifiers for this dependency.
* Analyzes a dependency and attempts to determine if there are any CPE identifiers for this dependency.
*
* @param dependency The Dependency to analyze.
* @param engine The analysis engine
* @throws AnalysisException is thrown if there is an issue analyzing the
* dependency.
* @throws AnalysisException is thrown if there is an issue analyzing the dependency.
*/
@Override
public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
public synchronized void analyze(Dependency dependency, Engine engine) throws AnalysisException {
try {
determineCPE(dependency);
} catch (CorruptIndexException ex) {
@@ -496,74 +494,28 @@ public class CPEAnalyzer implements Analyzer {
}
/**
* Returns true because this analyzer supports all dependency types.
*
* @return true.
*/
@Override
public Set<String> getSupportedExtensions() {
return null;
}
/**
* Returns the name of this analyzer.
*
* @return the name of this analyzer.
*/
@Override
public String getName() {
return "CPE Analyzer";
}
/**
* Returns true because this analyzer supports all dependency types.
*
* @param extension the file extension of the dependency being analyzed.
* @return true.
*/
@Override
public boolean supportsExtension(String extension) {
return true;
}
/**
* Returns the analysis phase that this analyzer should run in.
*
* @return the analysis phase that this analyzer should run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return AnalysisPhase.IDENTIFIER_ANALYSIS;
}
/**
* Opens the CPE Lucene Index.
*
* @throws Exception is thrown if there is an issue opening the index.
*/
@Override
public void initialize() throws Exception {
this.open();
}
/**
* Retrieves a list of CPE values from the CveDB based on the vendor and
* product passed in. The list is then validated to find only CPEs that are
* valid for the given dependency. It is possible that the CPE identified is
* a best effort "guess" based on the vendor, product, and version
* information.
* Retrieves a list of CPE values from the CveDB based on the vendor and product passed in. The list is then validated to find
* only CPEs that are valid for the given dependency. It is possible that the CPE identified is a best effort "guess" based on
* the vendor, product, and version information.
*
* @param dependency the Dependency being analyzed
* @param vendor the vendor for the CPE being analyzed
* @param product the product for the CPE being analyzed
* @param currentConfidence the current confidence being used during analysis
* @return <code>true</code> if an identifier was added to the dependency; otherwise <code>false</code>
* @throws UnsupportedEncodingException is thrown if UTF-8 is not supported
*/
private void determineIdentifiers(Dependency dependency, String vendor, String product) throws UnsupportedEncodingException {
protected boolean determineIdentifiers(Dependency dependency, String vendor, String product,
Confidence currentConfidence) throws UnsupportedEncodingException {
final Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product);
DependencyVersion bestGuess = new DependencyVersion("-");
Confidence bestGuessConf = null;
boolean hasBroadMatch = false;
final List<IdentifierMatch> collected = new ArrayList<IdentifierMatch>();
for (Confidence conf : Confidence.values()) {
// if (conf.compareTo(currentConfidence) > 0) {
// break;
// }
for (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) {
final DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue());
if (evVer == null) {
@@ -571,14 +523,18 @@ public class CPEAnalyzer implements Analyzer {
}
for (VulnerableSoftware vs : cpes) {
DependencyVersion dbVer;
if (vs.getRevision() != null && !vs.getRevision().isEmpty()) {
dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + "." + vs.getRevision());
if (vs.getUpdate() != null && !vs.getUpdate().isEmpty()) {
dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + '.' + vs.getUpdate());
} else {
dbVer = DependencyVersionUtil.parseVersion(vs.getVersion());
}
if (dbVer == null //special case, no version specified - everything is vulnerable
|| evVer.equals(dbVer)) { //woot exect match
final String url = String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(vs.getName(), "UTF-8"));
if (dbVer == null) { //special case, no version specified - everything is vulnerable
hasBroadMatch = true;
final String url = String.format(NVD_SEARCH_URL, URLEncoder.encode(vs.getName(), "UTF-8"));
final IdentifierMatch match = new IdentifierMatch("cpe", vs.getName(), url, IdentifierConfidence.BROAD_MATCH, conf);
collected.add(match);
} else if (evVer.equals(dbVer)) { //yeah! exact match
final String url = String.format(NVD_SEARCH_URL, URLEncoder.encode(vs.getName(), "UTF-8"));
final IdentifierMatch match = new IdentifierMatch("cpe", vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf);
collected.add(match);
} else {
@@ -603,7 +559,11 @@ public class CPEAnalyzer implements Analyzer {
}
}
final String cpeName = String.format("cpe:/a:%s:%s:%s", vendor, product, bestGuess.toString());
final String url = null; //String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8"));
String url = null;
if (hasBroadMatch) { //if we have a broad match we can add the URL to the best guess.
final String cpeUrlName = String.format("cpe:/a:%s:%s", vendor, product);
url = String.format(NVD_SEARCH_URL, URLEncoder.encode(cpeUrlName, "UTF-8"));
}
if (bestGuessConf == null) {
bestGuessConf = Confidence.LOW;
}
@@ -613,12 +573,21 @@ public class CPEAnalyzer implements Analyzer {
Collections.sort(collected);
final IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence();
final Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence();
boolean identifierAdded = false;
for (IdentifierMatch m : collected) {
if (bestIdentifierQuality.equals(m.getConfidence())
&& bestEvidenceQuality.equals(m.getEvidenceConfidence())) {
dependency.addIdentifier(m.getIdentifier());
final Identifier i = m.getIdentifier();
if (bestIdentifierQuality == IdentifierConfidence.BEST_GUESS) {
i.setConfidence(Confidence.LOW);
} else {
i.setConfidence(bestEvidenceQuality);
}
dependency.addIdentifier(i);
identifierAdded = true;
}
}
return identifierAdded;
}
/**
@@ -633,25 +602,27 @@ public class CPEAnalyzer implements Analyzer {
/**
* A best guess for the CPE.
*/
BEST_GUESS
BEST_GUESS,
/**
* The entire vendor/product group must be added (without a guess at version) because there is a CVE with a VS that only
* specifies vendor/product.
*/
BROAD_MATCH
}
/**
* A simple object to hold an identifier and carry information about the
* confidence in the identifier.
* A simple object to hold an identifier and carry information about the confidence in the identifier.
*/
private static class IdentifierMatch implements Comparable<IdentifierMatch> {
/**
* Constructs an IdentiferMatch.
* Constructs an IdentifierMatch.
*
* @param type the type of identifier (such as CPE)
* @param value the value of the identifier
* @param url the URL of the identifier
* @param identifierConfidence the confidence in the identifier: best
* guess or exact match
* @param evidenceConfidence the confidence of the evidence used to find
* the identifier
* @param identifierConfidence the confidence in the identifier: best guess or exact match
* @param evidenceConfidence the confidence of the evidence used to find the identifier
*/
IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) {
this.identifier = new Identifier(type, value, url);
@@ -782,8 +753,7 @@ public class CPEAnalyzer implements Analyzer {
//</editor-fold>
/**
* Standard implementation of compareTo that compares identifier
* confidence, evidence confidence, and then the identifier.
* Standard implementation of compareTo that compares identifier confidence, evidence confidence, and then the identifier.
*
* @param o the IdentifierMatch to compare to
* @return the natural ordering of IdentifierMatch

View File

@@ -0,0 +1,238 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2014 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.data.central.CentralSearch;
import org.owasp.dependencycheck.data.nexus.MavenArtifact;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Evidence;
import org.owasp.dependencycheck.xml.pom.PomUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import org.owasp.dependencycheck.utils.DownloadFailedException;
import org.owasp.dependencycheck.utils.Downloader;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.InvalidSettingException;
import org.owasp.dependencycheck.utils.Settings;
/**
* Analyzer which will attempt to locate a dependency, and the GAV information, by querying Central for the dependency's SHA-1
* digest.
*
* @author colezlaw
*/
public class CentralAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(CentralAnalyzer.class);
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Central Analyzer";
/**
* The phase in which this analyzer runs.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The types of files on which this will work.
*/
private static final String SUPPORTED_EXTENSIONS = "jar";
/**
* The analyzer should be disabled if there are errors, so this is a flag to determine if such an error has occurred.
*/
private boolean errorFlag = false;
/**
* The searcher itself.
*/
private CentralSearch searcher;
/**
* Field indicating if the analyzer is enabled.
*/
private final boolean enabled = checkEnabled();
/**
* Determine whether to enable this analyzer or not.
*
* @return whether the analyzer should be enabled
*/
@Override
public boolean isEnabled() {
return enabled;
}
/**
* Determines if this analyzer is enabled.
*
* @return <code>true</code> if the analyzer is enabled; otherwise <code>false</code>
*/
private boolean checkEnabled() {
boolean retval = false;
try {
if (Settings.getBoolean(Settings.KEYS.ANALYZER_CENTRAL_ENABLED)) {
if (!Settings.getBoolean(Settings.KEYS.ANALYZER_NEXUS_ENABLED)
|| NexusAnalyzer.DEFAULT_URL.equals(Settings.getString(Settings.KEYS.ANALYZER_NEXUS_URL))) {
LOGGER.debug("Enabling the Central analyzer");
retval = true;
} else {
LOGGER.info("Nexus analyzer is enabled, disabling the Central Analyzer");
}
} else {
LOGGER.info("Central analyzer disabled");
}
} catch (InvalidSettingException ise) {
LOGGER.warn("Invalid setting. Disabling the Central analyzer");
}
return retval;
}
/**
* Initializes the analyzer once before any analysis is performed.
*
* @throws Exception if there's an error during initialization
*/
@Override
public void initializeFileTypeAnalyzer() throws Exception {
LOGGER.debug("Initializing Central analyzer");
LOGGER.debug("Central analyzer enabled: {}", isEnabled());
if (isEnabled()) {
final String searchUrl = Settings.getString(Settings.KEYS.ANALYZER_CENTRAL_URL);
LOGGER.debug("Central Analyzer URL: {}", searchUrl);
searcher = new CentralSearch(new URL(searchUrl));
}
}
/**
* Returns the analyzer's name.
*
* @return the name of the analyzer
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the key used in the properties file to to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key.
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_CENTRAL_ENABLED;
}
/**
* Returns the analysis phase under which the analyzer runs.
*
* @return the phase under which the analyzer runs
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* The file filter used to determine which files this analyzer supports.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addExtensions(SUPPORTED_EXTENSIONS).build();
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* Performs the analysis.
*
* @param dependency the dependency to analyze
* @param engine the engine
* @throws AnalysisException when there's an exception during analysis
*/
@Override
public void analyzeFileType(Dependency dependency, Engine engine) throws AnalysisException {
if (errorFlag || !isEnabled()) {
return;
}
try {
final List<MavenArtifact> mas = searcher.searchSha1(dependency.getSha1sum());
final Confidence confidence = mas.size() > 1 ? Confidence.HIGH : Confidence.HIGHEST;
for (MavenArtifact ma : mas) {
LOGGER.debug("Central analyzer found artifact ({}) for dependency ({})", ma, dependency.getFileName());
dependency.addAsEvidence("central", ma, confidence);
boolean pomAnalyzed = false;
for (Evidence e : dependency.getVendorEvidence()) {
if ("pom".equals(e.getSource())) {
pomAnalyzed = true;
break;
}
}
if (!pomAnalyzed && ma.getPomUrl() != null) {
File pomFile = null;
try {
final File baseDir = Settings.getTempDirectory();
pomFile = File.createTempFile("pom", ".xml", baseDir);
if (!pomFile.delete()) {
LOGGER.warn("Unable to fetch pom.xml for {} from Central; "
+ "this could result in undetected CPE/CVEs.", dependency.getFileName());
LOGGER.debug("Unable to delete temp file");
}
LOGGER.debug("Downloading {}", ma.getPomUrl());
Downloader.fetchFile(new URL(ma.getPomUrl()), pomFile);
PomUtils.analyzePOM(dependency, pomFile);
} catch (DownloadFailedException ex) {
LOGGER.warn("Unable to download pom.xml for {} from Central; "
+ "this could result in undetected CPE/CVEs.", dependency.getFileName());
} finally {
if (pomFile != null && !FileUtils.deleteQuietly(pomFile)) {
pomFile.deleteOnExit();
}
}
}
}
} catch (IllegalArgumentException iae) {
LOGGER.info("invalid sha1-hash on {}", dependency.getFileName());
} catch (FileNotFoundException fnfe) {
LOGGER.debug("Artifact not found in repository: '{}", dependency.getFileName());
} catch (IOException ioe) {
LOGGER.debug("Could not connect to Central search", ioe);
errorFlag = true;
}
}
}

View File

@@ -0,0 +1,162 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 The OWASP Foundation. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.data.composer.ComposerDependency;
import org.owasp.dependencycheck.data.composer.ComposerException;
import org.owasp.dependencycheck.data.composer.ComposerLockParser;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.utils.Checksum;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.nio.charset.Charset;
import java.security.MessageDigest;
/**
* Used to analyze a composer.lock file for a composer PHP app.
*
* @author colezlaw
*/
public class ComposerLockAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(ComposerLockAnalyzer.class);
/**
* The analyzer name.
*/
private static final String ANALYZER_NAME = "Composer.lock analyzer";
/**
* composer.json.
*/
private static final String COMPOSER_LOCK = "composer.lock";
/**
* The FileFilter.
*/
private static final FileFilter FILE_FILTER = FileFilterBuilder.newInstance().addFilenames(COMPOSER_LOCK).build();
/**
* Returns the FileFilter.
*
* @return the FileFilter
*/
@Override
protected FileFilter getFileFilter() {
return FILE_FILTER;
}
/**
* Initializes the analyzer.
*
* @throws Exception thrown if an exception occurs getting an instance of SHA1
*/
@Override
protected void initializeFileTypeAnalyzer() throws Exception {
sha1 = MessageDigest.getInstance("SHA1");
}
/**
* The MessageDigest for calculating a new digest for the new dependencies added.
*/
private MessageDigest sha1 = null;
/**
* Entry point for the analyzer.
*
* @param dependency the dependency to analyze
* @param engine the engine scanning
* @throws AnalysisException if there's a failure during analysis
*/
@Override
protected void analyzeFileType(Dependency dependency, Engine engine) throws AnalysisException {
FileInputStream fis = null;
try {
fis = new FileInputStream(dependency.getActualFile());
final ComposerLockParser clp = new ComposerLockParser(fis);
LOGGER.info("Checking composer.lock file {}", dependency.getActualFilePath());
clp.process();
for (ComposerDependency dep : clp.getDependencies()) {
final Dependency d = new Dependency(dependency.getActualFile());
d.setDisplayFileName(String.format("%s:%s/%s", dependency.getDisplayFileName(), dep.getGroup(), dep.getProject()));
final String filePath = String.format("%s:%s/%s", dependency.getFilePath(), dep.getGroup(), dep.getProject());
d.setFilePath(filePath);
d.setSha1sum(Checksum.getHex(sha1.digest(filePath.getBytes(Charset.defaultCharset()))));
d.getVendorEvidence().addEvidence(COMPOSER_LOCK, "vendor", dep.getGroup(), Confidence.HIGHEST);
d.getProductEvidence().addEvidence(COMPOSER_LOCK, "product", dep.getProject(), Confidence.HIGHEST);
d.getVersionEvidence().addEvidence(COMPOSER_LOCK, "version", dep.getVersion(), Confidence.HIGHEST);
LOGGER.info("Adding dependency {}", d);
engine.getDependencies().add(d);
}
} catch (FileNotFoundException fnfe) {
LOGGER.warn("Error opening dependency {}", dependency.getActualFilePath());
} catch (ComposerException ce) {
LOGGER.warn("Error parsing composer.json {}", dependency.getActualFilePath(), ce);
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
LOGGER.debug("Unable to close file", e);
}
}
}
}
/**
* Gets the key to determine whether the analyzer is enabled.
*
* @return the key specifying whether the analyzer is enabled
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED;
}
/**
* Returns the analyzer's name.
*
* @return the analyzer's name
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase this analyzer should run under.
*
* @return the analysis phase
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return AnalysisPhase.INFORMATION_COLLECTION;
}
}

View File

@@ -0,0 +1,75 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.suppression.SuppressionRule;
/**
* The suppression analyzer processes an externally defined XML document that complies with the suppressions.xsd schema.
* Any identified CPE entries within the dependencies that match will be removed.
*
* @author Jeremy Long
*/
public class CpeSuppressionAnalyzer extends AbstractSuppressionAnalyzer {
//<editor-fold defaultstate="collapsed" desc="All standard implementation details of Analyzer">
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Cpe Suppression Analyzer";
/**
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.POST_IDENTIFIER_ANALYSIS;
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
//</editor-fold>
@Override
public void analyze(final Dependency dependency, final Engine engine) throws AnalysisException {
if (getRules() == null || getRules().size() <= 0) {
return;
}
for (final SuppressionRule rule : getRules()) {
rule.process(dependency);
}
}
}

View File

@@ -1,18 +1,17 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
@@ -23,44 +22,45 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Identifier;
import org.owasp.dependencycheck.utils.DependencyVersion;
import org.owasp.dependencycheck.utils.DependencyVersionUtil;
import org.owasp.dependencycheck.utils.LogUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <p>This analyzer ensures dependencies that should be grouped together, to
* remove excess noise from the report, are grouped. An example would be Spring,
* Spring Beans, Spring MVC, etc. If they are all for the same version and have
* the same relative path then these should be grouped into a single dependency
* under the core/main library.</p>
* <p>Note, this grouping only works on dependencies with identified CVE
* entries</p>
* <p>
* This analyzer ensures dependencies that should be grouped together, to remove excess noise from the report, are grouped. An
* example would be Spring, Spring Beans, Spring MVC, etc. If they are all for the same version and have the same relative path
* then these should be grouped into a single dependency under the core/main library.</p>
* <p>
* Note, this grouping only works on dependencies with identified CVE entries</p>
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class DependencyBundlingAnalyzer extends AbstractAnalyzer implements Analyzer {
/**
* The Logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(DependencyBundlingAnalyzer.class);
//<editor-fold defaultstate="collapsed" desc="Constants and Member Variables">
/**
* A pattern for obtaining the first part of a filename.
*/
private static final Pattern STARTING_TEXT_PATTERN = Pattern.compile("^[a-zA-Z]*");
private static final Pattern STARTING_TEXT_PATTERN = Pattern.compile("^[a-zA-Z0-9]*");
/**
* a flag indicating if this analyzer has run. This analyzer only runs once.
*/
private boolean analyzed = false;
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="All standard implmentation details of Analyzer">
/**
* The set of file extensions supported by this analyzer.
*/
private static final Set<String> EXTENSIONS = null;
//<editor-fold defaultstate="collapsed" desc="All standard implementation details of Analyzer">
/**
* The name of the analyzer.
*/
@@ -70,54 +70,34 @@ public class DependencyBundlingAnalyzer extends AbstractAnalyzer implements Anal
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.PRE_FINDING_ANALYSIS;
/**
* Returns a list of file EXTENSIONS supported by this analyzer.
*
* @return a list of file EXTENSIONS supported by this analyzer.
*/
public Set<String> getSupportedExtensions() {
return EXTENSIONS;
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns whether or not this analyzer can process the given extension.
*
* @param extension the file extension to test for support
* @return whether or not the specified file extension is supported by this
* analyzer.
*/
public boolean supportsExtension(String extension) {
return true;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
//</editor-fold>
/**
* Analyzes a set of dependencies. If they have been found to have the same
* base path and the same set of identifiers they are likely related. The
* related dependencies are bundled into a single reportable item.
* Analyzes a set of dependencies. If they have been found to have the same base path and the same set of identifiers they are
* likely related. The related dependencies are bundled into a single reportable item.
*
* @param ignore this analyzer ignores the dependency being analyzed
* @param engine the engine that is scanning the dependencies
* @throws AnalysisException is thrown if there is an error reading the JAR
* file.
* @throws AnalysisException is thrown if there is an error reading the JAR file.
*/
@Override
public void analyze(Dependency ignore, Engine engine) throws AnalysisException {
@@ -128,33 +108,35 @@ public class DependencyBundlingAnalyzer extends AbstractAnalyzer implements Anal
//for (Dependency nextDependency : engine.getDependencies()) {
while (mainIterator.hasNext()) {
final Dependency dependency = mainIterator.next();
if (mainIterator.hasNext()) {
if (mainIterator.hasNext() && !dependenciesToRemove.contains(dependency)) {
final ListIterator<Dependency> subIterator = engine.getDependencies().listIterator(mainIterator.nextIndex());
while (subIterator.hasNext()) {
final Dependency nextDependency = subIterator.next();
if (identifiersMatch(dependency, nextDependency)
if (hashesMatch(dependency, nextDependency) && !containedInWar(dependency.getFilePath())
&& !containedInWar(nextDependency.getFilePath())) {
if (firstPathIsShortest(dependency.getFilePath(), nextDependency.getFilePath())) {
mergeDependencies(dependency, nextDependency, dependenciesToRemove);
} else {
mergeDependencies(nextDependency, dependency, dependenciesToRemove);
break; //since we merged into the next dependency - skip forward to the next in mainIterator
}
} else if (isShadedJar(dependency, nextDependency)) {
if (dependency.getFileName().toLowerCase().endsWith("pom.xml")) {
mergeDependencies(nextDependency, dependency, dependenciesToRemove);
nextDependency.getRelatedDependencies().remove(dependency);
break;
} else {
mergeDependencies(dependency, nextDependency, dependenciesToRemove);
dependency.getRelatedDependencies().remove(nextDependency);
}
} else if (cpeIdentifiersMatch(dependency, nextDependency)
&& hasSameBasePath(dependency, nextDependency)
&& fileNameMatch(dependency, nextDependency)) {
if (isCore(dependency, nextDependency)) {
dependency.addRelatedDependency(nextDependency);
//move any "related dependencies" to the new "parent" dependency
final Iterator<Dependency> i = nextDependency.getRelatedDependencies().iterator();
while (i.hasNext()) {
dependency.addRelatedDependency(i.next());
i.remove();
}
dependenciesToRemove.add(nextDependency);
mergeDependencies(dependency, nextDependency, dependenciesToRemove);
} else {
nextDependency.addRelatedDependency(dependency);
//move any "related dependencies" to the new "parent" dependency
final Iterator<Dependency> i = dependency.getRelatedDependencies().iterator();
while (i.hasNext()) {
nextDependency.addRelatedDependency(i.next());
i.remove();
}
dependenciesToRemove.add(dependency);
mergeDependencies(nextDependency, dependency, dependenciesToRemove);
break; //since we merged into the next dependency - skip forward to the next in mainIterator
}
}
}
@@ -162,15 +144,34 @@ public class DependencyBundlingAnalyzer extends AbstractAnalyzer implements Anal
}
//removing dependencies here as ensuring correctness and avoiding ConcurrentUpdateExceptions
// was difficult because of the inner iterator.
for (Dependency d : dependenciesToRemove) {
engine.getDependencies().remove(d);
}
engine.getDependencies().removeAll(dependenciesToRemove);
}
}
/**
* Attempts to trim a maven repo to a common base path. This is typically
* [drive]\[repo_location]\repository\[path1]\[path2].
* Adds the relatedDependency to the dependency's related dependencies.
*
* @param dependency the main dependency
* @param relatedDependency a collection of dependencies to be removed from the main analysis loop, this is the source of
* dependencies to remove
* @param dependenciesToRemove a collection of dependencies that will be removed from the main analysis loop, this function
* adds to this collection
*/
private void mergeDependencies(final Dependency dependency, final Dependency relatedDependency, final Set<Dependency> dependenciesToRemove) {
dependency.addRelatedDependency(relatedDependency);
final Iterator<Dependency> i = relatedDependency.getRelatedDependencies().iterator();
while (i.hasNext()) {
dependency.addRelatedDependency(i.next());
i.remove();
}
if (dependency.getSha1sum().equals(relatedDependency.getSha1sum())) {
dependency.addAllProjectReferences(relatedDependency.getProjectReferences());
}
dependenciesToRemove.add(relatedDependency);
}
/**
* Attempts to trim a maven repo to a common base path. This is typically [drive]\[repo_location]\repository\[path1]\[path2].
*
* @param path the path to trim
* @return a string representing the base path.
@@ -195,46 +196,25 @@ public class DependencyBundlingAnalyzer extends AbstractAnalyzer implements Anal
}
/**
* Returns true if the file names (and version if it exists) of the two
* dependencies are sufficiently similiar.
* Returns true if the file names (and version if it exists) of the two dependencies are sufficiently similar.
*
* @param dependency1 a dependency2 to compare
* @param dependency2 a dependency2 to compare
* @return true if the identifiers in the two supplied dependencies are
* equal
* @return true if the identifiers in the two supplied dependencies are equal
*/
private boolean fileNameMatch(Dependency dependency1, Dependency dependency2) {
if (dependency1 == null || dependency1.getFileName() == null
|| dependency2 == null || dependency2.getFileName() == null) {
return false;
}
String fileName1 = dependency1.getFileName();
String fileName2 = dependency2.getFileName();
//update to deal with archive analyzer, the starting name maybe the same
// as this is incorrectly looking at the starting path
final File one = new File(fileName1);
final File two = new File(fileName2);
final String oneParent = one.getParent();
final String twoParent = two.getParent();
if (oneParent != null) {
if (twoParent != null && oneParent.equals(twoParent)) {
fileName1 = one.getName();
fileName2 = two.getName();
} else {
return false;
}
} else if (twoParent != null) {
return false;
}
final String fileName1 = dependency1.getActualFile().getName();
final String fileName2 = dependency2.getActualFile().getName();
//version check
final DependencyVersion version1 = DependencyVersionUtil.parseVersion(fileName1);
final DependencyVersion version2 = DependencyVersionUtil.parseVersion(fileName2);
if (version1 != null && version2 != null) {
if (!version1.equals(version2)) {
return false;
}
if (version1 != null && version2 != null && !version1.equals(version2)) {
return false;
}
//filename check
@@ -248,25 +228,41 @@ public class DependencyBundlingAnalyzer extends AbstractAnalyzer implements Anal
}
/**
* Returns true if the identifiers in the two supplied dependencies are
* equal.
* Returns true if the CPE identifiers in the two supplied dependencies are equal.
*
* @param dependency1 a dependency2 to compare
* @param dependency2 a dependency2 to compare
* @return true if the identifiers in the two supplied dependencies are
* equal
* @return true if the identifiers in the two supplied dependencies are equal
*/
private boolean identifiersMatch(Dependency dependency1, Dependency dependency2) {
private boolean cpeIdentifiersMatch(Dependency dependency1, Dependency dependency2) {
if (dependency1 == null || dependency1.getIdentifiers() == null
|| dependency2 == null || dependency2.getIdentifiers() == null) {
return false;
}
final boolean matches = dependency1.getIdentifiers().size() > 0
&& dependency2.getIdentifiers().equals(dependency1.getIdentifiers());
if (LogUtils.isVerboseLoggingEnabled()) {
final String msg = String.format("IdentifiersMatch=%s (%s, %s)", matches, dependency1.getFileName(), dependency2.getFileName());
Logger.getLogger(DependencyBundlingAnalyzer.class.getName()).log(Level.FINE, msg);
boolean matches = false;
int cpeCount1 = 0;
int cpeCount2 = 0;
for (Identifier i : dependency1.getIdentifiers()) {
if ("cpe".equals(i.getType())) {
cpeCount1 += 1;
}
}
for (Identifier i : dependency2.getIdentifiers()) {
if ("cpe".equals(i.getType())) {
cpeCount2 += 1;
}
}
if (cpeCount1 > 0 && cpeCount1 == cpeCount2) {
for (Identifier i : dependency1.getIdentifiers()) {
if ("cpe".equals(i.getType())) {
matches |= dependency2.getIdentifiers().contains(i);
if (!matches) {
break;
}
}
}
}
LOGGER.debug("IdentifiersMatch={} ({}, {})", matches, dependency1.getFileName(), dependency2.getFileName());
return matches;
}
@@ -286,10 +282,7 @@ public class DependencyBundlingAnalyzer extends AbstractAnalyzer implements Anal
final File rFile = new File(dependency2.getFilePath());
String right = rFile.getParent();
if (left == null) {
if (right == null) {
return true;
}
return false;
return right == null;
}
if (left.equalsIgnoreCase(right)) {
return true;
@@ -298,46 +291,138 @@ public class DependencyBundlingAnalyzer extends AbstractAnalyzer implements Anal
left = getBaseRepoPath(left);
right = getBaseRepoPath(right);
}
return left.equalsIgnoreCase(right);
if (left.equalsIgnoreCase(right)) {
return true;
}
//new code
for (Dependency child : dependency2.getRelatedDependencies()) {
if (hasSameBasePath(dependency1, child)) {
return true;
}
}
return false;
}
/**
* This is likely a very broken attempt at determining if the 'left'
* dependency is the 'core' library in comparison to the 'right' library.
* This is likely a very broken attempt at determining if the 'left' dependency is the 'core' library in comparison to the
* 'right' library.
*
* @param left the dependency to test
* @param right the dependency to test against
* @return a boolean indicating whether or not the left dependency should be
* considered the "core" version.
* @return a boolean indicating whether or not the left dependency should be considered the "core" version.
*/
private boolean isCore(Dependency left, Dependency right) {
boolean isCore(Dependency left, Dependency right) {
final String leftName = left.getFileName().toLowerCase();
final String rightName = right.getFileName().toLowerCase();
final boolean returnVal;
if (rightName.contains("core") && !leftName.contains("core")) {
if (!rightName.matches(".*\\.(tar|tgz|gz|zip|ear|war).+") && leftName.matches(".*\\.(tar|tgz|gz|zip|ear|war).+")
|| rightName.contains("core") && !leftName.contains("core")
|| rightName.contains("kernel") && !leftName.contains("kernel")) {
returnVal = false;
} else if (!rightName.contains("core") && leftName.contains("core")) {
} else if (rightName.matches(".*\\.(tar|tgz|gz|zip|ear|war).+") && !leftName.matches(".*\\.(tar|tgz|gz|zip|ear|war).+")
|| !rightName.contains("core") && leftName.contains("core")
|| !rightName.contains("kernel") && leftName.contains("kernel")) {
returnVal = true;
// } else if (leftName.matches(".*struts2\\-core.*") && rightName.matches(".*xwork\\-core.*")) {
// returnVal = true;
// } else if (rightName.matches(".*struts2\\-core.*") && leftName.matches(".*xwork\\-core.*")) {
// returnVal = false;
} else {
/*
* considered splitting the names up and comparing the components,
* but decided that the file name length should be sufficient as the
* "core" component, if this follows a normal namming protocol should
* "core" component, if this follows a normal naming protocol should
* be shorter:
* axis2-saaj-1.4.1.jar
* axis2-1.4.1.jar <-----
* axis2-kernal-1.4.1.jar
* axis2-kernel-1.4.1.jar
*/
if (leftName.length() > rightName.length()) {
returnVal = false;
} else {
returnVal = true;
}
}
if (LogUtils.isVerboseLoggingEnabled()) {
final String msg = String.format("IsCore=%s (%s, %s)", returnVal, left.getFileName(), right.getFileName());
Logger.getLogger(DependencyBundlingAnalyzer.class.getName()).log(Level.FINE, msg);
returnVal = leftName.length() <= rightName.length();
}
LOGGER.debug("IsCore={} ({}, {})", returnVal, left.getFileName(), right.getFileName());
return returnVal;
}
/**
* Compares the SHA1 hashes of two dependencies to determine if they are equal.
*
* @param dependency1 a dependency object to compare
* @param dependency2 a dependency object to compare
* @return true if the sha1 hashes of the two dependencies match; otherwise false
*/
private boolean hashesMatch(Dependency dependency1, Dependency dependency2) {
if (dependency1 == null || dependency2 == null || dependency1.getSha1sum() == null || dependency2.getSha1sum() == null) {
return false;
}
return dependency1.getSha1sum().equals(dependency2.getSha1sum());
}
/**
* Determines if the jar is shaded and the created pom.xml identified the same CPE as the jar - if so, the pom.xml dependency
* should be removed.
*
* @param dependency a dependency to check
* @param nextDependency another dependency to check
* @return true if on of the dependencies is a pom.xml and the identifiers between the two collections match; otherwise false
*/
private boolean isShadedJar(Dependency dependency, Dependency nextDependency) {
final String mainName = dependency.getFileName().toLowerCase();
final String nextName = nextDependency.getFileName().toLowerCase();
if (mainName.endsWith(".jar") && nextName.endsWith("pom.xml")) {
return dependency.getIdentifiers().containsAll(nextDependency.getIdentifiers());
} else if (nextName.endsWith(".jar") && mainName.endsWith("pom.xml")) {
return nextDependency.getIdentifiers().containsAll(dependency.getIdentifiers());
}
return false;
}
/**
* Determines which path is shortest; if path lengths are equal then we use compareTo of the string method to determine if the
* first path is smaller.
*
* @param left the first path to compare
* @param right the second path to compare
* @return <code>true</code> if the leftPath is the shortest; otherwise <code>false</code>
*/
protected boolean firstPathIsShortest(String left, String right) {
final String leftPath = left.replace('\\', '/');
final String rightPath = right.replace('\\', '/');
final int leftCount = countChar(leftPath, '/');
final int rightCount = countChar(rightPath, '/');
if (leftCount == rightCount) {
return leftPath.compareTo(rightPath) <= 0;
} else {
return leftCount < rightCount;
}
}
/**
* Counts the number of times the character is present in the string.
*
* @param string the string to count the characters in
* @param c the character to count
* @return the number of times the character is present in the string
*/
private int countChar(String string, char c) {
int count = 0;
final int max = string.length();
for (int i = 0; i < max; i++) {
if (c == string.charAt(i)) {
count++;
}
}
return count;
}
/**
* Checks if the given file path is contained within a war or ear file.
*
* @param filePath the file path to check
* @return true if the path contains '.war\' or '.ear\'.
*/
private boolean containedInWar(String filePath) {
return filePath == null ? false : filePath.matches(".*\\.(ear|war)[\\\\/].*");
}
}

View File

@@ -1,23 +1,23 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.io.FileFilter;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
@@ -26,28 +26,35 @@ import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Identifier;
import org.owasp.dependencycheck.dependency.VulnerableSoftware;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* This analyzer attempts to remove some well known false positives -
* specifically regarding the java runtime.
* This analyzer attempts to remove some well known false positives - specifically regarding the java runtime.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class FalsePositiveAnalyzer extends AbstractAnalyzer {
//<editor-fold defaultstate="collapsed" desc="All standard implmentation details of Analyzer">
/**
* The set of file extensions supported by this analyzer.
* The Logger.
*/
private static final Set<String> EXTENSIONS = null;
private static final Logger LOGGER = LoggerFactory.getLogger(FalsePositiveAnalyzer.class);
/**
* The file filter used to find DLL and EXE.
*/
private static final FileFilter DLL_EXE_FILTER = FileFilterBuilder.newInstance().addExtensions("dll", "exe").build();
//<editor-fold defaultstate="collapsed" desc="All standard implementation details of Analyzer">
/**
* The name of the analyzer.
*/
@@ -57,73 +64,90 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer {
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.POST_IDENTIFIER_ANALYSIS;
/**
* Returns a list of file EXTENSIONS supported by this analyzer.
*
* @return a list of file EXTENSIONS supported by this analyzer.
*/
public Set<String> getSupportedExtensions() {
return EXTENSIONS;
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns whether or not this analyzer can process the given extension.
*
* @param extension the file extension to test for support
* @return whether or not the specified file extension is supported by this
* analyzer.
*/
public boolean supportsExtension(String extension) {
return true;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
//</editor-fold>
/**
* Analyzes the dependencies and removes bad/incorrect CPE associations
* based on various heuristics.
* Analyzes the dependencies and removes bad/incorrect CPE associations based on various heuristics.
*
* @param dependency the dependency to analyze.
* @param engine the engine that is scanning the dependencies
* @throws AnalysisException is thrown if there is an error reading the JAR
* file.
* @throws AnalysisException is thrown if there is an error reading the JAR file.
*/
@Override
public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
removeJreEntries(dependency);
removeBadMatches(dependency);
removeBadSpringMatches(dependency);
removeWrongVersionMatches(dependency);
removeSpuriousCPE(dependency);
removeDuplicativeEntriesFromJar(dependency, engine);
addFalseNegativeCPEs(dependency);
}
/**
* <p>Intended to remove spurious CPE entries. By spurious we mean
* duplicate, less specific CPE entries.</p>
* <p>Example:</p>
* Removes inaccurate matches on springframework CPEs.
*
* @param dependency the dependency to test for and remove known inaccurate CPE matches
*/
private void removeBadSpringMatches(Dependency dependency) {
String mustContain = null;
for (Identifier i : dependency.getIdentifiers()) {
if ("maven".contains(i.getType())) {
if (i.getValue() != null && i.getValue().startsWith("org.springframework.")) {
final int endPoint = i.getValue().indexOf(':', 19);
if (endPoint >= 0) {
mustContain = i.getValue().substring(19, endPoint).toLowerCase();
break;
}
}
}
}
if (mustContain != null) {
final Iterator<Identifier> itr = dependency.getIdentifiers().iterator();
while (itr.hasNext()) {
final Identifier i = itr.next();
if ("cpe".contains(i.getType())
&& i.getValue() != null
&& i.getValue().startsWith("cpe:/a:springsource:")
&& !i.getValue().toLowerCase().contains(mustContain)) {
itr.remove();
//dependency.getIdentifiers().remove(i);
}
}
}
}
/**
* <p>
* Intended to remove spurious CPE entries. By spurious we mean duplicate, less specific CPE entries.</p>
* <p>
* Example:</p>
* <code>
* cpe:/a:some-vendor:some-product
* cpe:/a:some-vendor:some-product:1.5
* cpe:/a:some-vendor:some-product:1.5.2
* </code>
* <p>Should be trimmed to:</p>
* <p>
* Should be trimmed to:</p>
* <code>
* cpe:/a:some-vendor:some-product:1.5.2
* </code>
@@ -132,8 +156,7 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer {
*/
@SuppressWarnings("null")
private void removeSpuriousCPE(Dependency dependency) {
final List<Identifier> ids = new ArrayList<Identifier>();
ids.addAll(dependency.getIdentifiers());
final List<Identifier> ids = new ArrayList<Identifier>(dependency.getIdentifiers());
Collections.sort(ids);
final ListIterator<Identifier> mainItr = ids.listIterator();
while (mainItr.hasNext()) {
@@ -157,8 +180,7 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer {
final String nextVersion = nextCpe.getVersion();
if (currentVersion == null && nextVersion == null) {
//how did we get here?
Logger.getLogger(FalsePositiveAnalyzer.class
.getName()).log(Level.FINE, "currentVersion and nextVersion are both null?");
LOGGER.debug("currentVersion and nextVersion are both null?");
} else if (currentVersion == null && nextVersion != null) {
dependency.getIdentifiers().remove(currentId);
} else if (nextVersion == null && currentVersion != null) {
@@ -178,20 +200,27 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer {
}
}
/**
* Regex to identify core java libraries and a few other commonly
* misidentified ones.
* Regex to identify core java libraries and a few other commonly misidentified ones.
*/
public static final Pattern CORE_JAVA = Pattern.compile("^cpe:/a:(sun|oracle|ibm):(j2[ems]e|"
+ "java(_platfrom_micro_edition|_runtime_environment|_se|virtual_machine|se_development_kit|fx)?|"
+ "jdk|jre|jsf|jsse)($|:.*)");
+ "java(_platform_micro_edition|_runtime_environment|_se|virtual_machine|se_development_kit|fx)?|"
+ "jdk|jre|jsse)($|:.*)");
/**
* Regex to identify core jsf libraries.
*/
public static final Pattern CORE_JAVA_JSF = Pattern.compile("^cpe:/a:(sun|oracle|ibm):jsf($|:.*)");
/**
* Regex to identify core java library files. This is currently incomplete.
*/
public static final Pattern CORE_FILES = Pattern.compile("^((alt[-])?rt|jsf[-].*|jsse|jfxrt|jfr|jce|javaws|deploy|charsets)\\.jar$");
public static final Pattern CORE_FILES = Pattern.compile("(^|/)((alt[-])?rt|jsse|jfxrt|jfr|jce|javaws|deploy|charsets)\\.jar$");
/**
* Regex to identify core jsf java library files. This is currently incomplete.
*/
public static final Pattern CORE_JSF_FILES = Pattern.compile("(^|/)jsf[-][^/]*\\.jar$");
/**
* Removes any CPE entries for the JDK/JRE unless the filename ends with
* rt.jar
* Removes any CPE entries for the JDK/JRE unless the filename ends with rt.jar
*
* @param dependency the dependency to remove JRE CPEs from
*/
@@ -205,27 +234,11 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer {
if (coreCPE.matches() && !coreFiles.matches()) {
itr.remove();
}
//replacecd with the regex above.
// if (("cpe:/a:sun:java".equals(i.getValue())
// || "cpe:/a:oracle:java".equals(i.getValue())
// || "cpe:/a:ibm:java".equals(i.getValue())
// || "cpe:/a:sun:j2se".equals(i.getValue())
// || "cpe:/a:oracle:j2se".equals(i.getValue())
// || i.getValue().startsWith("cpe:/a:sun:java:")
// || i.getValue().startsWith("cpe:/a:sun:j2se:")
// || i.getValue().startsWith("cpe:/a:sun:java:jre")
// || i.getValue().startsWith("cpe:/a:sun:java:jdk")
// || i.getValue().startsWith("cpe:/a:sun:java_se")
// || i.getValue().startsWith("cpe:/a:oracle:java_se")
// || i.getValue().startsWith("cpe:/a:oracle:java:")
// || i.getValue().startsWith("cpe:/a:oracle:j2se:")
// || i.getValue().startsWith("cpe:/a:oracle:jre")
// || i.getValue().startsWith("cpe:/a:oracle:jdk")
// || i.getValue().startsWith("cpe:/a:ibm:java:"))
// && !dependency.getFileName().toLowerCase().endsWith("rt.jar")) {
// itr.remove();
// }
final Matcher coreJsfCPE = CORE_JAVA_JSF.matcher(i.getValue());
final Matcher coreJsfFiles = CORE_JSF_FILES.matcher(dependency.getFileName());
if (coreJsfCPE.matches() && !coreJsfFiles.matches()) {
itr.remove();
}
}
}
@@ -244,16 +257,15 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer {
try {
cpe.parseName(value);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(FalsePositiveAnalyzer.class.getName()).log(Level.FINEST, null, ex);
LOGGER.trace("", ex);
return null;
}
return cpe;
}
/**
* Removes bad CPE matches for a dependency. Unfortunately, right now these
* are hard-coded patches for specific problems identified when testing this
* on a LARGE volume of jar files.
* Removes bad CPE matches for a dependency. Unfortunately, right now these are hard-coded patches for specific problems
* identified when testing this on a LARGE volume of jar files.
*
* @param dependency the dependency to analyze
*/
@@ -266,36 +278,69 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer {
* found based on LOW confidence evidence should have a different CPE type? (this
* might be a better solution then just removing the URL for "best-guess" matches).
*/
//Set<Evidence> groupId = dependency.getVendorEvidence().getEvidence("pom", "groupid");
//Set<Evidence> artifactId = dependency.getVendorEvidence().getEvidence("pom", "artifactid");
while (itr.hasNext()) {
final Identifier i = itr.next();
//TODO move this startswith expression to a configuration file?
//TODO move this startsWith expression to the base suppression file
if ("cpe".equals(i.getType())) {
if ((i.getValue().matches(".*c\\+\\+.*")
|| i.getValue().startsWith("cpe:/a:jquery:jquery")
|| i.getValue().startsWith("cpe:/a:prototypejs:prototype")
|| i.getValue().startsWith("cpe:/a:yahoo:yui")
|| i.getValue().startsWith("cpe:/a:file:file")
|| i.getValue().startsWith("cpe:/a:mozilla:mozilla")
|| i.getValue().startsWith("cpe:/a:cvs:cvs")
|| i.getValue().startsWith("cpe:/a:ftp:ftp")
|| i.getValue().startsWith("cpe:/a:ssh:ssh"))
&& dependency.getFileName().toLowerCase().endsWith(".jar")) {
|| i.getValue().startsWith("cpe:/a:tcp:tcp")
|| i.getValue().startsWith("cpe:/a:ssh:ssh")
|| i.getValue().startsWith("cpe:/a:lookup:lookup"))
&& (dependency.getFileName().toLowerCase().endsWith(".jar")
|| dependency.getFileName().toLowerCase().endsWith("pom.xml")
|| dependency.getFileName().toLowerCase().endsWith(".dll")
|| dependency.getFileName().toLowerCase().endsWith(".exe")
|| dependency.getFileName().toLowerCase().endsWith(".nuspec")
|| dependency.getFileName().toLowerCase().endsWith(".zip")
|| dependency.getFileName().toLowerCase().endsWith(".sar")
|| dependency.getFileName().toLowerCase().endsWith(".apk")
|| dependency.getFileName().toLowerCase().endsWith(".tar")
|| dependency.getFileName().toLowerCase().endsWith(".gz")
|| dependency.getFileName().toLowerCase().endsWith(".tgz")
|| dependency.getFileName().toLowerCase().endsWith(".ear")
|| dependency.getFileName().toLowerCase().endsWith(".war"))) {
itr.remove();
} else if ((i.getValue().startsWith("cpe:/a:jquery:jquery")
|| i.getValue().startsWith("cpe:/a:prototypejs:prototype")
|| i.getValue().startsWith("cpe:/a:yahoo:yui"))
&& (dependency.getFileName().toLowerCase().endsWith(".jar")
|| dependency.getFileName().toLowerCase().endsWith("pom.xml")
|| dependency.getFileName().toLowerCase().endsWith(".dll")
|| dependency.getFileName().toLowerCase().endsWith(".exe"))) {
itr.remove();
} else if ((i.getValue().startsWith("cpe:/a:microsoft:excel")
|| i.getValue().startsWith("cpe:/a:microsoft:word")
|| i.getValue().startsWith("cpe:/a:microsoft:visio")
|| i.getValue().startsWith("cpe:/a:microsoft:powerpoint")
|| i.getValue().startsWith("cpe:/a:microsoft:office")
|| i.getValue().startsWith("cpe:/a:core_ftp:core_ftp"))
&& (dependency.getFileName().toLowerCase().endsWith(".jar")
|| dependency.getFileName().toLowerCase().endsWith(".ear")
|| dependency.getFileName().toLowerCase().endsWith(".war")
|| dependency.getFileName().toLowerCase().endsWith("pom.xml"))) {
itr.remove();
} else if (i.getValue().startsWith("cpe:/a:apache:maven")
&& !dependency.getFileName().toLowerCase().matches("maven-core-[\\d\\.]+\\.jar")) {
itr.remove();
} else if (i.getValue().startsWith("cpe:/a:m-core:m-core")
&& !dependency.getEvidenceUsed().containsUsedString("m-core")) {
itr.remove();
} else if (i.getValue().startsWith("cpe:/a:jboss:jboss")
&& !dependency.getFileName().toLowerCase().matches("jboss-?[\\d\\.-]+(GA)?\\.jar")) {
itr.remove();
}
}
}
}
/**
* Removes CPE matches for the wrong version of a dependency. Currently,
* this only covers Axis 1 & 2.
* Removes CPE matches for the wrong version of a dependency. Currently, this only covers Axis 1 & 2.
*
* @param dependency the dependency to analyze
*/
@@ -328,44 +373,111 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer {
}
/**
* There are some known CPE entries, specifically regarding sun and oracle
* products due to the acquisition and changes in product names, that based
* on given evidence we can add the related CPE entries to ensure a complete
* list of CVE entries.
* There are some known CPE entries, specifically regarding sun and oracle products due to the acquisition and changes in
* product names, that based on given evidence we can add the related CPE entries to ensure a complete list of CVE entries.
*
* @param dependency the dependency being analyzed
*/
private void addFalseNegativeCPEs(Dependency dependency) {
final Iterator<Identifier> itr = dependency.getIdentifiers().iterator();
while (itr.hasNext()) {
final Identifier i = itr.next();
if ("cpe".equals(i.getType()) && i.getValue() != null
&& (i.getValue().startsWith("cpe:/a:oracle:opensso:")
|| i.getValue().startsWith("cpe:/a:oracle:opensso_enterprise:")
|| i.getValue().startsWith("cpe:/a:sun:opensso_enterprise:")
|| i.getValue().startsWith("cpe:/a:sun:opensso:"))) {
final String newCpe = String.format("cpe:/a:sun:opensso_enterprise:%s", i.getValue().substring(22));
final String newCpe2 = String.format("cpe:/a:oracle:opensso_enterprise:%s", i.getValue().substring(22));
final String newCpe3 = String.format("cpe:/a:sun:opensso:%s", i.getValue().substring(22));
final String newCpe4 = String.format("cpe:/a:oracle:opensso:%s", i.getValue().substring(22));
//TODO move this to the hint analyzer
for (final Identifier identifier : dependency.getIdentifiers()) {
if ("cpe".equals(identifier.getType()) && identifier.getValue() != null
&& (identifier.getValue().startsWith("cpe:/a:oracle:opensso:")
|| identifier.getValue().startsWith("cpe:/a:oracle:opensso_enterprise:")
|| identifier.getValue().startsWith("cpe:/a:sun:opensso_enterprise:")
|| identifier.getValue().startsWith("cpe:/a:sun:opensso:"))) {
final String newCpe = String.format("cpe:/a:sun:opensso_enterprise:%s", identifier.getValue().substring(22));
final String newCpe2 = String.format("cpe:/a:oracle:opensso_enterprise:%s", identifier.getValue().substring(22));
final String newCpe3 = String.format("cpe:/a:sun:opensso:%s", identifier.getValue().substring(22));
final String newCpe4 = String.format("cpe:/a:oracle:opensso:%s", identifier.getValue().substring(22));
try {
dependency.addIdentifier("cpe",
newCpe,
String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe, "UTF-8")));
String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe, "UTF-8")));
dependency.addIdentifier("cpe",
newCpe2,
String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe2, "UTF-8")));
String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe2, "UTF-8")));
dependency.addIdentifier("cpe",
newCpe3,
String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe3, "UTF-8")));
String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe3, "UTF-8")));
dependency.addIdentifier("cpe",
newCpe4,
String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe4, "UTF-8")));
String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe4, "UTF-8")));
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(FalsePositiveAnalyzer.class
.getName()).log(Level.FINE, null, ex);
LOGGER.debug("", ex);
}
}
}
}
/**
* Removes duplicate entries identified that are contained within JAR files. These occasionally crop up due to POM entries or
* other types of files (such as DLLs and EXEs) being contained within the JAR.
*
* @param dependency the dependency that might be a duplicate
* @param engine the engine used to scan all dependencies
*/
private void removeDuplicativeEntriesFromJar(Dependency dependency, Engine engine) {
if (dependency.getFileName().toLowerCase().endsWith("pom.xml")
|| DLL_EXE_FILTER.accept(dependency.getActualFile())) {
String parentPath = dependency.getFilePath().toLowerCase();
if (parentPath.contains(".jar")) {
parentPath = parentPath.substring(0, parentPath.indexOf(".jar") + 4);
final Dependency parent = findDependency(parentPath, engine.getDependencies());
if (parent != null) {
boolean remove = false;
for (Identifier i : dependency.getIdentifiers()) {
if ("cpe".equals(i.getType())) {
final String trimmedCPE = trimCpeToVendor(i.getValue());
for (Identifier parentId : parent.getIdentifiers()) {
if ("cpe".equals(parentId.getType()) && parentId.getValue().startsWith(trimmedCPE)) {
remove |= true;
}
}
}
if (!remove) { //we can escape early
return;
}
}
if (remove) {
engine.getDependencies().remove(dependency);
}
}
}
}
}
/**
* Retrieves a given dependency, based on a given path, from a list of dependencies.
*
* @param dependencyPath the path of the dependency to return
* @param dependencies the collection of dependencies to search
* @return the dependency object for the given path, otherwise null
*/
private Dependency findDependency(String dependencyPath, List<Dependency> dependencies) {
for (Dependency d : dependencies) {
if (d.getFilePath().equalsIgnoreCase(dependencyPath)) {
return d;
}
}
return null;
}
/**
* Takes a full CPE and returns the CPE trimmed to include only vendor and product.
*
* @param value the CPE value to trim
* @return a CPE value that only includes the vendor and product
*/
private String trimCpeToVendor(String value) {
//cpe:/a:jruby:jruby:1.0.8
final int pos1 = value.indexOf(':', 7); //right of vendor
final int pos2 = value.indexOf(':', pos1 + 1); //right of product
if (pos2 < 0) {
return value;
} else {
return value.substring(0, pos2);
}
}
}

View File

@@ -1,28 +1,30 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.io.File;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Evidence;
import java.util.Set;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.filefilter.NameFileFilter;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.utils.DependencyVersion;
import org.owasp.dependencycheck.utils.DependencyVersionUtil;
@@ -30,11 +32,11 @@ import org.owasp.dependencycheck.utils.DependencyVersionUtil;
*
* Takes a dependency and analyzes the filename and determines the hashes.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class FileNameAnalyzer extends AbstractAnalyzer implements Analyzer {
//<editor-fold defaultstate="collapsed" desc="All standard implmentation details of Analyzer">
//<editor-fold defaultstate="collapsed" desc="All standard implementation details of Analyzer">
/**
* The name of the analyzer.
*/
@@ -43,91 +45,77 @@ public class FileNameAnalyzer extends AbstractAnalyzer implements Analyzer {
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The set of file extensions supported by this analyzer.
*/
private static final Set<String> EXTENSIONS = null;
/**
* Returns a list of file EXTENSIONS supported by this analyzer.
*
* @return a list of file EXTENSIONS supported by this analyzer.
*/
public Set<String> getSupportedExtensions() {
return EXTENSIONS;
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns whether or not this analyzer can process the given extension.
*
* @param extension the file extension to test for support.
* @return whether or not the specified file extension is supported by this
* analyzer.
*/
public boolean supportsExtension(String extension) {
return true;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
//</editor-fold>
// Python init files
private static final NameFileFilter IGNORED_FILES = new NameFileFilter(new String[] {
"__init__.py",
"__init__.pyc",
"__init__.pyo"
});
/**
* Collects information about the file name.
*
* @param dependency the dependency to analyze.
* @param engine the engine that is scanning the dependencies
* @throws AnalysisException is thrown if there is an error reading the JAR
* file.
* @throws AnalysisException is thrown if there is an error reading the JAR file.
*/
@Override
public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
//strip any path information that may get added by ArchiveAnalyzer, etc.
final File f = new File(dependency.getFileName());
String fileName = f.getName();
//remove file extension
final int pos = fileName.lastIndexOf(".");
if (pos > 0) {
fileName = fileName.substring(0, pos);
}
final File f = dependency.getActualFile();
final String fileName = FilenameUtils.removeExtension(f.getName());
//add version evidence
final DependencyVersion version = DependencyVersionUtil.parseVersion(fileName);
if (version != null) {
// If the version number is just a number like 2 or 23, reduce the confidence
// a shade. This should hopefully correct for cases like log4j.jar or
// struts2-core.jar
if (version.getVersionParts() == null || version.getVersionParts().size() < 2) {
dependency.getVersionEvidence().addEvidence("file", "name",
version.toString(), Confidence.MEDIUM);
} else {
dependency.getVersionEvidence().addEvidence("file", "name",
version.toString(), Confidence.HIGHEST);
}
dependency.getVersionEvidence().addEvidence("file", "name",
version.toString(), Evidence.Confidence.HIGHEST);
dependency.getVersionEvidence().addEvidence("file", "name",
fileName, Evidence.Confidence.MEDIUM);
fileName, Confidence.MEDIUM);
}
//add as vendor and product evidence
if (fileName.contains("-")) {
dependency.getProductEvidence().addEvidence("file", "name",
fileName, Evidence.Confidence.HIGHEST);
fileName, Confidence.HIGHEST);
dependency.getVendorEvidence().addEvidence("file", "name",
fileName, Evidence.Confidence.HIGHEST);
} else {
fileName, Confidence.HIGHEST);
} else if (!IGNORED_FILES.accept(f)) {
dependency.getProductEvidence().addEvidence("file", "name",
fileName, Evidence.Confidence.HIGH);
fileName, Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("file", "name",
fileName, Evidence.Confidence.HIGH);
fileName, Confidence.HIGH);
}
}
}

View File

@@ -0,0 +1,33 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2014 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.io.FileFilter;
/**
* An Analyzer that scans specific file types.
*
* @author Jeremy Long
*/
public interface FileTypeAnalyzer extends Analyzer, FileFilter {
/**
* Resets the analyzers state.
*/
void reset();
}

View File

@@ -1,18 +1,17 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
@@ -20,18 +19,21 @@ package org.owasp.dependencycheck.analyzer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Evidence;
/**
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class HintAnalyzer extends AbstractAnalyzer implements Analyzer {
//<editor-fold defaultstate="collapsed" desc="All standard implmentation details of Analyzer">
//<editor-fold defaultstate="collapsed" desc="All standard implementation details of Analyzer">
/**
* The name of the analyzer.
*/
@@ -40,91 +42,122 @@ public class HintAnalyzer extends AbstractAnalyzer implements Analyzer {
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.PRE_IDENTIFIER_ANALYSIS;
/**
* The set of file extensions supported by this analyzer.
*/
private static final Set<String> EXTENSIONS = null;
/**
* Returns a list of file EXTENSIONS supported by this analyzer.
*
* @return a list of file EXTENSIONS supported by this analyzer.
*/
public Set<String> getSupportedExtensions() {
return EXTENSIONS;
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns whether or not this analyzer can process the given extension.
*
* @param extension the file extension to test for support.
* @return whether or not the specified file extension is supported by this
* analyzer.
*/
public boolean supportsExtension(String extension) {
return true;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
//</editor-fold>
/**
* The HintAnalyzer uses knowledge about a dependency to add additional
* information to help in identification of identifiers or vulnerabilities.
* The HintAnalyzer uses knowledge about a dependency to add additional information to help in identification of identifiers
* or vulnerabilities.
*
* @param dependency The dependency being analyzed
* @param engine The scanning engine
* @throws AnalysisException is thrown if there is an exception analyzing
* the dependency.
* @throws AnalysisException is thrown if there is an exception analyzing the dependency.
*/
@Override
public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
final Evidence springTest1 = new Evidence("Manifest",
"Implementation-Title",
"Spring Framework",
Evidence.Confidence.HIGH);
Confidence.HIGH);
final Evidence springTest2 = new Evidence("Manifest",
"Implementation-Title",
"org.springframework.core",
Evidence.Confidence.HIGH);
Confidence.HIGH);
final Evidence springTest3 = new Evidence("Manifest",
"Bundle-Vendor",
"SpringSource",
Evidence.Confidence.HIGH);
"Implementation-Title",
"spring-core",
Confidence.HIGH);
final Evidence springTest4 = new Evidence("jar",
"package name",
"springframework",
Confidence.LOW);
Set<Evidence> evidence = dependency.getProductEvidence().getEvidence();
if (evidence.contains(springTest1) || evidence.contains(springTest2)) {
dependency.getProductEvidence().addEvidence("hint analyzer", "product", "springsource_spring_framework", Evidence.Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "SpringSource", Evidence.Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "vmware", Evidence.Confidence.HIGH);
final Evidence springSecurityTest1 = new Evidence("Manifest",
"Bundle-Name",
"Spring Security Core",
Confidence.MEDIUM);
final Evidence springSecurityTest2 = new Evidence("pom",
"artifactid",
"spring-security-core",
Confidence.HIGH);
final Evidence symfony = new Evidence("composer.lock",
"vendor",
"symfony",
Confidence.HIGHEST);
final Evidence zendframeworkVendor = new Evidence("composer.lock",
"vendor",
"zendframework",
Confidence.HIGHEST);
final Evidence zendframeworkProduct = new Evidence("composer.lock",
"product",
"zendframework",
Confidence.HIGHEST);
//springsource/vware problem
final Set<Evidence> product = dependency.getProductEvidence().getEvidence();
final Set<Evidence> vendor = dependency.getVendorEvidence().getEvidence();
if (product.contains(springTest1) || product.contains(springTest2) || product.contains(springTest3)
|| (dependency.getFileName().contains("spring") && product.contains(springTest4))) {
dependency.getProductEvidence().addEvidence("hint analyzer", "product", "springsource spring framework", Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "SpringSource", Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "vmware", Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "pivotal", Confidence.HIGH);
}
evidence = dependency.getVendorEvidence().getEvidence();
if (evidence.contains(springTest3)) {
dependency.getProductEvidence().addEvidence("hint analyzer", "product", "springsource_spring_framework", Evidence.Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "vmware", Evidence.Confidence.HIGH);
if (vendor.contains(springTest4)) {
dependency.getProductEvidence().addEvidence("hint analyzer", "product", "springsource_spring_framework", Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "vmware", Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "pivotal", Confidence.HIGH);
}
if (product.contains(springSecurityTest1) || product.contains(springSecurityTest2)) {
dependency.getProductEvidence().addEvidence("hint analyzer", "product", "springsource_spring_security", Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "SpringSource", Confidence.HIGH);
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "vmware", Confidence.HIGH);
}
if (vendor.contains(symfony)) {
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "sensiolabs", Confidence.HIGHEST);
}
if (vendor.contains(zendframeworkVendor)) {
dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "zend", Confidence.HIGHEST);
}
if (product.contains(zendframeworkProduct)) {
dependency.getProductEvidence().addEvidence("hint analyzer", "vendor", "zend_framework", Confidence.HIGHEST);
}
//sun/oracle problem
final Iterator<Evidence> itr = dependency.getVendorEvidence().iterator();
final ArrayList<Evidence> newEntries = new ArrayList<Evidence>();
final List<Evidence> newEntries = new ArrayList<Evidence>();
while (itr.hasNext()) {
final Evidence e = itr.next();
if ("sun".equalsIgnoreCase(e.getValue(false))) {
@@ -139,6 +172,5 @@ public class HintAnalyzer extends AbstractAnalyzer implements Analyzer {
dependency.getVendorEvidence().addEvidence(e);
}
}
}

View File

@@ -1,122 +0,0 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.dependency.Dependency;
import java.util.Set;
import java.util.regex.Pattern;
/**
*
* Used to load a JAR file and collect information that can be used to determine
* the associated CPE.
*
* @author Jeremy Long (jeremy.long@owasp.org)
*/
public class JavaScriptAnalyzer extends AbstractAnalyzer implements Analyzer {
//<editor-fold defaultstate="collapsed" desc="All standard implmentation details of Analyzer">
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "JavaScript Analyzer";
/**
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The set of file extensions supported by this analyzer.
*/
private static final Set<String> EXTENSIONS = newHashSet("js");
/**
* Returns a list of file EXTENSIONS supported by this analyzer.
*
* @return a list of file EXTENSIONS supported by this analyzer.
*/
public Set<String> getSupportedExtensions() {
return EXTENSIONS;
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns whether or not this analyzer can process the given extension.
*
* @param extension the file extension to test for support.
* @return whether or not the specified file extension is supported by this
* analyzer.
*/
public boolean supportsExtension(String extension) {
return EXTENSIONS.contains(extension);
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
//</editor-fold>
/**
* Loads a specified JAR file and collects information from the manifest and
* checksums to identify the correct CPE information.
*
* @param dependency the dependency to analyze.
* @param engine the engine that is scanning the dependencies
* @throws AnalysisException is thrown if there is an error reading the JAR
* file.
*/
@Override
public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
final Pattern extractComments = Pattern.compile("(/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/)|(//.*)");
}
/**
* The initialize method does nothing for this Analyzer.
*
* @throws Exception thrown if there is an exception
*/
@Override
public void initialize() throws Exception {
//do nothing
}
/**
* The close method does nothing for this Analyzer.
*
* @throws Exception thrown if there is an exception
*/
@Override
public void close() throws Exception {
//do nothing
}
}

View File

@@ -0,0 +1,260 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2014 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.data.nexus.MavenArtifact;
import org.owasp.dependencycheck.data.nexus.NexusSearch;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Evidence;
import org.owasp.dependencycheck.xml.pom.PomUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.owasp.dependencycheck.utils.DownloadFailedException;
import org.owasp.dependencycheck.utils.Downloader;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.InvalidSettingException;
import org.owasp.dependencycheck.utils.Settings;
/**
* Analyzer which will attempt to locate a dependency on a Nexus service by SHA-1 digest of the dependency.
*
* There are two settings which govern this behavior:
*
* <ul>
* <li>{@link org.owasp.dependencycheck.utils.Settings.KEYS#ANALYZER_NEXUS_ENABLED} determines whether this analyzer is even
* enabled. This can be overridden by setting the system property.</li>
* <li>{@link org.owasp.dependencycheck.utils.Settings.KEYS#ANALYZER_NEXUS_URL} the URL to a Nexus service to search by SHA-1.
* There is an expected <code>%s</code> in this where the SHA-1 will get entered.</li>
* </ul>
*
* @author colezlaw
*/
public class NexusAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The default URL - this will be used by the CentralAnalyzer to determine whether to enable this.
*/
public static final String DEFAULT_URL = "https://repository.sonatype.org/service/local/";
/**
* The logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(NexusAnalyzer.class);
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Nexus Analyzer";
/**
* The phase in which the analyzer runs.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The types of files on which this will work.
*/
private static final String SUPPORTED_EXTENSIONS = "jar";
/**
* The Nexus Search to be set up for this analyzer.
*/
private NexusSearch searcher;
/**
* Field indicating if the analyzer is enabled.
*/
private final boolean enabled = checkEnabled();
/**
* Determines if this analyzer is enabled
*
* @return <code>true</code> if the analyzer is enabled; otherwise <code>false</code>
*/
private boolean checkEnabled() {
/* Enable this analyzer ONLY if the Nexus URL has been set to something
other than the default one (if it's the default one, we'll use the
central one) and it's enabled by the user.
*/
boolean retval = false;
try {
if (!DEFAULT_URL.equals(Settings.getString(Settings.KEYS.ANALYZER_NEXUS_URL))
&& Settings.getBoolean(Settings.KEYS.ANALYZER_NEXUS_ENABLED)) {
LOGGER.info("Enabling Nexus analyzer");
retval = true;
} else {
LOGGER.debug("Nexus analyzer disabled, using Central instead");
}
} catch (InvalidSettingException ise) {
LOGGER.warn("Invalid setting. Disabling Nexus analyzer");
}
return retval;
}
/**
* Determine whether to enable this analyzer or not.
*
* @return whether the analyzer should be enabled
*/
@Override
public boolean isEnabled() {
return enabled;
}
/**
* Initializes the analyzer once before any analysis is performed.
*
* @throws Exception if there's an error during initialization
*/
@Override
public void initializeFileTypeAnalyzer() throws Exception {
LOGGER.debug("Initializing Nexus Analyzer");
LOGGER.debug("Nexus Analyzer enabled: {}", isEnabled());
if (isEnabled()) {
final String searchUrl = Settings.getString(Settings.KEYS.ANALYZER_NEXUS_URL);
LOGGER.debug("Nexus Analyzer URL: {}", searchUrl);
try {
searcher = new NexusSearch(new URL(searchUrl));
if (!searcher.preflightRequest()) {
LOGGER.warn("There was an issue getting Nexus status. Disabling analyzer.");
setEnabled(false);
}
} catch (MalformedURLException mue) {
// I know that initialize can throw an exception, but we'll
// just disable the analyzer if the URL isn't valid
LOGGER.warn("Property {} not a valid URL. Nexus Analyzer disabled", searchUrl);
setEnabled(false);
}
}
}
/**
* Returns the analyzer's name.
*
* @return the name of the analyzer
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_NEXUS_ENABLED;
}
/**
* Returns the analysis phase under which the analyzer runs.
*
* @return the phase under which this analyzer runs
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* The file filter used to determine which files this analyzer supports.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addExtensions(SUPPORTED_EXTENSIONS).build();
/**
* Returns the FileFilter
*
* @return the FileFilter
*/
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* Performs the analysis.
*
* @param dependency the dependency to analyze
* @param engine the engine
* @throws AnalysisException when there's an exception during analysis
*/
@Override
public void analyzeFileType(Dependency dependency, Engine engine) throws AnalysisException {
if (!isEnabled()) {
return;
}
try {
final MavenArtifact ma = searcher.searchSha1(dependency.getSha1sum());
dependency.addAsEvidence("nexus", ma, Confidence.HIGH);
boolean pomAnalyzed = false;
LOGGER.debug("POM URL {}", ma.getPomUrl());
for (Evidence e : dependency.getVendorEvidence()) {
if ("pom".equals(e.getSource())) {
pomAnalyzed = true;
break;
}
}
if (!pomAnalyzed && ma.getPomUrl() != null) {
File pomFile = null;
try {
final File baseDir = Settings.getTempDirectory();
pomFile = File.createTempFile("pom", ".xml", baseDir);
if (!pomFile.delete()) {
LOGGER.warn("Unable to fetch pom.xml for {} from Nexus repository; "
+ "this could result in undetected CPE/CVEs.", dependency.getFileName());
LOGGER.debug("Unable to delete temp file");
}
LOGGER.debug("Downloading {}", ma.getPomUrl());
Downloader.fetchFile(new URL(ma.getPomUrl()), pomFile);
PomUtils.analyzePOM(dependency, pomFile);
} catch (DownloadFailedException ex) {
LOGGER.warn("Unable to download pom.xml for {} from Nexus repository; "
+ "this could result in undetected CPE/CVEs.", dependency.getFileName());
} finally {
if (pomFile != null && !FileUtils.deleteQuietly(pomFile)) {
pomFile.deleteOnExit();
}
}
}
} catch (IllegalArgumentException iae) {
//dependency.addAnalysisException(new AnalysisException("Invalid SHA-1"));
LOGGER.info("invalid sha-1 hash on {}", dependency.getFileName());
} catch (FileNotFoundException fnfe) {
//dependency.addAnalysisException(new AnalysisException("Artifact not found on repository"));
LOGGER.debug("Artifact not found in repository '{}'", dependency.getFileName());
LOGGER.debug(fnfe.getMessage(), fnfe);
} catch (IOException ioe) {
//dependency.addAnalysisException(new AnalysisException("Could not connect to repository", ioe));
LOGGER.debug("Could not connect to nexus repository", ioe);
}
}
}

View File

@@ -0,0 +1,187 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Institute for Defense Analyses. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.EvidenceCollection;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Map;
import javax.json.Json;
import javax.json.JsonException;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonString;
import javax.json.JsonValue;
/**
* Used to analyze Node Package Manager (npm) package.json files, and collect information that can be used to determine the
* associated CPE.
*
* @author Dale Visser
*/
public class NodePackageAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(NodePackageAnalyzer.class);
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Node.js Package Analyzer";
/**
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The file name to scan.
*/
public static final String PACKAGE_JSON = "package.json";
/**
* Filter that detects files named "package.json".
*/
private static final FileFilter PACKAGE_JSON_FILTER = FileFilterBuilder.newInstance()
.addFilenames(PACKAGE_JSON).build();
/**
* Returns the FileFilter
*
* @return the FileFilter
*/
@Override
protected FileFilter getFileFilter() {
return PACKAGE_JSON_FILTER;
}
@Override
protected void initializeFileTypeAnalyzer() throws Exception {
// NO-OP
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED;
}
@Override
protected void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
final File file = dependency.getActualFile();
JsonReader jsonReader;
try {
jsonReader = Json.createReader(FileUtils.openInputStream(file));
} catch (IOException e) {
throw new AnalysisException(
"Problem occurred while reading dependency file.", e);
}
try {
final JsonObject json = jsonReader.readObject();
final EvidenceCollection productEvidence = dependency.getProductEvidence();
final EvidenceCollection vendorEvidence = dependency.getVendorEvidence();
if (json.containsKey("name")) {
final Object value = json.get("name");
if (value instanceof JsonString) {
final String valueString = ((JsonString) value).getString();
productEvidence.addEvidence(PACKAGE_JSON, "name", valueString, Confidence.HIGHEST);
vendorEvidence.addEvidence(PACKAGE_JSON, "name_project", String.format("%s_project", valueString), Confidence.LOW);
} else {
LOGGER.warn("JSON value not string as expected: {}", value);
}
}
addToEvidence(json, productEvidence, "description");
addToEvidence(json, vendorEvidence, "author");
addToEvidence(json, dependency.getVersionEvidence(), "version");
dependency.setDisplayFileName(String.format("%s/%s", file.getParentFile().getName(), file.getName()));
} catch (JsonException e) {
LOGGER.warn("Failed to parse package.json file.", e);
} finally {
jsonReader.close();
}
}
/**
* Adds information to an evidence collection from the node json configuration.
*
* @param json information from node.js
* @param collection a set of evidence about a dependency
* @param key the key to obtain the data from the json information
*/
private void addToEvidence(JsonObject json, EvidenceCollection collection, String key) {
if (json.containsKey(key)) {
final JsonValue value = json.get(key);
if (value instanceof JsonString) {
collection.addEvidence(PACKAGE_JSON, key, ((JsonString) value).getString(), Confidence.HIGHEST);
} else if (value instanceof JsonObject) {
final JsonObject jsonObject = (JsonObject) value;
for (final Map.Entry<String, JsonValue> entry : jsonObject.entrySet()) {
final String property = entry.getKey();
final JsonValue subValue = entry.getValue();
if (subValue instanceof JsonString) {
collection.addEvidence(PACKAGE_JSON,
String.format("%s.%s", key, property),
((JsonString) subValue).getString(),
Confidence.HIGHEST);
} else {
LOGGER.warn("JSON sub-value not string as expected: {}", subValue);
}
}
} else {
LOGGER.warn("JSON value not string or JSON object as expected: {}", value);
}
}
}
}

View File

@@ -0,0 +1,164 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2014 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.data.nuget.NugetPackage;
import org.owasp.dependencycheck.data.nuget.NuspecParseException;
import org.owasp.dependencycheck.data.nuget.NuspecParser;
import org.owasp.dependencycheck.data.nuget.XPathNuspecParser;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* Analyzer which will parse a Nuspec file to gather module information.
*
* @author colezlaw
*/
public class NuspecAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(NuspecAnalyzer.class);
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Nuspec Analyzer";
/**
* The phase in which the analyzer runs.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The types of files on which this will work.
*/
private static final String SUPPORTED_EXTENSIONS = "nuspec";
/**
* Initializes the analyzer once before any analysis is performed.
*
* @throws Exception if there's an error during initialization
*/
@Override
public void initializeFileTypeAnalyzer() throws Exception {
}
/**
* Returns the analyzer's name.
*
* @return the name of the analyzer
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_NUSPEC_ENABLED;
}
/**
* Returns the analysis phase under which the analyzer runs.
*
* @return the phase under which this analyzer runs
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* The file filter used to determine which files this analyzer supports.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addExtensions(
SUPPORTED_EXTENSIONS).build();
/**
* Returns the FileFilter
*
* @return the FileFilter
*/
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* Performs the analysis.
*
* @param dependency the dependency to analyze
* @param engine the engine
* @throws AnalysisException when there's an exception during analysis
*/
@Override
public void analyzeFileType(Dependency dependency, Engine engine) throws AnalysisException {
LOGGER.debug("Checking Nuspec file {}", dependency);
try {
final NuspecParser parser = new XPathNuspecParser();
NugetPackage np = null;
FileInputStream fis = null;
try {
fis = new FileInputStream(dependency.getActualFilePath());
np = parser.parse(fis);
} catch (NuspecParseException ex) {
throw new AnalysisException(ex);
} catch (FileNotFoundException ex) {
throw new AnalysisException(ex);
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
LOGGER.debug("Error closing input stream");
}
}
}
if (np.getOwners() != null) {
dependency.getVendorEvidence().addEvidence("nuspec", "owners", np.getOwners(), Confidence.HIGHEST);
}
dependency.getVendorEvidence().addEvidence("nuspec", "authors", np.getAuthors(), Confidence.HIGH);
dependency.getVersionEvidence().addEvidence("nuspec", "version", np.getVersion(), Confidence.HIGHEST);
dependency.getProductEvidence().addEvidence("nuspec", "id", np.getId(), Confidence.HIGHEST);
if (np.getTitle() != null) {
dependency.getProductEvidence().addEvidence("nuspec", "title", np.getTitle(), Confidence.MEDIUM);
}
} catch (Throwable e) {
throw new AnalysisException(e);
}
}
}

View File

@@ -1,18 +1,17 @@
/*
* This file is part of dependency-check-core.
*
* Dependency-check-core is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Dependency-check-core is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License along with
* dependency-check-core. If not, see http://www.gnu.org/licenses/.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2012 Jeremy Long. All Rights Reserved.
*/
@@ -21,20 +20,19 @@ package org.owasp.dependencycheck.analyzer;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.Set;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Vulnerability;
import org.owasp.dependencycheck.dependency.Identifier;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.data.nvdcve.CveDB;
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Identifier;
import org.owasp.dependencycheck.dependency.Vulnerability;
/**
* NvdCveAnalyzer is a utility class that takes a project dependency and
* attempts to discern if there is an associated CVEs. It uses the the
* identifiers found by other analyzers to lookup the CVE data.
* NvdCveAnalyzer is a utility class that takes a project dependency and attempts to discern if there is an associated
* CVEs. It uses the the identifiers found by other analyzers to lookup the CVE data.
*
* @author Jeremy Long (jeremy.long@owasp.org)
* @author Jeremy Long
*/
public class NvdCveAnalyzer implements Analyzer {
@@ -53,8 +51,7 @@ public class NvdCveAnalyzer implements Analyzer {
* @throws SQLException thrown when there is a SQL Exception
* @throws IOException thrown when there is an IO Exception
* @throws DatabaseException thrown when there is a database exceptions
* @throws ClassNotFoundException thrown if the h2 database driver cannot be
* loaded
* @throws ClassNotFoundException thrown if the h2 database driver cannot be loaded
*/
public void open() throws SQLException, IOException, DatabaseException, ClassNotFoundException {
cveDB = new CveDB();
@@ -64,6 +61,7 @@ public class NvdCveAnalyzer implements Analyzer {
/**
* Closes the data source.
*/
@Override
public void close() {
cveDB.close();
cveDB = null;
@@ -75,7 +73,7 @@ public class NvdCveAnalyzer implements Analyzer {
* @return true or false.
*/
public boolean isOpen() {
return (cveDB != null);
return cveDB != null;
}
/**
@@ -92,14 +90,13 @@ public class NvdCveAnalyzer implements Analyzer {
}
/**
* Analyzes a dependency and attempts to determine if there are any CPE
* identifiers for this dependency.
* Analyzes a dependency and attempts to determine if there are any CPE identifiers for this dependency.
*
* @param dependency The Dependency to analyze
* @param engine The analysis engine
* @throws AnalysisException is thrown if there is an issue analyzing the
* dependency
* @throws AnalysisException is thrown if there is an issue analyzing the dependency
*/
@Override
public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
for (Identifier id : dependency.getIdentifiers()) {
if ("cpe".equals(id.getType())) {
@@ -107,13 +104,17 @@ public class NvdCveAnalyzer implements Analyzer {
final String value = id.getValue();
final List<Vulnerability> vulns = cveDB.getVulnerabilities(value);
dependency.getVulnerabilities().addAll(vulns);
//TODO - remove this comment block after additional testing is completed
//note - valid match functionality has been moved into the CveDB class.
//// for (Vulnerability v : vulns) {
//// if (isValidMatch(dependency, v)) {
//// dependency.addVulnerability(v);
//// }
//// }
} catch (DatabaseException ex) {
throw new AnalysisException(ex);
}
}
}
for (Identifier id : dependency.getSuppressedIdentifiers()) {
if ("cpe".equals(id.getType())) {
try {
final String value = id.getValue();
final List<Vulnerability> vulns = cveDB.getVulnerabilities(value);
dependency.getSuppressedVulnerabilities().addAll(vulns);
} catch (DatabaseException ex) {
throw new AnalysisException(ex);
}
@@ -121,102 +122,33 @@ public class NvdCveAnalyzer implements Analyzer {
}
}
/**
* Returns true because this analyzer supports all dependency types.
*
* @return true.
*/
public Set<String> getSupportedExtensions() {
return null;
}
/**
* Returns the name of this analyzer.
*
* @return the name of this analyzer.
*/
@Override
public String getName() {
return "NVD CVE Analyzer";
}
/**
* Returns true because this analyzer supports all dependency types.
*
* @param extension the file extension of the dependency being analyzed.
* @return true.
*/
public boolean supportsExtension(String extension) {
return true;
}
/**
* Returns the analysis phase that this analyzer should run in.
*
* @return the analysis phase that this analyzer should run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return AnalysisPhase.FINDING_ANALYSIS;
}
/**
* Opens the NVD CVE Lucene Index.
* Opens the database used to gather NVD CVE data.
*
* @throws Exception is thrown if there is an issue opening the index.
*/
@Override
public void initialize() throws Exception {
this.open();
}
//TODO - remove this comment block after additional testing is completed
// The following check has been moved into the CveDB class.
//// /**
//// * <p>Determines if this is a valid vulnerability match for the given
//// * dependency. Specifically, this is concerned with ensuring the version
//// * numbers are correct.</p>
//// * <p>Currently, this is focused on the issues with the versions for Struts
//// * 1 and Struts 2. In the future this will due better matching on more
//// * version numbers.</p>
//// *
//// * @param dependency the dependency
//// * @param v the vulnerability
//// * @return returns true if the vulnerability is for the given dependency
//// */
//// private boolean isValidMatch(final Dependency dependency, final Vulnerability v) {
//// //right now I only know of the issue with Struts1/2
//// // start with fixing this problem.
////
//// //TODO extend this solution to do better version matching for the vulnerable software.
//// boolean struts1 = false;
//// boolean struts2 = false;
//// for (Identifier i : dependency.getIdentifiers()) {
//// if (i.getValue().startsWith("cpe:/a:apache:struts:")) {
//// final char version = i.getValue().charAt(21);
//// if (version == '1') {
//// struts1 = true;
//// }
//// if (version == '2') {
//// struts2 = true;
//// }
//// }
//// }
//// if (!struts1 && !struts2) {
//// return true; //we are not looking at struts, so return true.
//// }
//// if (struts1 && struts2) {
//// return true; //there is a mismatch here, but we can't solve it here so we return valid.
//// }
//// if (struts1) {
//// boolean hasStruts1Vuln = false;
//// boolean hasStruts2PreviousVersion = false;
//// for (VulnerableSoftware vs : v.getVulnerableSoftware()) {
//// //TODO FIX THIS
//// //hasStruts2PreviousVersion |= vs.hasPreviousVersion() && vs.getName().charAt(21) == '2';
//// //hasStruts1Vuln |= vs.getName().charAt(21) == '1';
//// }
//// if (!hasStruts1Vuln && hasStruts2PreviousVersion) {
//// return false;
//// }
//// }
////
//// return true;
//// }
}

View File

@@ -0,0 +1,175 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Institute for Defense Analyses. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Used to analyze OpenSSL source code present in the file system.
*
* @author Dale Visser
*/
public class OpenSSLAnalyzer extends AbstractFileTypeAnalyzer {
private static final int HEXADECIMAL = 16;
/**
* Filename to analyze. All other .h files get removed from consideration.
*/
private static final String OPENSSLV_H = "opensslv.h";
/**
* Filter that detects files named "__init__.py".
*/
private static final FileFilter OPENSSLV_FILTER = FileFilterBuilder.newInstance().addFilenames(OPENSSLV_H).build();
private static final Pattern VERSION_PATTERN = Pattern.compile(
"define\\s+OPENSSL_VERSION_NUMBER\\s+0x([0-9a-zA-Z]{8})L", Pattern.DOTALL
| Pattern.CASE_INSENSITIVE);
private static final int MAJOR_OFFSET = 28;
private static final long MINOR_MASK = 0x0ff00000L;
private static final int MINOR_OFFSET = 20;
private static final long FIX_MASK = 0x000ff000L;
private static final int FIX_OFFSET = 12;
private static final long PATCH_MASK = 0x00000ff0L;
private static final int PATCH_OFFSET = 4;
private static final int NUM_LETTERS = 26;
private static final int STATUS_MASK = 0x0000000f;
/**
* Returns the open SSL version as a string.
*
* @param openSSLVersionConstant The open SSL version
* @return the version of openssl
*/
static String getOpenSSLVersion(long openSSLVersionConstant) {
final long major = openSSLVersionConstant >>> MAJOR_OFFSET;
final long minor = (openSSLVersionConstant & MINOR_MASK) >>> MINOR_OFFSET;
final long fix = (openSSLVersionConstant & FIX_MASK) >>> FIX_OFFSET;
final long patchLevel = (openSSLVersionConstant & PATCH_MASK) >>> PATCH_OFFSET;
final String patch = 0 == patchLevel || patchLevel > NUM_LETTERS ? "" : String.valueOf((char) (patchLevel + 'a' - 1));
final int statusCode = (int) (openSSLVersionConstant & STATUS_MASK);
final String status = 0xf == statusCode ? "" : (0 == statusCode ? "-dev" : "-beta" + statusCode);
return String.format("%d.%d.%d%s%s", major, minor, fix, patch, status);
}
/**
* Returns the name of the Python Package Analyzer.
*
* @return the name of the analyzer
*/
@Override
public String getName() {
return "OpenSSL Source Analyzer";
}
/**
* Tell that we are used for information collection.
*
* @return INFORMATION_COLLECTION
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return AnalysisPhase.INFORMATION_COLLECTION;
}
/**
* Returns the set of supported file extensions.
*
* @return the set of supported file extensions
*/
@Override
protected FileFilter getFileFilter() {
return OPENSSLV_FILTER;
}
/**
* No-op initializer implementation.
*
* @throws Exception never thrown
*/
@Override
protected void initializeFileTypeAnalyzer() throws Exception {
// Nothing to do here.
}
/**
* Analyzes python packages and adds evidence to the dependency.
*
* @param dependency the dependency being analyzed
* @param engine the engine being used to perform the scan
* @throws AnalysisException thrown if there is an unrecoverable error analyzing the dependency
*/
@Override
protected void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
final File file = dependency.getActualFile();
final String parentName = file.getParentFile().getName();
boolean found = false;
final String contents = getFileContents(file);
if (!contents.isEmpty()) {
final Matcher matcher = VERSION_PATTERN.matcher(contents);
if (matcher.find()) {
dependency.getVersionEvidence().addEvidence(OPENSSLV_H, "Version Constant",
getOpenSSLVersion(Long.parseLong(matcher.group(1), HEXADECIMAL)), Confidence.HIGH);
found = true;
}
}
if (found) {
dependency.setDisplayFileName(parentName + File.separatorChar + OPENSSLV_H);
dependency.getVendorEvidence().addEvidence(OPENSSLV_H, "Vendor", "OpenSSL", Confidence.HIGHEST);
dependency.getProductEvidence().addEvidence(OPENSSLV_H, "Product", "OpenSSL", Confidence.HIGHEST);
} else {
engine.getDependencies().remove(dependency);
}
}
/**
* Retrieves the contents of a given file.
*
* @param actualFile the file to read
* @return the contents of the file
* @throws AnalysisException thrown if there is an IO Exception
*/
private String getFileContents(final File actualFile)
throws AnalysisException {
String contents;
try {
contents = FileUtils.readFileToString(actualFile).trim();
} catch (IOException e) {
throw new AnalysisException(
"Problem occurred while reading dependency file.", e);
}
return contents;
}
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_OPENSSL_ENABLED;
}
}

View File

@@ -0,0 +1,374 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Institute for Defense Analyses. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import org.apache.commons.io.filefilter.NameFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import org.apache.commons.io.input.AutoCloseInputStream;
import org.apache.commons.lang3.StringUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.EvidenceCollection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.mail.MessagingException;
import javax.mail.internet.InternetHeaders;
import org.owasp.dependencycheck.utils.ExtractionException;
import org.owasp.dependencycheck.utils.ExtractionUtil;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.FileUtils;
import org.owasp.dependencycheck.utils.Settings;
import org.owasp.dependencycheck.utils.UrlStringUtils;
/**
* Used to analyze a Wheel or egg distribution files, or their contents in unzipped form, and collect information that can be used
* to determine the associated CPE.
*
* @author Dale Visser
*/
public class PythonDistributionAnalyzer extends AbstractFileTypeAnalyzer {
/**
* Name of egg metadata files to analyze.
*/
private static final String PKG_INFO = "PKG-INFO";
/**
* Name of wheel metadata files to analyze.
*/
private static final String METADATA = "METADATA";
/**
* The logger.
*/
private static final Logger LOGGER = LoggerFactory
.getLogger(PythonDistributionAnalyzer.class);
/**
* The count of directories created during analysis. This is used for creating temporary directories.
*/
private static int dirCount = 0;
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Python Distribution Analyzer";
/**
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
/**
* The set of file extensions supported by this analyzer.
*/
private static final String[] EXTENSIONS = {"whl", "egg", "zip"};
/**
* Used to match on egg archive candidate extensions.
*/
private static final FileFilter EGG_OR_ZIP = FileFilterBuilder.newInstance().addExtensions("egg", "zip").build();
/**
* Used to detect files with a .whl extension.
*/
private static final FileFilter WHL_FILTER = FileFilterBuilder.newInstance().addExtensions("whl").build();
/**
* The parent directory for the individual directories per archive.
*/
private File tempFileLocation;
/**
* Filter that detects *.dist-info files (but doesn't verify they are directories.
*/
private static final FilenameFilter DIST_INFO_FILTER = new SuffixFileFilter(
".dist-info");
/**
* Filter that detects files named "METADATA".
*/
private static final FilenameFilter EGG_INFO_FILTER = new NameFileFilter(
"EGG-INFO");
/**
* Filter that detects files named "METADATA".
*/
private static final NameFileFilter METADATA_FILTER = new NameFileFilter(
METADATA);
/**
* Filter that detects files named "PKG-INFO".
*/
private static final NameFileFilter PKG_INFO_FILTER = new NameFileFilter(
PKG_INFO);
/**
* The file filter used to determine which files this analyzer supports.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addFileFilters(
METADATA_FILTER, PKG_INFO_FILTER).addExtensions(EXTENSIONS).build();
/**
* Returns the FileFilter
*
* @return the FileFilter
*/
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED;
}
@Override
protected void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
final File actualFile = dependency.getActualFile();
if (WHL_FILTER.accept(actualFile)) {
collectMetadataFromArchiveFormat(dependency, DIST_INFO_FILTER,
METADATA_FILTER);
} else if (EGG_OR_ZIP.accept(actualFile)) {
collectMetadataFromArchiveFormat(dependency, EGG_INFO_FILTER,
PKG_INFO_FILTER);
} else {
final String name = actualFile.getName();
final boolean metadata = METADATA.equals(name);
if (metadata || PKG_INFO.equals(name)) {
final File parent = actualFile.getParentFile();
final String parentName = parent.getName();
dependency.setDisplayFileName(parentName + "/" + name);
if (parent.isDirectory()
&& (metadata && parentName.endsWith(".dist-info")
|| parentName.endsWith(".egg-info") || "EGG-INFO"
.equals(parentName))) {
collectWheelMetadata(dependency, actualFile);
}
}
}
}
/**
* Collects the meta data from an archive.
*
* @param dependency the archive being scanned
* @param folderFilter the filter to apply to the folder
* @param metadataFilter the filter to apply to the meta data
* @throws AnalysisException thrown when there is a problem analyzing the dependency
*/
private void collectMetadataFromArchiveFormat(Dependency dependency,
FilenameFilter folderFilter, FilenameFilter metadataFilter)
throws AnalysisException {
final File temp = getNextTempDirectory();
LOGGER.debug("{} exists? {}", temp, temp.exists());
try {
ExtractionUtil.extractFilesUsingFilter(
new File(dependency.getActualFilePath()), temp,
metadataFilter);
} catch (ExtractionException ex) {
throw new AnalysisException(ex);
}
collectWheelMetadata(
dependency,
getMatchingFile(getMatchingFile(temp, folderFilter),
metadataFilter));
}
/**
* Makes sure a usable temporary directory is available.
*
* @throws Exception an AnalyzeException is thrown when the temp directory cannot be created
*/
@Override
protected void initializeFileTypeAnalyzer() throws Exception {
final File baseDir = Settings.getTempDirectory();
tempFileLocation = File.createTempFile("check", "tmp", baseDir);
if (!tempFileLocation.delete()) {
final String msg = String.format(
"Unable to delete temporary file '%s'.",
tempFileLocation.getAbsolutePath());
throw new AnalysisException(msg);
}
if (!tempFileLocation.mkdirs()) {
final String msg = String.format(
"Unable to create directory '%s'.",
tempFileLocation.getAbsolutePath());
throw new AnalysisException(msg);
}
}
/**
* Deletes any files extracted from the Wheel during analysis.
*/
@Override
public void close() {
if (tempFileLocation != null && tempFileLocation.exists()) {
LOGGER.debug("Attempting to delete temporary files");
final boolean success = FileUtils.delete(tempFileLocation);
if (!success) {
LOGGER.warn(
"Failed to delete some temporary files, see the log for more details");
}
}
}
/**
* Gathers evidence from the METADATA file.
*
* @param dependency the dependency being analyzed
* @param file a reference to the manifest/properties file
*/
private static void collectWheelMetadata(Dependency dependency, File file) {
final InternetHeaders headers = getManifestProperties(file);
addPropertyToEvidence(headers, dependency.getVersionEvidence(),
"Version", Confidence.HIGHEST);
addPropertyToEvidence(headers, dependency.getProductEvidence(), "Name",
Confidence.HIGHEST);
final String url = headers.getHeader("Home-page", null);
final EvidenceCollection vendorEvidence = dependency
.getVendorEvidence();
if (StringUtils.isNotBlank(url)) {
if (UrlStringUtils.isUrl(url)) {
vendorEvidence.addEvidence(METADATA, "vendor", url,
Confidence.MEDIUM);
}
}
addPropertyToEvidence(headers, vendorEvidence, "Author", Confidence.LOW);
final String summary = headers.getHeader("Summary", null);
if (StringUtils.isNotBlank(summary)) {
JarAnalyzer
.addDescription(dependency, summary, METADATA, "summary");
}
}
/**
* Adds a value to the evidence collection.
*
* @param headers the properties collection
* @param evidence the evidence collection to add the value
* @param property the property name
* @param confidence the confidence of the evidence
*/
private static void addPropertyToEvidence(InternetHeaders headers,
EvidenceCollection evidence, String property, Confidence confidence) {
final String value = headers.getHeader(property, null);
LOGGER.debug("Property: {}, Value: {}", property, value);
if (StringUtils.isNotBlank(value)) {
evidence.addEvidence(METADATA, property, value, confidence);
}
}
/**
* Returns a list of files that match the given filter, this does not recursively scan the directory.
*
* @param folder the folder to filter
* @param filter the filter to apply to the files in the directory
* @return the list of Files in the directory that match the provided filter
*/
private static File getMatchingFile(File folder, FilenameFilter filter) {
File result = null;
final File[] matches = folder.listFiles(filter);
if (null != matches && 1 == matches.length) {
result = matches[0];
}
return result;
}
/**
* Reads the manifest entries from the provided file.
*
* @param manifest the manifest
* @return the manifest entries
*/
private static InternetHeaders getManifestProperties(File manifest) {
final InternetHeaders result = new InternetHeaders();
if (null == manifest) {
LOGGER.debug("Manifest file not found.");
} else {
try {
result.load(new AutoCloseInputStream(new BufferedInputStream(
new FileInputStream(manifest))));
} catch (MessagingException e) {
LOGGER.warn(e.getMessage(), e);
} catch (FileNotFoundException e) {
LOGGER.warn(e.getMessage(), e);
}
}
return result;
}
/**
* Retrieves the next temporary destination directory for extracting an archive.
*
* @return a directory
* @throws AnalysisException thrown if unable to create temporary directory
*/
private File getNextTempDirectory() throws AnalysisException {
File directory;
// getting an exception for some directories not being able to be
// created; might be because the directory already exists?
do {
dirCount += 1;
directory = new File(tempFileLocation, String.valueOf(dirCount));
} while (directory.exists());
if (!directory.mkdirs()) {
throw new AnalysisException(String.format(
"Unable to create temp directory '%s'.",
directory.getAbsolutePath()));
}
return directory;
}
}

View File

@@ -0,0 +1,316 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Institute for Defense Analyses. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.NameFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.EvidenceCollection;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import org.owasp.dependencycheck.utils.UrlStringUtils;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Used to analyze a Python package, and collect information that can be used to determine the associated CPE.
*
* @author Dale Visser
*/
public class PythonPackageAnalyzer extends AbstractFileTypeAnalyzer {
/**
* Used when compiling file scanning regex patterns.
*/
private static final int REGEX_OPTIONS = Pattern.DOTALL
| Pattern.CASE_INSENSITIVE;
/**
* Filename extensions for files to be analyzed.
*/
private static final String EXTENSIONS = "py";
/**
* Pattern for matching the module docstring in a source file.
*/
private static final Pattern MODULE_DOCSTRING = Pattern.compile(
"^(['\\\"]{3})(.*?)\\1", REGEX_OPTIONS);
/**
* Matches assignments to version variables in Python source code.
*/
private static final Pattern VERSION_PATTERN = Pattern.compile(
"\\b(__)?version(__)? *= *(['\"]+)(\\d+\\.\\d+.*?)\\3",
REGEX_OPTIONS);
/**
* Matches assignments to title variables in Python source code.
*/
private static final Pattern TITLE_PATTERN = compileAssignPattern("title");
/**
* Matches assignments to summary variables in Python source code.
*/
private static final Pattern SUMMARY_PATTERN = compileAssignPattern("summary");
/**
* Matches assignments to URL/URL variables in Python source code.
*/
private static final Pattern URI_PATTERN = compileAssignPattern("ur[il]");
/**
* Matches assignments to home page variables in Python source code.
*/
private static final Pattern HOMEPAGE_PATTERN = compileAssignPattern("home_?page");
/**
* Matches assignments to author variables in Python source code.
*/
private static final Pattern AUTHOR_PATTERN = compileAssignPattern("author");
/**
* Filter that detects files named "__init__.py".
*/
private static final FileFilter INIT_PY_FILTER = new NameFileFilter("__init__.py");
/**
* The file filter for python files.
*/
private static final FileFilter PY_FILTER = new SuffixFileFilter(".py");
/**
* Returns the name of the Python Package Analyzer.
*
* @return the name of the analyzer
*/
@Override
public String getName() {
return "Python Package Analyzer";
}
/**
* Tell that we are used for information collection.
*
* @return INFORMATION_COLLECTION
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return AnalysisPhase.INFORMATION_COLLECTION;
}
/**
* The file filter used to determine which files this analyzer supports.
*/
private static final FileFilter FILTER = FileFilterBuilder.newInstance().addExtensions(EXTENSIONS).build();
/**
* Returns the FileFilter
*
* @return the FileFilter
*/
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* No-op initializer implementation.
*
* @throws Exception never thrown
*/
@Override
protected void initializeFileTypeAnalyzer() throws Exception {
// Nothing to do here.
}
/**
* Utility function to create a regex pattern matcher.
*
* @param name the value to use when constructing the assignment pattern
* @return the compiled Pattern
*/
private static Pattern compileAssignPattern(String name) {
return Pattern.compile(
String.format("\\b(__)?%s(__)?\\b *= *(['\"]+)(.*?)\\3", name),
REGEX_OPTIONS);
}
/**
* Analyzes python packages and adds evidence to the dependency.
*
* @param dependency the dependency being analyzed
* @param engine the engine being used to perform the scan
* @throws AnalysisException thrown if there is an unrecoverable error analyzing the dependency
*/
@Override
protected void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
final File file = dependency.getActualFile();
final File parent = file.getParentFile();
final String parentName = parent.getName();
boolean found = false;
if (INIT_PY_FILTER.accept(file)) {
final File[] fileList = parent.listFiles(PY_FILTER);
if (fileList != null) {
for (final File sourceFile : fileList) {
found |= analyzeFileContents(dependency, sourceFile);
}
}
}
if (found) {
dependency.setDisplayFileName(parentName + "/__init__.py");
dependency.getProductEvidence().addEvidence(file.getName(),
"PackageName", parentName, Confidence.HIGH);
} else {
// copy, alter and set in case some other thread is iterating over
final List<Dependency> dependencies = new ArrayList<Dependency>(
engine.getDependencies());
dependencies.remove(dependency);
engine.setDependencies(dependencies);
}
}
/**
* This should gather information from leading docstrings, file comments, and assignments to __version__, __title__,
* __summary__, __uri__, __url__, __home*page__, __author__, and their all caps equivalents.
*
* @param dependency the dependency being analyzed
* @param file the file name to analyze
* @return whether evidence was found
* @throws AnalysisException thrown if there is an unrecoverable error
*/
private boolean analyzeFileContents(Dependency dependency, File file)
throws AnalysisException {
String contents;
try {
contents = FileUtils.readFileToString(file).trim();
} catch (IOException e) {
throw new AnalysisException(
"Problem occurred while reading dependency file.", e);
}
boolean found = false;
if (!contents.isEmpty()) {
final String source = file.getName();
found = gatherEvidence(VERSION_PATTERN, contents, source,
dependency.getVersionEvidence(), "SourceVersion",
Confidence.MEDIUM);
found |= addSummaryInfo(dependency, SUMMARY_PATTERN, 4, contents,
source, "summary");
if (INIT_PY_FILTER.accept(file)) {
found |= addSummaryInfo(dependency, MODULE_DOCSTRING, 2,
contents, source, "docstring");
}
found |= gatherEvidence(TITLE_PATTERN, contents, source,
dependency.getProductEvidence(), "SourceTitle",
Confidence.LOW);
final EvidenceCollection vendorEvidence = dependency
.getVendorEvidence();
found |= gatherEvidence(AUTHOR_PATTERN, contents, source,
vendorEvidence, "SourceAuthor", Confidence.MEDIUM);
found |= gatherHomePageEvidence(URI_PATTERN, vendorEvidence,
source, "URL", contents);
found |= gatherHomePageEvidence(HOMEPAGE_PATTERN,
vendorEvidence, source, "HomePage", contents);
}
return found;
}
/**
* Adds summary information to the dependency
*
* @param dependency the dependency being analyzed
* @param pattern the pattern used to perform analysis
* @param group the group from the pattern that indicates the data to use
* @param contents the data being analyzed
* @param source the source name to use when recording the evidence
* @param key the key name to use when recording the evidence
* @return true if evidence was collected; otherwise false
*/
private boolean addSummaryInfo(Dependency dependency, Pattern pattern,
int group, String contents, String source, String key) {
final Matcher matcher = pattern.matcher(contents);
final boolean found = matcher.find();
if (found) {
JarAnalyzer.addDescription(dependency, matcher.group(group),
source, key);
}
return found;
}
/**
* Collects evidence from the home page URL.
*
* @param pattern the pattern to match
* @param evidence the evidence collection to add the evidence to
* @param source the source of the evidence
* @param name the name of the evidence
* @param contents the home page URL
* @return true if evidence was collected; otherwise false
*/
private boolean gatherHomePageEvidence(Pattern pattern,
EvidenceCollection evidence, String source, String name,
String contents) {
final Matcher matcher = pattern.matcher(contents);
boolean found = false;
if (matcher.find()) {
final String url = matcher.group(4);
if (UrlStringUtils.isUrl(url)) {
found = true;
evidence.addEvidence(source, name, url, Confidence.MEDIUM);
}
}
return found;
}
/**
* Gather evidence from a Python source file using the given string assignment regex pattern.
*
* @param pattern to scan contents with
* @param contents of Python source file
* @param source for storing evidence
* @param evidence to store evidence in
* @param name of evidence
* @param confidence in evidence
* @return whether evidence was found
*/
private boolean gatherEvidence(Pattern pattern, String contents,
String source, EvidenceCollection evidence, String name,
Confidence confidence) {
final Matcher matcher = pattern.matcher(contents);
final boolean found = matcher.find();
if (found) {
evidence.addEvidence(source, name, matcher.group(4), confidence);
}
return found;
}
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED;
}
}

View File

@@ -0,0 +1,342 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Institute for Defense Analyses. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.Reference;
import org.owasp.dependencycheck.dependency.Vulnerability;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.*;
/**
* Used to analyze Ruby Bundler Gemspec.lock files utilizing the 3rd party bundle-audit tool.
*
* @author Dale Visser
*/
public class RubyBundleAuditAnalyzer extends AbstractFileTypeAnalyzer {
private static final Logger LOGGER = LoggerFactory.getLogger(RubyBundleAuditAnalyzer.class);
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Ruby Bundle Audit Analyzer";
/**
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.PRE_INFORMATION_COLLECTION;
private static final FileFilter FILTER
= FileFilterBuilder.newInstance().addFilenames("Gemfile.lock").build();
public static final String NAME = "Name: ";
public static final String VERSION = "Version: ";
public static final String ADVISORY = "Advisory: ";
public static final String CRITICALITY = "Criticality: ";
/**
* @return a filter that accepts files named Gemfile.lock
*/
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
/**
* Launch bundle-audit.
*
* @return a handle to the process
*/
private Process launchBundleAudit(File folder) throws AnalysisException {
if (!folder.isDirectory()) {
throw new AnalysisException(String.format("%s should have been a directory.", folder.getAbsolutePath()));
}
final List<String> args = new ArrayList<String>();
final String bundleAuditPath = Settings.getString(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH);
args.add(null == bundleAuditPath ? "bundle-audit" : bundleAuditPath);
args.add("check");
args.add("--verbose");
final ProcessBuilder builder = new ProcessBuilder(args);
builder.directory(folder);
try {
LOGGER.info("Launching: " + args + " from " + folder);
return builder.start();
} catch (IOException ioe) {
throw new AnalysisException("bundle-audit failure", ioe);
}
}
/**
* Initialize the analyzer. In this case, extract GrokAssembly.exe to a temporary location.
*
* @throws Exception if anything goes wrong
*/
@Override
public void initializeFileTypeAnalyzer() throws Exception {
// Now, need to see if bundle-audit actually runs from this location.
Process process = null;
try {
process = launchBundleAudit(Settings.getTempDirectory());
}
catch(AnalysisException ae) {
LOGGER.warn("Exception from bundle-audit process: {}. Disabling {}", ae.getCause(), ANALYZER_NAME);
setEnabled(false);
throw ae;
}
int exitValue = process.waitFor();
if (0 == exitValue) {
LOGGER.warn("Unexpected exit code from bundle-audit process. Disabling {}: {}", ANALYZER_NAME, exitValue);
setEnabled(false);
throw new AnalysisException("Unexpected exit code from bundle-audit process.");
} else {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(process.getErrorStream(), "UTF-8"));
if (!reader.ready()) {
LOGGER.warn("Bundle-audit error stream unexpectedly not ready. Disabling " + ANALYZER_NAME);
setEnabled(false);
throw new AnalysisException("Bundle-audit error stream unexpectedly not ready.");
} else {
final String line = reader.readLine();
if (line == null || !line.contains("Errno::ENOENT")) {
LOGGER.warn("Unexpected bundle-audit output. Disabling {}: {}", ANALYZER_NAME, line);
setEnabled(false);
throw new AnalysisException("Unexpected bundle-audit output.");
}
}
} finally {
if (null != reader) {
reader.close();
}
}
}
if (isEnabled()) {
LOGGER.info(ANALYZER_NAME + " is enabled. It is necessary to manually run \"bundle-audit update\" "
+ "occasionally to keep its database up to date.");
}
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED;
}
/**
* If {@link #analyzeFileType(Dependency, Engine)} is called, then we have successfully initialized, and it will be necessary
* to disable {@link RubyGemspecAnalyzer}.
*/
private boolean needToDisableGemspecAnalyzer = true;
@Override
protected void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
if (needToDisableGemspecAnalyzer) {
boolean failed = true;
final String className = RubyGemspecAnalyzer.class.getName();
for (FileTypeAnalyzer analyzer : engine.getFileTypeAnalyzers()) {
if (analyzer instanceof RubyGemspecAnalyzer) {
((RubyGemspecAnalyzer) analyzer).setEnabled(false);
LOGGER.info("Disabled " + className + " to avoid noisy duplicate results.");
failed = false;
}
}
if (failed) {
LOGGER.warn("Did not find" + className + '.');
}
needToDisableGemspecAnalyzer = false;
}
final File parentFile = dependency.getActualFile().getParentFile();
final Process process = launchBundleAudit(parentFile);
try {
process.waitFor();
} catch (InterruptedException ie) {
throw new AnalysisException("bundle-audit process interrupted", ie);
}
BufferedReader rdr = null;
try {
BufferedReader errReader = new BufferedReader(new InputStreamReader(process.getErrorStream(), "UTF-8"));
while(errReader.ready()) {
String error = errReader.readLine();
LOGGER.warn(error);
}
rdr = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));
processBundlerAuditOutput(dependency, engine, rdr);
} catch (IOException ioe) {
LOGGER.warn("bundle-audit failure", ioe);
} finally {
if (null != rdr) {
try {
rdr.close();
} catch (IOException ioe) {
LOGGER.warn("bundle-audit close failure", ioe);
}
}
}
}
private void processBundlerAuditOutput(Dependency original, Engine engine, BufferedReader rdr) throws IOException {
final String parentName = original.getActualFile().getParentFile().getName();
final String fileName = original.getFileName();
Dependency dependency = null;
Vulnerability vulnerability = null;
String gem = null;
final Map<String, Dependency> map = new HashMap<String, Dependency>();
boolean appendToDescription = false;
while (rdr.ready()) {
final String nextLine = rdr.readLine();
if (null == nextLine) {
break;
} else if (nextLine.startsWith(NAME)) {
appendToDescription = false;
gem = nextLine.substring(NAME.length());
if (!map.containsKey(gem)) {
map.put(gem, createDependencyForGem(engine, parentName, fileName, gem));
}
dependency = map.get(gem);
LOGGER.debug(String.format("bundle-audit (%s): %s", parentName, nextLine));
} else if (nextLine.startsWith(VERSION)) {
vulnerability = createVulnerability(parentName, dependency, vulnerability, gem, nextLine);
} else if (nextLine.startsWith(ADVISORY)) {
setVulnerabilityName(parentName, dependency, vulnerability, nextLine);
} else if (nextLine.startsWith(CRITICALITY)) {
addCriticalityToVulnerability(parentName, vulnerability, nextLine);
} else if (nextLine.startsWith("URL: ")) {
addReferenceToVulnerability(parentName, vulnerability, nextLine);
} else if (nextLine.startsWith("Description:")) {
appendToDescription = true;
if (null != vulnerability) {
vulnerability.setDescription("*** Vulnerability obtained from bundle-audit verbose report. Title link may not work. CPE below is guessed. CVSS score is estimated (-1.0 indicates unknown). See link below for full details. *** ");
}
} else if (appendToDescription) {
if (null != vulnerability) {
vulnerability.setDescription(vulnerability.getDescription() + nextLine + "\n");
}
}
}
}
private void setVulnerabilityName(String parentName, Dependency dependency, Vulnerability vulnerability, String nextLine) {
final String advisory = nextLine.substring((ADVISORY.length()));
if (null != vulnerability) {
vulnerability.setName(advisory);
}
if (null != dependency) {
dependency.getVulnerabilities().add(vulnerability); // needed to wait for vulnerability name to avoid NPE
}
LOGGER.debug(String.format("bundle-audit (%s): %s", parentName, nextLine));
}
private void addReferenceToVulnerability(String parentName, Vulnerability vulnerability, String nextLine) {
final String url = nextLine.substring(("URL: ").length());
if (null != vulnerability) {
Reference ref = new Reference();
ref.setName(vulnerability.getName());
ref.setSource("bundle-audit");
ref.setUrl(url);
vulnerability.getReferences().add(ref);
}
LOGGER.debug(String.format("bundle-audit (%s): %s", parentName, nextLine));
}
private void addCriticalityToVulnerability(String parentName, Vulnerability vulnerability, String nextLine) {
if (null != vulnerability) {
final String criticality = nextLine.substring(CRITICALITY.length()).trim();
if ("High".equals(criticality)) {
vulnerability.setCvssScore(8.5f);
} else if ("Medium".equals(criticality)) {
vulnerability.setCvssScore(5.5f);
} else if ("Low".equals(criticality)) {
vulnerability.setCvssScore(2.0f);
} else {
vulnerability.setCvssScore(-1.0f);
}
}
LOGGER.debug(String.format("bundle-audit (%s): %s", parentName, nextLine));
}
private Vulnerability createVulnerability(String parentName, Dependency dependency, Vulnerability vulnerability, String gem, String nextLine) {
if (null != dependency) {
final String version = nextLine.substring(VERSION.length());
dependency.getVersionEvidence().addEvidence(
"bundler-audit",
"Version",
version,
Confidence.HIGHEST);
vulnerability = new Vulnerability(); // don't add to dependency until we have name set later
vulnerability.setMatchedCPE(
String.format("cpe:/a:%1$s_project:%1$s:%2$s::~~~ruby~~", gem, version),
null);
vulnerability.setCvssAccessVector("-");
vulnerability.setCvssAccessComplexity("-");
vulnerability.setCvssAuthentication("-");
vulnerability.setCvssAvailabilityImpact("-");
vulnerability.setCvssConfidentialityImpact("-");
vulnerability.setCvssIntegrityImpact("-");
}
LOGGER.debug(String.format("bundle-audit (%s): %s", parentName, nextLine));
return vulnerability;
}
private Dependency createDependencyForGem(Engine engine, String parentName, String fileName, String gem) throws IOException {
final File tempFile = File.createTempFile("Gemfile-" + gem, ".lock", Settings.getTempDirectory());
final String displayFileName = String.format("%s%c%s:%s", parentName, File.separatorChar, fileName, gem);
FileUtils.write(tempFile, displayFileName); // unique contents to avoid dependency bundling
final Dependency dependency = new Dependency(tempFile);
dependency.getProductEvidence().addEvidence("bundler-audit", "Name", gem, Confidence.HIGHEST);
dependency.setDisplayFileName(displayFileName);
engine.getDependencies().add(dependency);
return dependency;
}
}

View File

@@ -0,0 +1,161 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Institute for Defense Analyses. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.apache.commons.io.FileUtils;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.dependency.Confidence;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.dependency.EvidenceCollection;
import org.owasp.dependencycheck.utils.FileFilterBuilder;
import org.owasp.dependencycheck.utils.Settings;
import java.io.FileFilter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Used to analyze Ruby Gem specifications and collect information that can be used to determine the associated CPE. Regular
* expressions are used to parse the well-defined Ruby syntax that forms the specification.
*
* @author Dale Visser
*/
public class RubyGemspecAnalyzer extends AbstractFileTypeAnalyzer {
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Ruby Gemspec Analyzer";
/**
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.INFORMATION_COLLECTION;
private static final String GEMSPEC = "gemspec";
private static final FileFilter FILTER
= FileFilterBuilder.newInstance().addExtensions(GEMSPEC).addFilenames("Rakefile").build();
private static final String EMAIL = "email";
/**
* @return a filter that accepts files named Rakefile or matching the glob pattern, *.gemspec
*/
@Override
protected FileFilter getFileFilter() {
return FILTER;
}
@Override
protected void initializeFileTypeAnalyzer() throws Exception {
// NO-OP
}
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
/**
* Returns the key used in the properties file to reference the analyzer's enabled property.
*
* @return the analyzer's enabled property setting key
*/
@Override
protected String getAnalyzerEnabledSettingKey() {
return Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED;
}
/**
* The capture group #1 is the block variable.
*/
private static final Pattern GEMSPEC_BLOCK_INIT
= Pattern.compile("Gem::Specification\\.new\\s+?do\\s+?\\|(.+?)\\|");
@Override
protected void analyzeFileType(Dependency dependency, Engine engine)
throws AnalysisException {
String contents;
try {
contents = FileUtils.readFileToString(dependency.getActualFile());
} catch (IOException e) {
throw new AnalysisException(
"Problem occurred while reading dependency file.", e);
}
final Matcher matcher = GEMSPEC_BLOCK_INIT.matcher(contents);
if (matcher.find()) {
contents = contents.substring(matcher.end());
final String blockVariable = matcher.group(1);
final EvidenceCollection vendor = dependency.getVendorEvidence();
addStringEvidence(vendor, contents, blockVariable, "author", Confidence.HIGHEST);
addListEvidence(vendor, contents, blockVariable, "authors", Confidence.HIGHEST);
final String email = addStringEvidence(vendor, contents, blockVariable, EMAIL, Confidence.MEDIUM);
if (email.isEmpty()) {
addListEvidence(vendor, contents, blockVariable, EMAIL, Confidence.MEDIUM);
}
addStringEvidence(vendor, contents, blockVariable, "homepage", Confidence.MEDIUM);
final EvidenceCollection product = dependency.getProductEvidence();
final String name = addStringEvidence(product, contents, blockVariable, "name", Confidence.HIGHEST);
if (!name.isEmpty()) {
vendor.addEvidence(GEMSPEC, "name_project", name + "_project", Confidence.LOW);
}
addStringEvidence(product, contents, blockVariable, "summary", Confidence.LOW);
addStringEvidence(dependency.getVersionEvidence(), contents, blockVariable, "version", Confidence.HIGHEST);
}
}
private void addListEvidence(EvidenceCollection evidences, String contents,
String blockVariable, String field, Confidence confidence) {
final Matcher matcher = Pattern.compile(
String.format("\\s+?%s\\.%s\\s*?=\\s*?\\[(.*?)\\]", blockVariable, field)).matcher(contents);
if (matcher.find()) {
final String value = matcher.group(1).replaceAll("['\"]", " ").trim();
evidences.addEvidence(GEMSPEC, field, value, confidence);
}
}
private String addStringEvidence(EvidenceCollection evidences, String contents,
String blockVariable, String field, Confidence confidence) {
final Matcher matcher = Pattern.compile(
String.format("\\s+?%s\\.%s\\s*?=\\s*?(['\"])(.*?)\\1", blockVariable, field)).matcher(contents);
String value = "";
if (matcher.find()) {
value = matcher.group(2);
evidences.addEvidence(GEMSPEC, field, value, confidence);
}
return value;
}
}

View File

@@ -0,0 +1,75 @@
/*
* This file is part of dependency-check-core.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2013 Jeremy Long. All Rights Reserved.
*/
package org.owasp.dependencycheck.analyzer;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.Engine;
import org.owasp.dependencycheck.dependency.Dependency;
import org.owasp.dependencycheck.suppression.SuppressionRule;
/**
* The suppression analyzer processes an externally defined XML document that complies with the suppressions.xsd schema.
* Any identified Vulnerability entries within the dependencies that match will be removed.
*
* @author Jeremy Long
*/
public class VulnerabilitySuppressionAnalyzer extends AbstractSuppressionAnalyzer {
//<editor-fold defaultstate="collapsed" desc="All standard implementation details of Analyzer">
/**
* The name of the analyzer.
*/
private static final String ANALYZER_NAME = "Vulnerability Suppression Analyzer";
/**
* The phase that this analyzer is intended to run in.
*/
private static final AnalysisPhase ANALYSIS_PHASE = AnalysisPhase.POST_FINDING_ANALYSIS;
/**
* Returns the name of the analyzer.
*
* @return the name of the analyzer.
*/
@Override
public String getName() {
return ANALYZER_NAME;
}
/**
* Returns the phase that the analyzer is intended to run in.
*
* @return the phase that the analyzer is intended to run in.
*/
@Override
public AnalysisPhase getAnalysisPhase() {
return ANALYSIS_PHASE;
}
//</editor-fold>
@Override
public void analyze(final Dependency dependency, final Engine engine) throws AnalysisException {
if (getRules() == null || getRules().size() <= 0) {
return;
}
for (final SuppressionRule rule : getRules()) {
rule.process(dependency);
}
}
}

Some files were not shown because too many files have changed in this diff Show More