diff --git a/dependency-check-ant/apidocs/allclasses-frame.html b/dependency-check-ant/apidocs/allclasses-frame.html index 7137249f2..68b381378 100644 --- a/dependency-check-ant/apidocs/allclasses-frame.html +++ b/dependency-check-ant/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Ant Task 1.0.2 API) +All Classes (Dependency-Check Ant Task 1.0.3 API) - + diff --git a/dependency-check-ant/apidocs/allclasses-noframe.html b/dependency-check-ant/apidocs/allclasses-noframe.html index 9a1aa6dc0..90a4c921b 100644 --- a/dependency-check-ant/apidocs/allclasses-noframe.html +++ b/dependency-check-ant/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Ant Task 1.0.2 API) +All Classes (Dependency-Check Ant Task 1.0.3 API) - + diff --git a/dependency-check-ant/apidocs/constant-values.html b/dependency-check-ant/apidocs/constant-values.html index 5e23243ff..658d1f852 100644 --- a/dependency-check-ant/apidocs/constant-values.html +++ b/dependency-check-ant/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (Dependency-Check Ant Task 1.0.2 API) +Constant Field Values (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ Constant Field Values (Dependency-Check Ant Task 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="Constant Field Values (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/deprecated-list.html b/dependency-check-ant/apidocs/deprecated-list.html index 88e48e2af..20406fd12 100644 --- a/dependency-check-ant/apidocs/deprecated-list.html +++ b/dependency-check-ant/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (Dependency-Check Ant Task 1.0.2 API) +Deprecated List (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ Deprecated List (Dependency-Check Ant Task 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="Deprecated List (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/help-doc.html b/dependency-check-ant/apidocs/help-doc.html index 39d3f4c97..111e8ca2a 100644 --- a/dependency-check-ant/apidocs/help-doc.html +++ b/dependency-check-ant/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (Dependency-Check Ant Task 1.0.2 API) +API Help (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ API Help (Dependency-Check Ant Task 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="API Help (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/index-all.html b/dependency-check-ant/apidocs/index-all.html index 39fd338a3..861801661 100644 --- a/dependency-check-ant/apidocs/index-all.html +++ b/dependency-check-ant/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (Dependency-Check Ant Task 1.0.2 API) +Index (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ Index (Dependency-Check Ant Task 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="Index (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/index.html b/dependency-check-ant/apidocs/index.html index 56b710c6d..51c4f8f44 100644 --- a/dependency-check-ant/apidocs/index.html +++ b/dependency-check-ant/apidocs/index.html @@ -2,10 +2,10 @@ - + -Dependency-Check Ant Task 1.0.2 API +Dependency-Check Ant Task 1.0.3 API diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html index 82e69915b..72892725a 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html @@ -2,13 +2,13 @@ - + -DependencyCheckTask (Dependency-Check Ant Task 1.0.2 API) +DependencyCheckTask (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ DependencyCheckTask (Dependency-Check Ant Task 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyCheckTask (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="DependencyCheckTask (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.ReportFormats.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.ReportFormats.html index d82bd0c0e..861fbc722 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.ReportFormats.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.ReportFormats.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats (Dependency-Check Ant Task 1.0.2 API) +Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportForma function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.html index 2efee726b..005ff5a34 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency-Check Ant Task 1.0.2 API) +Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-frame.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-frame.html index 1850baed7..ab6d0a801 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.2 API) +org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.3 API) - + diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html index 705a4d100..4ac787cb4 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.2 API) +org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-tree.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-tree.html index 6f107f2a4..1a0147bfd 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-tree.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.0.2 API) +org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-use.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-use.html index 204f8bbc6..ba158ac16 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-use.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.2 API) +Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/apidocs/overview-tree.html b/dependency-check-ant/apidocs/overview-tree.html index 734b61865..751366058 100644 --- a/dependency-check-ant/apidocs/overview-tree.html +++ b/dependency-check-ant/apidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (Dependency-Check Ant Task 1.0.2 API) +Class Hierarchy (Dependency-Check Ant Task 1.0.3 API) - + @@ -16,7 +16,7 @@ Class Hierarchy (Dependency-Check Ant Task 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (Dependency-Check Ant Task 1.0.2 API)"; + parent.document.title="Class Hierarchy (Dependency-Check Ant Task 1.0.3 API)"; } } diff --git a/dependency-check-ant/checkstyle.html b/dependency-check-ant/checkstyle.html index ba82f71b4..dc37f0de2 100644 --- a/dependency-check-ant/checkstyle.html +++ b/dependency-check-ant/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Checkstyle Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/cobertura/frame-summary-org.owasp.dependencycheck.taskdefs.html b/dependency-check-ant/cobertura/frame-summary-org.owasp.dependencycheck.taskdefs.html index c5066d5e8..34cef3db9 100644 --- a/dependency-check-ant/cobertura/frame-summary-org.owasp.dependencycheck.taskdefs.html +++ b/dependency-check-ant/cobertura/frame-summary-org.owasp.dependencycheck.taskdefs.html @@ -38,6 +38,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); - + diff --git a/dependency-check-ant/cobertura/frame-summary.html b/dependency-check-ant/cobertura/frame-summary.html index 9e0675f41..30c948623 100644 --- a/dependency-check-ant/cobertura/frame-summary.html +++ b/dependency-check-ant/cobertura/frame-summary.html @@ -25,6 +25,6 @@ var packageTable = new SortableTable(document.getElementById("packageResults"), ["String", "Number", "Percentage", "Percentage", "FormattedNumber"]); packageTable.sort(0); - + diff --git a/dependency-check-ant/cobertura/org.owasp.dependencycheck.taskdefs.DependencyCheckTask.html b/dependency-check-ant/cobertura/org.owasp.dependencycheck.taskdefs.DependencyCheckTask.html index 9015a037e..089f859c7 100644 --- a/dependency-check-ant/cobertura/org.owasp.dependencycheck.taskdefs.DependencyCheckTask.html +++ b/dependency-check-ant/cobertura/org.owasp.dependencycheck.taskdefs.DependencyCheckTask.html @@ -925,6 +925,6 @@
     }
    - + diff --git a/dependency-check-ant/configuration.html b/dependency-check-ant/configuration.html index ee3b118af..3aaabebde 100644 --- a/dependency-check-ant/configuration.html +++ b/dependency-check-ant/configuration.html @@ -1,13 +1,13 @@ - + dependency-check-ant - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/cpd.html b/dependency-check-ant/cpd.html index 33157d9ff..7bd89bac4 100644 --- a/dependency-check-ant/cpd.html +++ b/dependency-check-ant/cpd.html @@ -1,13 +1,13 @@ - + dependency-check-ant - CPD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/dependency-updates-report.html b/dependency-check-ant/dependency-updates-report.html index f97caa96b..88d877b24 100644 --- a/dependency-check-ant/dependency-updates-report.html +++ b/dependency-check-ant/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Dependency Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -312,7 +312,7 @@ org.owasp dependency-check-core -1.0.2 +1.0.3 compile jar @@ -427,7 +427,7 @@ dependency-check-core Current Version -1.0.2 +1.0.3 Scope compile diff --git a/dependency-check-ant/findbugs.html b/dependency-check-ant/findbugs.html index 4d7bcfef0..bbb51dd87 100644 --- a/dependency-check-ant/findbugs.html +++ b/dependency-check-ant/findbugs.html @@ -1,13 +1,13 @@ - + dependency-check-ant - FindBugs Bug Detector Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/index.html b/dependency-check-ant/index.html index af2c2f141..65c21ed6e 100644 --- a/dependency-check-ant/index.html +++ b/dependency-check-ant/index.html @@ -1,13 +1,13 @@ - + dependency-check-ant - About @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/installation.html b/dependency-check-ant/installation.html index 1f486f299..90074bf52 100644 --- a/dependency-check-ant/installation.html +++ b/dependency-check-ant/installation.html @@ -1,13 +1,13 @@ - + dependency-check-ant - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -145,7 +145,7 @@

    Installation

    -

    Download dependency-check-ant from bintray here. To install dependency-check-ant place the dependency-check-ant-1.0.2.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.

    +

    Download dependency-check-ant from bintray here. To install dependency-check-ant place the dependency-check-ant-1.0.3.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.

    diff --git a/dependency-check-ant/license.html b/dependency-check-ant/license.html index 3d7583d17..79dfe7f0f 100644 --- a/dependency-check-ant/license.html +++ b/dependency-check-ant/license.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/plugin-updates-report.html b/dependency-check-ant/plugin-updates-report.html index 99ba3f191..87b7f1837 100644 --- a/dependency-check-ant/plugin-updates-report.html +++ b/dependency-check-ant/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Plugin Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -237,7 +237,7 @@ # of plugins using the latest version available -5 +4 # of plugins where the next version available is smaller than an incremental version update @@ -249,7 +249,7 @@ # of plugins where the next version available is a minor version update -8 +9 # of plugins where the next version available is a major version update @@ -365,13 +365,13 @@ 3.0 - + org.apache.maven.plugins maven-deploy-plugin -2.7 - +2.7 +2.8 @@ -494,7 +494,7 @@ 0.7 Newer versions -0.8 Next Minor +0.8 Next Minor
    0.9 Latest Minor

    Plugin org.apache.maven.plugins:maven-antrun-plugin

    @@ -590,7 +590,7 @@
    - + @@ -599,7 +599,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.plugins
    maven-deploy-plugin
    Current Version2.7
    +2.7 + +Newer versions +2.8 Next Minor

    Plugin org.apache.maven.plugins:maven-enforcer-plugin

    @@ -635,7 +638,7 @@ -
    2.3.1
    Newer versions2.4 Next Minor
    +2.4 Next Minor
    2.5 Latest Minor

    Plugin org.apache.maven.plugins:maven-jar-plugin

    diff --git a/dependency-check-ant/pmd.html b/dependency-check-ant/pmd.html index b9e289c0a..b41b862f3 100644 --- a/dependency-check-ant/pmd.html +++ b/dependency-check-ant/pmd.html @@ -1,13 +1,13 @@ - + dependency-check-ant - PMD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/project-info.html b/dependency-check-ant/project-info.html index 93d65fa58..bd93d8581 100644 --- a/dependency-check-ant/project-info.html +++ b/dependency-check-ant/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/project-reports.html b/dependency-check-ant/project-reports.html index 9736b336b..c56ae7040 100644 --- a/dependency-check-ant/project-reports.html +++ b/dependency-check-ant/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Generated Reports @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/project-summary.html b/dependency-check-ant/project-summary.html index e952af846..7487686b9 100644 --- a/dependency-check-ant/project-summary.html +++ b/dependency-check-ant/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -210,7 +210,7 @@ - + diff --git a/dependency-check-ant/surefire-report.html b/dependency-check-ant/surefire-report.html index 1fe4ee63f..d10e9a11f 100644 --- a/dependency-check-ant/surefire-report.html +++ b/dependency-check-ant/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -266,7 +266,7 @@ function toggleDisplay(elementId) { -
    dependency-check-ant
    Version1.0.2
    1.0.3
    Type jar
    0 0 100%7.877

    +13.68

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -287,7 +287,7 @@ function toggleDisplay(elementId) { 0 0 100% -7.877
    +13.68

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck.taskdefs

    @@ -309,7 +309,7 @@ function toggleDisplay(elementId) { 0 0 100% -7.877

    +13.68

    Test Cases

    [Summary] [Package List] [Test Cases]

    @@ -319,19 +319,19 @@ function toggleDisplay(elementId) { testGetFailBuildOnCVSS -0.523 +0.444 testAddDirSet -4.105 +5.424 testAddFileSet -2.159 +3.44 testAddFileList -1.09

    +4.372
    diff --git a/dependency-check-ant/taglist.html b/dependency-check-ant/taglist.html index 462e4ba74..ce3eb056d 100644 --- a/dependency-check-ant/taglist.html +++ b/dependency-check-ant/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Tag List report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/usage.html b/dependency-check-ant/usage.html index 3dc0499ab..705b51576 100644 --- a/dependency-check-ant/usage.html +++ b/dependency-check-ant/usage.html @@ -1,13 +1,13 @@ - + dependency-check-ant - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-ant/xref-test/index.html b/dependency-check-ant/xref-test/index.html index f4791590e..b400ed5b0 100644 --- a/dependency-check-ant/xref-test/index.html +++ b/dependency-check-ant/xref-test/index.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference + Dependency-Check Ant Task 1.0.3 Reference diff --git a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html index 86f69860c..5e2c33d6e 100644 --- a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 1.0.3 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html index cbe52f7dc..a9ab872dd 100644 --- a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 1.0.3 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref-test/overview-frame.html b/dependency-check-ant/xref-test/overview-frame.html index 165fe1a4e..7153b7ed3 100644 --- a/dependency-check-ant/xref-test/overview-frame.html +++ b/dependency-check-ant/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference + Dependency-Check Ant Task 1.0.3 Reference diff --git a/dependency-check-ant/xref-test/overview-summary.html b/dependency-check-ant/xref-test/overview-summary.html index c13164fbb..ca4253362 100644 --- a/dependency-check-ant/xref-test/overview-summary.html +++ b/dependency-check-ant/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference + Dependency-Check Ant Task 1.0.3 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Ant Task 1.0.2 Reference

    +

    Dependency-Check Ant Task 1.0.3 Reference

    diff --git a/dependency-check-ant/xref/index.html b/dependency-check-ant/xref/index.html index f4791590e..b400ed5b0 100644 --- a/dependency-check-ant/xref/index.html +++ b/dependency-check-ant/xref/index.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference + Dependency-Check Ant Task 1.0.3 Reference diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html index ff68a1ec8..05dd18573 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 1.0.3 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html index 74f78a4dd..73f29ae3c 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 1.0.3 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref/overview-frame.html b/dependency-check-ant/xref/overview-frame.html index 165fe1a4e..7153b7ed3 100644 --- a/dependency-check-ant/xref/overview-frame.html +++ b/dependency-check-ant/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference + Dependency-Check Ant Task 1.0.3 Reference diff --git a/dependency-check-ant/xref/overview-summary.html b/dependency-check-ant/xref/overview-summary.html index c13164fbb..ca4253362 100644 --- a/dependency-check-ant/xref/overview-summary.html +++ b/dependency-check-ant/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.2 Reference + Dependency-Check Ant Task 1.0.3 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Ant Task 1.0.2 Reference

    +

    Dependency-Check Ant Task 1.0.3 Reference

    diff --git a/dependency-check-cli/apidocs/allclasses-frame.html b/dependency-check-cli/apidocs/allclasses-frame.html index 216b228ef..03c01d54b 100644 --- a/dependency-check-cli/apidocs/allclasses-frame.html +++ b/dependency-check-cli/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Command Line 1.0.2 API) +All Classes (Dependency-Check Command Line 1.0.3 API) - + diff --git a/dependency-check-cli/apidocs/allclasses-noframe.html b/dependency-check-cli/apidocs/allclasses-noframe.html index 30d9fd589..ca59969df 100644 --- a/dependency-check-cli/apidocs/allclasses-noframe.html +++ b/dependency-check-cli/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Command Line 1.0.2 API) +All Classes (Dependency-Check Command Line 1.0.3 API) - + diff --git a/dependency-check-cli/apidocs/constant-values.html b/dependency-check-cli/apidocs/constant-values.html index 38833a0ca..7651c36a3 100644 --- a/dependency-check-cli/apidocs/constant-values.html +++ b/dependency-check-cli/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (Dependency-Check Command Line 1.0.2 API) +Constant Field Values (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Constant Field Values (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Constant Field Values (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/deprecated-list.html b/dependency-check-cli/apidocs/deprecated-list.html index 79e62cd95..b9106ad9e 100644 --- a/dependency-check-cli/apidocs/deprecated-list.html +++ b/dependency-check-cli/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (Dependency-Check Command Line 1.0.2 API) +Deprecated List (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Deprecated List (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Deprecated List (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/help-doc.html b/dependency-check-cli/apidocs/help-doc.html index d7b1819c3..00f2560db 100644 --- a/dependency-check-cli/apidocs/help-doc.html +++ b/dependency-check-cli/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (Dependency-Check Command Line 1.0.2 API) +API Help (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ API Help (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="API Help (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/index-all.html b/dependency-check-cli/apidocs/index-all.html index d083424f3..0fcd5a817 100644 --- a/dependency-check-cli/apidocs/index-all.html +++ b/dependency-check-cli/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (Dependency-Check Command Line 1.0.2 API) +Index (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Index (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Index (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/index.html b/dependency-check-cli/apidocs/index.html index 7b43137a2..bc377fb0c 100644 --- a/dependency-check-cli/apidocs/index.html +++ b/dependency-check-cli/apidocs/index.html @@ -2,10 +2,10 @@ - + -Dependency-Check Command Line 1.0.2 API +Dependency-Check Command Line 1.0.3 API diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/class-use/App.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/class-use/App.html index c3d26cd8b..9ada5f147 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/class-use/App.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/class-use/App.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.2 API) +Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.ArgumentName.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.ArgumentName.html index f02176cdf..3b83ad082 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.ArgumentName.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.ArgumentName.html @@ -2,13 +2,13 @@ - + -CliParser.ArgumentName (Dependency-Check Command Line 1.0.2 API) +CliParser.ArgumentName (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ CliParser.ArgumentName (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CliParser.ArgumentName (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="CliParser.ArgumentName (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.html index 36fd45e99..727eb55b5 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.html @@ -2,13 +2,13 @@ - + -CliParser (Dependency-Check Command Line 1.0.2 API) +CliParser (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ CliParser (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CliParser (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="CliParser (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.ArgumentName.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.ArgumentName.html index 1e811f490..5ed525b1d 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.ArgumentName.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.ArgumentName.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-Check Command Line 1.0.2 API) +Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.html index f5d521355..9bd1ee37d 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command Line 1.0.2 API) +Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-frame.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-frame.html index e8cab15eb..584be1e96 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-frame.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.2 API) +org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.3 API) - + diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-summary.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-summary.html index 92e770641..e1ad130ce 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-summary.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.2 API) +org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-tree.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-tree.html index 810b509a7..33cfde96f 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-tree.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0.2 API) +org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-use.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-use.html index f7ba7fe9c..361496142 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-use.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.2 API) +Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-frame.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-frame.html index 3b5fd42d8..10f68bec4 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck (Dependency-Check Command Line 1.0.2 API) +org.owasp.dependencycheck (Dependency-Check Command Line 1.0.3 API) - + diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html index 7a9fbb7d6..2766625a9 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck (Dependency-Check Command Line 1.0.2 API) +org.owasp.dependencycheck (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-tree.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-tree.html index fee120e19..11269a4f5 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-tree.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.2 API) +org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.2 A function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-use.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-use.html index 4744fcc46..2af03fd73 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-use.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.2 API) +Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.2 A function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/apidocs/overview-frame.html b/dependency-check-cli/apidocs/overview-frame.html index c933d5a86..4788fed94 100644 --- a/dependency-check-cli/apidocs/overview-frame.html +++ b/dependency-check-cli/apidocs/overview-frame.html @@ -2,13 +2,13 @@ - + -Overview List (Dependency-Check Command Line 1.0.2 API) +Overview List (Dependency-Check Command Line 1.0.3 API) - + diff --git a/dependency-check-cli/apidocs/overview-summary.html b/dependency-check-cli/apidocs/overview-summary.html index deac7deac..b9aa57416 100644 --- a/dependency-check-cli/apidocs/overview-summary.html +++ b/dependency-check-cli/apidocs/overview-summary.html @@ -2,13 +2,13 @@ - + -Overview (Dependency-Check Command Line 1.0.2 API) +Overview (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Overview (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Overview (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Overview (Dependency-Check Command Line 1.0.3 API)"; } } @@ -82,7 +82,7 @@ function windowTitle()

    -Dependency-Check Command Line 1.0.2 API +Dependency-Check Command Line 1.0.3 API

    diff --git a/dependency-check-cli/apidocs/overview-tree.html b/dependency-check-cli/apidocs/overview-tree.html index 092e88f22..1b29e7e63 100644 --- a/dependency-check-cli/apidocs/overview-tree.html +++ b/dependency-check-cli/apidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (Dependency-Check Command Line 1.0.2 API) +Class Hierarchy (Dependency-Check Command Line 1.0.3 API) - + @@ -16,7 +16,7 @@ Class Hierarchy (Dependency-Check Command Line 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (Dependency-Check Command Line 1.0.2 API)"; + parent.document.title="Class Hierarchy (Dependency-Check Command Line 1.0.3 API)"; } } diff --git a/dependency-check-cli/checkstyle.html b/dependency-check-cli/checkstyle.html index 978f15ef9..e531087ad 100644 --- a/dependency-check-cli/checkstyle.html +++ b/dependency-check-cli/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Checkstyle Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.cli.html b/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.cli.html index 3898fec1f..b9f3573b4 100644 --- a/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.cli.html +++ b/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.cli.html @@ -38,6 +38,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); - + diff --git a/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.html b/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.html index 0856eeece..853b82e41 100644 --- a/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.html +++ b/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.html @@ -38,6 +38,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); - + diff --git a/dependency-check-cli/cobertura/frame-summary.html b/dependency-check-cli/cobertura/frame-summary.html index 81875c09a..49035f075 100644 --- a/dependency-check-cli/cobertura/frame-summary.html +++ b/dependency-check-cli/cobertura/frame-summary.html @@ -26,6 +26,6 @@ var packageTable = new SortableTable(document.getElementById("packageResults"), ["String", "Number", "Percentage", "Percentage", "FormattedNumber"]); packageTable.sort(0); - + diff --git a/dependency-check-cli/cobertura/org.owasp.dependencycheck.App.html b/dependency-check-cli/cobertura/org.owasp.dependencycheck.App.html index 2e91afc5a..1d693fbca 100644 --- a/dependency-check-cli/cobertura/org.owasp.dependencycheck.App.html +++ b/dependency-check-cli/cobertura/org.owasp.dependencycheck.App.html @@ -344,6 +344,6 @@
     }
    - + diff --git a/dependency-check-cli/cobertura/org.owasp.dependencycheck.cli.CliParser.html b/dependency-check-cli/cobertura/org.owasp.dependencycheck.cli.CliParser.html index c3fad0cca..31b1d2d11 100644 --- a/dependency-check-cli/cobertura/org.owasp.dependencycheck.cli.CliParser.html +++ b/dependency-check-cli/cobertura/org.owasp.dependencycheck.cli.CliParser.html @@ -887,6 +887,6 @@
     }
    - + diff --git a/dependency-check-cli/cpd.html b/dependency-check-cli/cpd.html index 4d52b2223..1d380d828 100644 --- a/dependency-check-cli/cpd.html +++ b/dependency-check-cli/cpd.html @@ -1,13 +1,13 @@ - + dependency-check-cli - CPD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/dependency-updates-report.html b/dependency-check-cli/dependency-updates-report.html index 024b685c4..9a69cfe95 100644 --- a/dependency-check-cli/dependency-updates-report.html +++ b/dependency-check-cli/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Dependency Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -286,7 +286,7 @@ org.owasp dependency-check-core -1.0.2 +1.0.3 compile jar @@ -371,7 +371,7 @@ dependency-check-core Current Version -1.0.2 +1.0.3 Scope compile diff --git a/dependency-check-cli/findbugs.html b/dependency-check-cli/findbugs.html index 56e44d31e..db976bdce 100644 --- a/dependency-check-cli/findbugs.html +++ b/dependency-check-cli/findbugs.html @@ -1,13 +1,13 @@ - + dependency-check-cli - FindBugs Bug Detector Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/index.html b/dependency-check-cli/index.html index 7a582fc4e..ca9b56f76 100644 --- a/dependency-check-cli/index.html +++ b/dependency-check-cli/index.html @@ -1,13 +1,13 @@ - + dependency-check-cli - About @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/installation.html b/dependency-check-cli/installation.html index 0a8fb815c..de2811b41 100644 --- a/dependency-check-cli/installation.html +++ b/dependency-check-cli/installation.html @@ -1,13 +1,13 @@ - + dependency-check-cli - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -132,24 +132,18 @@

    Installation & Usage

    -

    Downlod the dependency-check command line tool here. 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:

    +

    Downlod the dependency-check command line tool here. 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"
    -
    +dependency-check.sh --app "My App Name" --scan "/java/application/lib" + diff --git a/dependency-check-cli/license.html b/dependency-check-cli/license.html index dce38a7f0..1d5b5f46a 100644 --- a/dependency-check-cli/license.html +++ b/dependency-check-cli/license.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/plugin-updates-report.html b/dependency-check-cli/plugin-updates-report.html index 29daf5300..a2272af95 100644 --- a/dependency-check-cli/plugin-updates-report.html +++ b/dependency-check-cli/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Plugin Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -223,7 +223,7 @@ # of plugins using the latest version available -4 +2 # of plugins where the next version available is smaller than an incremental version update @@ -235,7 +235,7 @@ # of plugins where the next version available is a minor version update -9 +11 # of plugins where the next version available is a major version update @@ -351,13 +351,13 @@ 3.0 - + org.apache.maven.plugins maven-deploy-plugin -2.7 - +2.7 +2.8 @@ -431,13 +431,13 @@ - + org.codehaus.mojo appassembler-maven-plugin -1.4 - +1.4 +1.5 @@ -480,7 +480,7 @@ 0.7 Newer versions -0.8 Next Minor +0.8 Next Minor
    0.9 Latest Minor

    Plugin org.apache.maven.plugins:maven-antrun-plugin

    @@ -576,7 +576,7 @@
    - + @@ -585,7 +585,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.plugins
    maven-deploy-plugin
    Current Version2.7
    +2.7 + +Newer versions +2.8 Next Minor

    Plugin org.apache.maven.plugins:maven-enforcer-plugin

    @@ -621,7 +624,7 @@ -
    2.3.1
    Newer versions2.4 Next Minor
    +2.4 Next Minor
    2.5 Latest Minor

    Plugin org.apache.maven.plugins:maven-jar-plugin

    @@ -786,7 +789,7 @@
    - + @@ -795,7 +798,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.codehaus.mojo
    appassembler-maven-plugin
    Current Version1.4
    +1.4 + +Newer versions +1.5 Next Minor

    Plugin org.codehaus.mojo:cobertura-maven-plugin

    diff --git a/dependency-check-cli/pmd.html b/dependency-check-cli/pmd.html index c78714d26..d021ddf5d 100644 --- a/dependency-check-cli/pmd.html +++ b/dependency-check-cli/pmd.html @@ -1,13 +1,13 @@ - + dependency-check-cli - PMD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/project-info.html b/dependency-check-cli/project-info.html index 23eba2630..658ea4d3c 100644 --- a/dependency-check-cli/project-info.html +++ b/dependency-check-cli/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/project-reports.html b/dependency-check-cli/project-reports.html index e90f8efd8..87e3453fd 100644 --- a/dependency-check-cli/project-reports.html +++ b/dependency-check-cli/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Generated Reports @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/project-summary.html b/dependency-check-cli/project-summary.html index ab53e02dc..b4c862841 100644 --- a/dependency-check-cli/project-summary.html +++ b/dependency-check-cli/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -196,7 +196,7 @@ - + diff --git a/dependency-check-cli/surefire-report.html b/dependency-check-cli/surefire-report.html index 722cead76..175bfb530 100644 --- a/dependency-check-cli/surefire-report.html +++ b/dependency-check-cli/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -305,7 +305,7 @@ function toggleDisplay(elementId) { - + @@ -321,7 +321,7 @@ function toggleDisplay(elementId) { - + @@ -329,11 +329,11 @@ function toggleDisplay(elementId) { - + - + diff --git a/dependency-check-cli/taglist.html b/dependency-check-cli/taglist.html index 0d1bfcc66..30f814c55 100644 --- a/dependency-check-cli/taglist.html +++ b/dependency-check-cli/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Tag List report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-cli/xref-test/index.html b/dependency-check-cli/xref-test/index.html index 7e561ffa4..646a9d6fe 100644 --- a/dependency-check-cli/xref-test/index.html +++ b/dependency-check-cli/xref-test/index.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference + Dependency-Check Command Line 1.0.3 Reference diff --git a/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-frame.html b/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-frame.html index 9990d9bbd..eee153d90 100644 --- a/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-frame.html +++ b/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference Package org.owasp.dependencycheck.cli + Dependency-Check Command Line 1.0.3 Reference Package org.owasp.dependencycheck.cli diff --git a/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-summary.html b/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-summary.html index 0e2b06b8c..ac43c2eed 100644 --- a/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-summary.html +++ b/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference Package org.owasp.dependencycheck.cli + Dependency-Check Command Line 1.0.3 Reference Package org.owasp.dependencycheck.cli diff --git a/dependency-check-cli/xref-test/overview-frame.html b/dependency-check-cli/xref-test/overview-frame.html index 10274e72b..3c5e1e824 100644 --- a/dependency-check-cli/xref-test/overview-frame.html +++ b/dependency-check-cli/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference + Dependency-Check Command Line 1.0.3 Reference diff --git a/dependency-check-cli/xref-test/overview-summary.html b/dependency-check-cli/xref-test/overview-summary.html index e4e3a61e4..f1e835985 100644 --- a/dependency-check-cli/xref-test/overview-summary.html +++ b/dependency-check-cli/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference + Dependency-Check Command Line 1.0.3 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Command Line 1.0.2 Reference

    +

    Dependency-Check Command Line 1.0.3 Reference

    dependency-check-cli
    Version1.0.2
    1.0.3
    Type jar
    testParse_printHelp0.046
    0.043
    testParse_printVersionInfo
    testParse0
    0.001
    testParse_unknown
    testParse_version0
    0.001
    testParse_scan_unknownFile0.001
    0.002
    testParse_scan_withFileExists
    diff --git a/dependency-check-cli/xref/index.html b/dependency-check-cli/xref/index.html index 7e561ffa4..646a9d6fe 100644 --- a/dependency-check-cli/xref/index.html +++ b/dependency-check-cli/xref/index.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference + Dependency-Check Command Line 1.0.3 Reference diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-frame.html b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-frame.html index f3eb768f5..4575741bc 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-frame.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference Package org.owasp.dependencycheck.cli + Dependency-Check Command Line 1.0.3 Reference Package org.owasp.dependencycheck.cli diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-summary.html b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-summary.html index bc7705602..92bd7ad58 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-summary.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference Package org.owasp.dependencycheck.cli + Dependency-Check Command Line 1.0.3 Reference Package org.owasp.dependencycheck.cli diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html b/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html index 0bbccd50b..17886d8e4 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference Package org.owasp.dependencycheck + Dependency-Check Command Line 1.0.3 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html b/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html index 022ed282a..44c8055b8 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference Package org.owasp.dependencycheck + Dependency-Check Command Line 1.0.3 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-cli/xref/overview-frame.html b/dependency-check-cli/xref/overview-frame.html index 2f20522ca..df6c8fc97 100644 --- a/dependency-check-cli/xref/overview-frame.html +++ b/dependency-check-cli/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference + Dependency-Check Command Line 1.0.3 Reference diff --git a/dependency-check-cli/xref/overview-summary.html b/dependency-check-cli/xref/overview-summary.html index 517531d6b..fb135535c 100644 --- a/dependency-check-cli/xref/overview-summary.html +++ b/dependency-check-cli/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.2 Reference + Dependency-Check Command Line 1.0.3 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Command Line 1.0.2 Reference

    +

    Dependency-Check Command Line 1.0.3 Reference

    diff --git a/dependency-check-core/apidocs/allclasses-frame.html b/dependency-check-core/apidocs/allclasses-frame.html index 5f6c7149e..73907c8e9 100644 --- a/dependency-check-core/apidocs/allclasses-frame.html +++ b/dependency-check-core/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Core 1.0.2 API) +All Classes (Dependency-Check Core 1.0.3 API) - + @@ -26,6 +26,8 @@ All Classes (Dependency-Check Core 1.0.2 API)
    AbstractTokenizingFilter
    +AbstractUpdateTask +
    Activation
    ActivationFile @@ -48,6 +50,8 @@ All Classes (Dependency-Check Core 1.0.2 API)
    BaseIndex
    +BatchUpdateTask +
    Build
    Build.Extensions @@ -324,12 +328,20 @@ All Classes (Dependency-Check Core 1.0.2 API)
    Site
    +StandardUpdateTask +
    TokenPairConcatenatingFilter
    +Updateable +
    UpdateException
    UpdateService
    +UpdateTask +
    +UpdateTaskFactory +
    UrlStringUtils
    UrlTokenizingFilter diff --git a/dependency-check-core/apidocs/allclasses-noframe.html b/dependency-check-core/apidocs/allclasses-noframe.html index 592f411e4..ada210f7a 100644 --- a/dependency-check-core/apidocs/allclasses-noframe.html +++ b/dependency-check-core/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Core 1.0.2 API) +All Classes (Dependency-Check Core 1.0.3 API) - + @@ -26,6 +26,8 @@ All Classes (Dependency-Check Core 1.0.2 API)
    AbstractTokenizingFilter
    +AbstractUpdateTask +
    Activation
    ActivationFile @@ -48,6 +50,8 @@ All Classes (Dependency-Check Core 1.0.2 API)
    BaseIndex
    +BatchUpdateTask +
    Build
    Build.Extensions @@ -324,12 +328,20 @@ All Classes (Dependency-Check Core 1.0.2 API)
    Site
    +StandardUpdateTask +
    TokenPairConcatenatingFilter
    +Updateable +
    UpdateException
    UpdateService
    +UpdateTask +
    +UpdateTaskFactory +
    UrlStringUtils
    UrlTokenizingFilter diff --git a/dependency-check-core/apidocs/constant-values.html b/dependency-check-core/apidocs/constant-values.html index 5727d9462..8f41eebda 100644 --- a/dependency-check-core/apidocs/constant-values.html +++ b/dependency-check-core/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (Dependency-Check Core 1.0.2 API) +Constant Field Values (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Constant Field Values (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Constant Field Values (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/deprecated-list.html b/dependency-check-core/apidocs/deprecated-list.html index 8188da4df..ad63544e7 100644 --- a/dependency-check-core/apidocs/deprecated-list.html +++ b/dependency-check-core/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (Dependency-Check Core 1.0.2 API) +Deprecated List (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Deprecated List (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Deprecated List (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/help-doc.html b/dependency-check-core/apidocs/help-doc.html index 4f3113509..434299574 100644 --- a/dependency-check-core/apidocs/help-doc.html +++ b/dependency-check-core/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (Dependency-Check Core 1.0.2 API) +API Help (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ API Help (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (Dependency-Check Core 1.0.2 API)"; + parent.document.title="API Help (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/index-all.html b/dependency-check-core/apidocs/index-all.html index ab97644e9..bb4bd813b 100644 --- a/dependency-check-core/apidocs/index-all.html +++ b/dependency-check-core/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (Dependency-Check Core 1.0.2 API) +Index (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Index (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Index (Dependency-Check Core 1.0.3 API)"; } } @@ -79,7 +79,7 @@ function windowTitle() -ABCDEFGHIJLMNOPRSTUV
    +ABCDEFGHIJLMNOPRSTUVW

    A

    @@ -90,6 +90,9 @@ Constructor for class org.owasp.dependencycheck.analyzer.AbstractTokenizingFilter(TokenStream) - Constructor for class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter
    Constructs a new AbstractTokenizingFilter. +
    AbstractUpdateTask - Class in org.owasp.dependencycheck.data.update
    Class responsible for updating the CPE and NVDCVE data stores.
    AbstractUpdateTask(DataStoreMetaInfo) - +Constructor for class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Initializes the AbstractUpdateTask.
    Activation - Class in org.owasp.dependencycheck.jaxb.pom.generated
    The conditions within the build runtime environment which will trigger the automatic inclusion of the build profile.
    Activation() - Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.Activation @@ -110,6 +113,12 @@ Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.activeByDefault - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Activation
      +
    add(String, String, String) - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Adds a new entry of updateable information to the contained collection. +
    add(String, String, String, boolean) - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Adds a new entry of updateable information to the contained collection.
    addAnalysisException(Exception) - Method in class org.owasp.dependencycheck.dependency.Dependency
    Adds an exception to the analysis exceptions collection. @@ -317,6 +326,9 @@ Static variable in class org.owasp.dependencycheck.data.update.BATCH_UPDATE_URL - Static variable in class org.owasp.dependencycheck.utils.Settings.KEYS
    The location of the batch update URL. +
    BatchUpdateTask - Class in org.owasp.dependencycheck.data.update
    Class responsible for updating the CPE and NVDCVE data stores.
    BatchUpdateTask(DataStoreMetaInfo) - +Constructor for class org.owasp.dependencycheck.data.update.BatchUpdateTask +
    Constructs a new BatchUpdateTask.
    Build - Class in org.owasp.dependencycheck.jaxb.pom.generated
    3.0.0+
    Build() - Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.Build
      @@ -401,6 +413,9 @@ Method in class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter
    Resets the Filter and clears any internal state data that may have been left-over from previous uses of the Filter. +
    clear() - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Clears the contained collection of NvdCveInfo entries.
    close() - Method in class org.owasp.dependencycheck.analyzer.AbstractAnalyzer
    The close method does nothing for this Analyzer. @@ -441,6 +456,9 @@ Method in class org.owasp.dependencycheck.data.nvdcve.close() - Method in class org.owasp.dependencycheck.utils.NonClosingStream
    Prevents closing of the stream. +
    closeDataStores() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Closes the CVE and CPE data stores.
    comments - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.License
      @@ -916,9 +934,6 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.delete(File) - Static method in class org.owasp.dependencycheck.utils.FileUtils
    Deletes a file. -
    delete(File, boolean) - -Static method in class org.owasp.dependencycheck.utils.FileUtils -
    Deletes a file.
    DELETE_REFERENCE - Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB
    SQL Statement to delete references by vulnerability ID. @@ -928,6 +943,9 @@ Static variable in class org.owasp.dependencycheck.data.nvdcve.DELETE_VULNERABILITY - Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB
    SQL Statement to delete a vulnerability by CVE. +
    deleteExistingData() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Deletes the existing data directories.
    deleteExistingData() - Method in class org.owasp.dependencycheck.data.update.DatabaseUpdater
    Deletes the existing data directories. @@ -1432,6 +1450,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getClassifier() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Dependency
    Gets the value of the classifier property. +
    getCollection() - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Returns the collection of NvdCveInfo objects.
    getComments() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.License
    Gets the value of the comments property. @@ -1462,10 +1483,16 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getContributors() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Model
    Gets the value of the contributors property. +
    getCpeIndex() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Returns the CpeIndex.
    getCPEs(String, String) - Method in class org.owasp.dependencycheck.data.nvdcve.CveDB
    Searches the CPE entries in the database and retrieves all entries for a given vendor and product combination. +
    getCveDB() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Returns the CveDB.
    getCvssAccessComplexity() - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Get the value of cvssAccessComplexity. @@ -2049,6 +2076,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getPreviousVersion() - Method in class org.owasp.dependencycheck.dependency.VulnerableSoftware
    Get the value of previousVersion. +
    getPreviousWord() - +Method in class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter +
    Returns the previous word.
    getProduct() - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry
    Get the value of product. @@ -2061,6 +2091,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getProfiles() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Model
    Gets the value of the profiles property. +
    getProperties() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Returns the data store properties.
    getProperties() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Contributor
    Gets the value of the properties property. @@ -2286,6 +2319,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getTimestamp() - Method in class org.owasp.dependencycheck.data.update.NvdCveInfo
    Get the value of timestamp - epoch time. +
    getTimeStamp(String) - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Returns the timestamp for the given entry.
    getTimezone() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Contributor
    Gets the value of the timezone property. @@ -2313,9 +2349,15 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getUnsubscribe() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.MailingList
    Gets the value of the unsubscribe property. +
    getUpdateable() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Gets the updateable NVD CVE Entries.
    getUpdatePolicy() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy
    Gets the value of the updatePolicy property. +
    getUpdateTask() - +Static method in class org.owasp.dependencycheck.data.update.UpdateTaskFactory +
    Constructs the appropriate update task based on configuration.
    getUrl() - Method in class org.owasp.dependencycheck.data.update.NvdCveInfo
    Get the value of url. @@ -2425,6 +2467,9 @@ Method in class org.owasp.dependencycheck.dependency.EvidenceCollection
    Returns a set of Weightings - a list of terms that are believed to be of higher confidence when also found in another location. +
    getWords() - +Method in class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter +
    Returns the words list.
    goal - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals
      @@ -2487,6 +2532,9 @@ Method in class org.owasp.dependencycheck.dependency.hashCode() - Method in class org.owasp.dependencycheck.utils.DependencyVersion
    Calculates the hashCode for this object. +
    hasNext() - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Returns whether or not there is another item in the collection.
    hasPreviousVersion() - Method in class org.owasp.dependencycheck.dependency.VulnerableSoftware
    Indicates if previous versions of this software are vulnerable. @@ -2529,6 +2577,9 @@ Constructor for class org.owasp.dependencycheck.dependency.DependencySimilarity
    Override the default idf implementation so that frequency within all document is ignored. +
    importXML(File, File) - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Imports the NVD CVE XML File into the Lucene Index.
    inceptionYear - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Model
      @@ -2667,8 +2718,8 @@ Method in class org.owasp.dependencycheck.data.nvdcve.isCVSSScoreNode() - Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
    Checks if the handler is at the CVSS_SCORE node. -
    isDoBatchUpdate() - -Method in class org.owasp.dependencycheck.data.update.DatabaseUpdater +
    isDoBatchUpdate() - +Method in class org.owasp.dependencycheck.data.update.BatchUpdateTask
    Get the value of doBatchUpdate
    isEmpty() - Method in class org.owasp.dependencycheck.data.update.DataStoreMetaInfo @@ -2739,6 +2790,15 @@ Method in class org.owasp.dependencycheck.data.lucene.isUniqueVersion() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository
    Gets the value of the uniqueVersion property. +
    isUpdateNeeded() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Gets whether or not an update is needed. +
    isUpdateNeeded() - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Gets whether or not an update is needed. +
    isUpdateNeeded() - +Method in interface org.owasp.dependencycheck.data.update.UpdateTask +
    Gets whether or not an update is needed.
    isUrl(String) - Static method in class org.owasp.dependencycheck.utils.UrlStringUtils
    Tests if the given text is url. @@ -2769,6 +2829,9 @@ Method in class org.owasp.dependencycheck.data.nvdcve.isVulnSummaryNode() - Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
    Checks if the handler is at the VULN_SUMMARY node. +
    iterator() - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Returns an iterator for the NvdCveInfo contained.
    iterator(Evidence.Confidence) - Method in class org.owasp.dependencycheck.dependency.EvidenceCollection
    Used to iterate over evidence of the specified confidence. @@ -2978,6 +3041,9 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.newHashSet(String...) - Static method in class org.owasp.dependencycheck.analyzer.AbstractAnalyzer
    Utility method to help in the creation of the extensions set. +
    next() - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Returns the next item in the collection.
    NonClosingStream - Class in org.owasp.dependencycheck.utils
    NonClosingStream is a stream filter which prevents another class that processes the stream from closing it.
    NonClosingStream(InputStream) - Constructor for class org.owasp.dependencycheck.utils.NonClosingStream @@ -3065,6 +3131,9 @@ Method in class org.owasp.dependencycheck.data.cpe.open() - Method in class org.owasp.dependencycheck.data.nvdcve.CveDB
    Opens the database connection. +
    openDataStores() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Opens the CVE and CPE data stores.
    openDirectory() - Method in class org.owasp.dependencycheck.data.cpe.BaseIndex
    Returns the Lucene directory object for the CPE Index. @@ -3370,6 +3439,9 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Relocation - Class in org.owasp.dependencycheck.jaxb.pom.generated
    Describes where an artifact has moved to.
    Relocation() - Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.Relocation
      +
    remove() - +Method in class org.owasp.dependencycheck.data.update.Updateable +
    Removes the current NvdCveInfo object from the collection.
    removeProperty(String) - Static method in class org.owasp.dependencycheck.utils.Settings
    Removes a property from the local properties collection. @@ -3491,9 +3563,6 @@ Method in class org.owasp.dependencycheck.data.update.saveEntry(IndexEntry) - Method in class org.owasp.dependencycheck.data.cpe.CpeIndexWriter
    Saves a CPE IndexEntry into the Lucene index. -
    saveEntry(Vulnerability) - -Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler -
    Saves a vulnerability to the CVE Database.
    scan(String[]) - Method in class org.owasp.dependencycheck.Engine
    Scans an array of files or directories. @@ -3711,6 +3780,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setDefaultGoal(String) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase
    Sets the value of the defaultGoal property. +
    setDeleteAndRecreate(boolean) - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Set the value of deleteAndRecreate.
    setDependencies(DependencyManagement.Dependencies) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement
    Sets the value of the dependencies property. @@ -3765,8 +3837,8 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setDistributionManagement(DistributionManagement) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Profile
    Sets the value of the distributionManagement property. -
    setDoBatchUpdate(boolean) - -Method in class org.owasp.dependencycheck.data.update.DatabaseUpdater +
    setDoBatchUpdate(boolean) - +Method in class org.owasp.dependencycheck.data.update.BatchUpdateTask
    Set the value of doBatchUpdate
    setDocumentId(String) - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry @@ -4375,6 +4447,12 @@ Method in class org.owasp.dependencycheck.dependency.setVulnerableSoftware(SortedSet<VulnerableSoftware>) - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Set the value of vulnerableSoftware. +
    shouldDeleteAndRecreate() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Get the value of deleteAndRecreate. +
    shouldDeleteAndRecreate() - +Method in interface org.owasp.dependencycheck.data.update.UpdateTask +
    Get the value of deleteAndRecreate.
    site - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement
      @@ -4393,6 +4471,9 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.sourceDirectory - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Build
      +
    StandardUpdateTask - Class in org.owasp.dependencycheck.data.update
    Class responsible for updating the CPE and NVDCVE data stores.
    StandardUpdateTask(DataStoreMetaInfo) - +Constructor for class org.owasp.dependencycheck.data.update.StandardUpdateTask +
    Constructs a new Standard Update Task.
    startDocument() - Method in class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter
    Called at the start of the document parsing. @@ -4504,6 +4585,9 @@ Constructor for class org.owasp.dependencycheck.data.lucene.toString() - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry
    Standard implementation of toString showing vendor and product. +
    toString() - +Method in class org.owasp.dependencycheck.data.update.Updateable +
     
    toString() - Method in class org.owasp.dependencycheck.dependency.Dependency
    Standard toString() implementation showing the filename, actualFilePath, @@ -4543,13 +4627,30 @@ Method in interface org.owasp.dependencycheck.data.update() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Updates the data store to the latest version. +
    update() - +Method in class org.owasp.dependencycheck.data.update.BatchUpdateTask +
    Downloads the latest NVD CVE XML file from the web and imports it into + the current CVE Database.
    update() - Method in class org.owasp.dependencycheck.data.update.DatabaseUpdater
    Downloads the latest NVD CVE XML file from the web and imports it into the current CVE Database. +
    update() - +Method in class org.owasp.dependencycheck.data.update.StandardUpdateTask +
    Downloads the latest NVD CVE XML file from the web and imports it into + the current CVE Database. +
    update() - +Method in interface org.owasp.dependencycheck.data.update.UpdateTask +
    Updates the data store to the latest version.
    UPDATE_VULNERABILITY - Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB
    SQL Statement to update a vulnerability. +
    Updateable - Class in org.owasp.dependencycheck.data.update
    Contains a collection of updateable NvdCveInfo objects.
    Updateable() - +Constructor for class org.owasp.dependencycheck.data.update.Updateable +
     
    UpdateException - Exception in org.owasp.dependencycheck.data
    An exception used when an error occurs reading a setting.
    UpdateException() - Constructor for exception org.owasp.dependencycheck.data.UpdateException
    Creates a new UpdateException. @@ -4565,7 +4666,17 @@ Constructor for exception org.owasp.dependencycheck.data.updatePolicy - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy
      -
    UpdateService - Class in org.owasp.dependencycheck.data
     
    updateVulnerability(Vulnerability) - +
    UpdateService - Class in org.owasp.dependencycheck.data
     
    updatesNeeded() - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Determines if the index needs to be updated. +
    updatesNeeded() - +Method in class org.owasp.dependencycheck.data.update.BatchUpdateTask +
    Determines if the index needs to be updated. +
    updatesNeeded() - +Method in class org.owasp.dependencycheck.data.update.StandardUpdateTask +
    Determines if the index needs to be updated. +
    UpdateTask - Interface in org.owasp.dependencycheck.data.update
    An interface defining an update task.
    UpdateTaskFactory - Class in org.owasp.dependencycheck.data.update
    An UpdateTask Factory that instantiates the correct UpdateTask based on the + given configuration.
    updateVulnerability(Vulnerability) - Method in class org.owasp.dependencycheck.data.nvdcve.CveDB
    Updates the vulnerability within the database.
    updateVulnerableSoftware(VulnerableSoftware) - @@ -4710,7 +4821,16 @@ Constructor for class org.owasp.dependencycheck.dependency.A B C D E F G H I J L M N O P R S T U V +

    +W

    +
    +
    withinRange(long, long, int) - +Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask +
    Determines if the epoch date is within the range specified of the + compareTo epoch time. +
    +
    +A B C D E F G H I J L M N O P R S T U V W diff --git a/dependency-check-core/apidocs/index.html b/dependency-check-core/apidocs/index.html index 3a63b3229..98b1513f0 100644 --- a/dependency-check-core/apidocs/index.html +++ b/dependency-check-core/apidocs/index.html @@ -2,10 +2,10 @@ - + -Dependency-Check Core 1.0.2 API +Dependency-Check Core 1.0.3 API diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.html index a3608c041..592a1d37a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.html @@ -2,13 +2,13 @@ - + -AbstractAnalyzer (Dependency-Check Core 1.0.2 API) +AbstractAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ AbstractAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AbstractAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="AbstractAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalysisException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalysisException.html index 862ab894c..1755d47c1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalysisException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalysisException.html @@ -2,13 +2,13 @@ - + -AnalysisException (Dependency-Check Core 1.0.2 API) +AnalysisException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ AnalysisException (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AnalysisException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="AnalysisException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalysisPhase.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalysisPhase.html index 7f1916234..26f0063eb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalysisPhase.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalysisPhase.html @@ -2,13 +2,13 @@ - + -AnalysisPhase (Dependency-Check Core 1.0.2 API) +AnalysisPhase (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ AnalysisPhase (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AnalysisPhase (Dependency-Check Core 1.0.2 API)"; + parent.document.title="AnalysisPhase (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/Analyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/Analyzer.html index 52dd32849..c317b12a7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/Analyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/Analyzer.html @@ -2,13 +2,13 @@ - + -Analyzer (Dependency-Check Core 1.0.2 API) +Analyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Analyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Analyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Analyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalyzerService.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalyzerService.html index 0b482a365..665224dfa 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalyzerService.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AnalyzerService.html @@ -2,13 +2,13 @@ - + -AnalyzerService (Dependency-Check Core 1.0.2 API) +AnalyzerService (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ AnalyzerService (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AnalyzerService (Dependency-Check Core 1.0.2 API)"; + parent.document.title="AnalyzerService (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/ArchiveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/ArchiveAnalyzer.html index 56aa67d5f..2b9b4d304 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/ArchiveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/ArchiveAnalyzer.html @@ -2,13 +2,13 @@ - + -ArchiveAnalyzer (Dependency-Check Core 1.0.2 API) +ArchiveAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ArchiveAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ArchiveAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ArchiveAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html index baf327a0e..57ec321de 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html @@ -2,13 +2,13 @@ - + -CPEAnalyzer (Dependency-Check Core 1.0.2 API) +CPEAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ CPEAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CPEAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="CPEAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.html index 99e653a74..fd4e53a3d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.html @@ -2,13 +2,13 @@ - + -DependencyBundlingAnalyzer (Dependency-Check Core 1.0.2 API) +DependencyBundlingAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DependencyBundlingAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyBundlingAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DependencyBundlingAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html index 7929756c6..d0cf7f721 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html @@ -2,13 +2,13 @@ - + -FalsePositiveAnalyzer (Dependency-Check Core 1.0.2 API) +FalsePositiveAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ FalsePositiveAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="FalsePositiveAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="FalsePositiveAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.html index 2ccce2f55..91a2445e9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.html @@ -2,13 +2,13 @@ - + -FileNameAnalyzer (Dependency-Check Core 1.0.2 API) +FileNameAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ FileNameAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="FileNameAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="FileNameAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/HintAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/HintAnalyzer.html index 0b03a1601..e35348480 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/HintAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/HintAnalyzer.html @@ -2,13 +2,13 @@ - + -HintAnalyzer (Dependency-Check Core 1.0.2 API) +HintAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ HintAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="HintAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="HintAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.ClassNameInformation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.ClassNameInformation.html index 0c4dcf4c2..69cef9584 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.ClassNameInformation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.ClassNameInformation.html @@ -2,13 +2,13 @@ - + -JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.2 API) +JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.2 API)"; + parent.document.title="JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.html index 2213793ae..e11048665 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.html @@ -2,13 +2,13 @@ - + -JarAnalyzer (Dependency-Check Core 1.0.2 API) +JarAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ JarAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="JarAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="JarAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.html index dd8a3369e..1917ebe5e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.html @@ -2,13 +2,13 @@ - + -JavaScriptAnalyzer (Dependency-Check Core 1.0.2 API) +JavaScriptAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ JavaScriptAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="JavaScriptAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="JavaScriptAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.html index 7c959a68f..bf7a0fcdf 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.html @@ -2,13 +2,13 @@ - + -NvdCveAnalyzer (Dependency-Check Core 1.0.2 API) +NvdCveAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ NvdCveAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="NvdCveAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="NvdCveAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AbstractAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AbstractAnalyzer.html index 985f7a5f5..f1f8163d7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AbstractAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AbstractAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisException.html index 2c9bf7640..593931115 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisPhase.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisPhase.html index b7146c335..f2a207683 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisPhase.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisPhase.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/Analyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/Analyzer.html index 6424b07dd..1387c13bc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/Analyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/Analyzer.html @@ -2,13 +2,13 @@ - + -Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check Core 1.0.2 API) +Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalyzerService.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalyzerService.html index 7d9f8bd12..6bea27731 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalyzerService.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalyzerService.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveAnalyzer.html index 8d7b56d5c..601c04d6a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/CPEAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/CPEAnalyzer.html index 6e047d136..bd84a4b62 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/CPEAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/CPEAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/DependencyBundlingAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/DependencyBundlingAnalyzer.html index 129591b0c..b842c1852 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/DependencyBundlingAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/DependencyBundlingAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FalsePositiveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FalsePositiveAnalyzer.html index abb759b81..d0c226bbb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FalsePositiveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FalsePositiveAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FileNameAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FileNameAnalyzer.html index 0b40d713f..9a1c6d59e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FileNameAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FileNameAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/HintAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/HintAnalyzer.html index 94680facf..e5f6ec254 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/HintAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/HintAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.ClassNameInformation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.ClassNameInformation.html index c01f0725a..5060c8417 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.ClassNameInformation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.ClassNameInformation.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformatio function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.html index d53ae532c..f43ef764b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JavaScriptAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JavaScriptAnalyzer.html index f3ae97247..60a94517b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JavaScriptAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JavaScriptAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/NvdCveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/NvdCveAnalyzer.html index e5ca44949..c2108154c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/NvdCveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/NvdCveAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Chec function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-frame.html index 8003ed07a..ffe0db1e6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html index 04228ca14..5d8ea39aa 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-tree.html index 7eac18291..4ea383270 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-use.html index c44ad35e0..fcb58ec64 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/class-use/Engine.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/class-use/Engine.html index 517e383b0..296a81baf 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/class-use/Engine.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/class-use/Engine.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectoryLockException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectoryLockException.html index 806d920f9..9cc3be198 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectoryLockException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectoryLockException.html @@ -2,13 +2,13 @@ - + -DirectoryLockException (Dependency-Check Core 1.0.2 API) +DirectoryLockException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DirectoryLockException (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DirectoryLockException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DirectoryLockException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectorySpinLock.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectorySpinLock.html index 3ac044ce2..d068353c9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectorySpinLock.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectorySpinLock.html @@ -2,13 +2,13 @@ - + -DirectorySpinLock (Dependency-Check Core 1.0.2 API) +DirectorySpinLock (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DirectorySpinLock (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DirectorySpinLock (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DirectorySpinLock (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/InvalidDirectoryException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/InvalidDirectoryException.html index fe113b51b..924dffebe 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/InvalidDirectoryException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/InvalidDirectoryException.html @@ -2,13 +2,13 @@ - + -InvalidDirectoryException (Dependency-Check Core 1.0.2 API) +InvalidDirectoryException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ InvalidDirectoryException (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="InvalidDirectoryException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="InvalidDirectoryException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectoryLockException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectoryLockException.html index fdb10c461..17cd64f84 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectoryLockException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectoryLockException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectorySpinLock.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectorySpinLock.html index 323927e1c..a686f7e3c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectorySpinLock.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectorySpinLock.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/InvalidDirectoryException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/InvalidDirectoryException.html index 2febc7d9a..f392b816e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/InvalidDirectoryException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/InvalidDirectoryException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-frame.html index 74f128f5e..431601c97 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-summary.html index 0d34b338c..5d982deea 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-tree.html index c56322d22..b5954b2c1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-use.html index 27137df3d..a9d68029a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/CachedWebDataSource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/CachedWebDataSource.html index 83247c46c..22b928596 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/CachedWebDataSource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/CachedWebDataSource.html @@ -2,13 +2,13 @@ - + -CachedWebDataSource (Dependency-Check Core 1.0.2 API) +CachedWebDataSource (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ CachedWebDataSource (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CachedWebDataSource (Dependency-Check Core 1.0.2 API)"; + parent.document.title="CachedWebDataSource (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateException.html index 3cf591cfc..ccd52a0b0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateException.html @@ -2,13 +2,13 @@ - + -UpdateException (Dependency-Check Core 1.0.2 API) +UpdateException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ UpdateException (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="UpdateException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="UpdateException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateService.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateService.html index 9dc7c5030..7ef8534e6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateService.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateService.html @@ -2,13 +2,13 @@ - + -UpdateService (Dependency-Check Core 1.0.2 API) +UpdateService (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ UpdateService (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="UpdateService (Dependency-Check Core 1.0.2 API)"; + parent.document.title="UpdateService (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/CachedWebDataSource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/CachedWebDataSource.html index 0745b9703..0b88afe34 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/CachedWebDataSource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/CachedWebDataSource.html @@ -2,13 +2,13 @@ - + -Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency-Check Core 1.0.2 API) +Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateException.html index c773c1f64..dc24e85a8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check Core 1.0.3 API)"; } } @@ -153,6 +153,22 @@ Uses of
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +static UpdateTaskUpdateTaskFactory.getUpdateTask() + +
    +          Constructs the appropriate update task based on configuration.
    +protected  voidAbstractUpdateTask.openDataStores() + +
    +          Opens the CVE and CPE data stores.
     void DataStoreMetaInfo.save(NvdCveInfo updatedValue) @@ -163,12 +179,96 @@ Uses of  voidUpdateTask.update() + +
    +          Updates the data store to the latest version.
    + voidStandardUpdateTask.update() + +
    +          Downloads the latest NVD CVE XML file from the web and imports it into + the current CVE Database.
    + void DatabaseUpdater.update()
              Downloads the latest NVD CVE XML file from the web and imports it into the current CVE Database.
    + voidBatchUpdateTask.update() + +
    +          Downloads the latest NVD CVE XML file from the web and imports it into + the current CVE Database.
    +abstract  voidAbstractUpdateTask.update() + +
    +          Updates the data store to the latest version.
    +protected  UpdateableStandardUpdateTask.updatesNeeded() + +
    +          Determines if the index needs to be updated.
    + UpdateableBatchUpdateTask.updatesNeeded() + +
    +          Determines if the index needs to be updated.
    +protected abstract  UpdateableAbstractUpdateTask.updatesNeeded() + +
    +          Determines if the index needs to be updated.
    +  +

    + + + + + + + + + + + + + +
    Constructors in org.owasp.dependencycheck.data.update that throw UpdateException
    AbstractUpdateTask(DataStoreMetaInfo properties) + +
    +          Initializes the AbstractUpdateTask.
    BatchUpdateTask(DataStoreMetaInfo properties) + +
    +          Constructs a new BatchUpdateTask.
    StandardUpdateTask(DataStoreMetaInfo properties) + +
    +          Constructs a new Standard Update Task.
     

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateService.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateService.html index 346445d0f..6f3f185d0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateService.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateService.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Cor function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/BaseIndex.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/BaseIndex.html index 92e32e9c5..0c2b4b67e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/BaseIndex.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/BaseIndex.html @@ -2,13 +2,13 @@ - + -BaseIndex (Dependency-Check Core 1.0.2 API) +BaseIndex (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ BaseIndex (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BaseIndex (Dependency-Check Core 1.0.2 API)"; + parent.document.title="BaseIndex (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CPEAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CPEAnalyzer.html deleted file mode 100644 index 46740f75a..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CPEAnalyzer.html +++ /dev/null @@ -1,631 +0,0 @@ - - - - - - - -CPEAnalyzer (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -


    - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.cpe -
    -Class CPEAnalyzer

    -
    -java.lang.Object
    -  extended by org.owasp.dependencycheck.data.cpe.CPEAnalyzer
    -
    -
    -
    All Implemented Interfaces:
    Analyzer
    -
    -
    -
    -
    public class CPEAnalyzer
    extends Object
    implements Analyzer
    - - -

    -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)
    -
    -
    - -

    - - - - - - - - - - - -
    -Constructor Summary
    CPEAnalyzer() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    - voidanalyze(Dependency dependency, - Engine engine) - -
    -          Analyzes a dependency and attempts to determine if there are any CPE - identifiers for this dependency.
    -protected  StringbuildSearch(String vendor, - String product, - Set<String> vendorWeighting, - Set<String> productWeightings) - -
    -          Builds a Lucene search string by properly escaping data and - constructing a valid search query.
    - voidclose() - -
    -          Closes the data source.
    -protected  voiddetermineCPE(Dependency dependency) - -
    -          Searches the data store of CPE entries, trying to identify the CPE for - the given dependency based on the evidence contained within.
    -protected  voidfinalize() - -
    -          Ensures that the Lucene index is closed.
    - AnalysisPhasegetAnalysisPhase() - -
    -          Returns the analysis phase that this analyzer should run in.
    - StringgetName() - -
    -          Returns the name of this analyzer.
    - Set<String>getSupportedExtensions() - -
    -          Returns true because this analyzer supports all dependency types.
    - voidinitialize() - -
    -          Opens the CPE Lucene Index.
    - booleanisOpen() - -
    -          Returns the status of the data source - is the index open.
    - voidopen() - -
    -          Opens the data source.
    -protected  List<IndexEntry>searchCPE(String vendor, - String product, - Set<String> vendorWeightings, - Set<String> productWeightings) - -
    -          Searches the Lucene CPE index to identify possible CPE entries - associated with the supplied vendor, product, and version.
    - booleansupportsExtension(String extension) - -
    -          Returns true because this analyzer supports all dependency types.
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Constructor Detail
    - -

    -CPEAnalyzer

    -
    -public CPEAnalyzer()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -open

    -
    -public void open()
    -          throws IOException,
    -                 DatabaseException
    -
    -
    Opens the data source. -

    -

    -
    -
    -
    - -
    Throws: -
    IOException - when the Lucene directory to be queried does not - exist or is corrupt. -
    DatabaseException - when the database throws an exception. This - usually occurs when the database is in use by another process.
    -
    -
    -
    - -

    -close

    -
    -public void close()
    -
    -
    Closes the data source. -

    -

    -
    Specified by:
    close in interface Analyzer
    -
    -
    -
    -
    -
    -
    - -

    -isOpen

    -
    -public boolean isOpen()
    -
    -
    Returns the status of the data source - is the index open. -

    -

    -
    -
    -
    - -
    Returns:
    true or false.
    -
    -
    -
    - -

    -finalize

    -
    -protected void finalize()
    -                 throws Throwable
    -
    -
    Ensures that the Lucene index is closed. -

    -

    -
    Overrides:
    finalize in class Object
    -
    -
    - -
    Throws: -
    Throwable - when a throwable is thrown.
    -
    -
    -
    - -

    -determineCPE

    -
    -protected void determineCPE(Dependency dependency)
    -                     throws org.apache.lucene.index.CorruptIndexException,
    -                            IOException,
    -                            org.apache.lucene.queryparser.classic.ParseException
    -
    -
    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. -

    -

    -
    -
    -
    -
    Parameters:
    dependency - the dependency to search for CPE entries on. -
    Throws: -
    org.apache.lucene.index.CorruptIndexException - is thrown when the Lucene index is corrupt. -
    IOException - is thrown when an IOException occurs. -
    org.apache.lucene.queryparser.classic.ParseException - is thrown when the Lucene query cannot be parsed.
    -
    -
    -
    - -

    -searchCPE

    -
    -protected List<IndexEntry> searchCPE(String vendor,
    -                                     String product,
    -                                     Set<String> vendorWeightings,
    -                                     Set<String> productWeightings)
    -                              throws org.apache.lucene.index.CorruptIndexException,
    -                                     IOException,
    -                                     org.apache.lucene.queryparser.classic.ParseException
    -
    -

    Searches the Lucene CPE index to identify possible CPE entries - associated with the supplied vendor, product, and version.

    - -

    If either the vendorWeightings or productWeightings lists have been - populated this data is used to add weighting factors to the search.

    -

    -

    -
    -
    -
    -
    Parameters:
    vendor - the text used to search the vendor field
    product - the text used to search the product field
    vendorWeightings - a list of strings to use to add weighting factors - to the vendor field
    productWeightings - Adds a list of strings that will be used to add - weighting factors to the product search -
    Returns:
    a list of possible CPE values -
    Throws: -
    org.apache.lucene.index.CorruptIndexException - when the Lucene index is corrupt -
    IOException - when the Lucene index is not found -
    org.apache.lucene.queryparser.classic.ParseException - when the generated query is not valid
    -
    -
    -
    - -

    -buildSearch

    -
    -protected String buildSearch(String vendor,
    -                             String product,
    -                             Set<String> vendorWeighting,
    -                             Set<String> productWeightings)
    -
    -

    Builds a Lucene search string by properly escaping data and - constructing a valid search query.

    - -

    If either the possibleVendor or possibleProducts lists have been - populated this data is used to add weighting factors to the search string - generated.

    -

    -

    -
    -
    -
    -
    Parameters:
    vendor - text to search the vendor field
    product - text to search the product field
    vendorWeighting - a list of strings to apply to the vendor to boost - the terms weight
    productWeightings - a list of strings to apply to the product to - boost the terms weight -
    Returns:
    the Lucene query
    -
    -
    -
    - -

    -analyze

    -
    -public void analyze(Dependency dependency,
    -                    Engine engine)
    -             throws AnalysisException
    -
    -
    Analyzes a dependency and attempts to determine if there are any CPE - identifiers for this dependency. -

    -

    -
    Specified by:
    analyze in interface Analyzer
    -
    -
    -
    Parameters:
    dependency - The Dependency to analyze.
    engine - The analysis engine -
    Throws: -
    AnalysisException - is thrown if there is an issue analyzing the - dependency.
    -
    -
    -
    - -

    -getSupportedExtensions

    -
    -public Set<String> getSupportedExtensions()
    -
    -
    Returns true because this analyzer supports all dependency types. -

    -

    -
    Specified by:
    getSupportedExtensions in interface Analyzer
    -
    -
    - -
    Returns:
    true.
    -
    -
    -
    - -

    -getName

    -
    -public String getName()
    -
    -
    Returns the name of this analyzer. -

    -

    -
    Specified by:
    getName in interface Analyzer
    -
    -
    - -
    Returns:
    the name of this analyzer.
    -
    -
    -
    - -

    -supportsExtension

    -
    -public boolean supportsExtension(String extension)
    -
    -
    Returns true because this analyzer supports all dependency types. -

    -

    -
    Specified by:
    supportsExtension in interface Analyzer
    -
    -
    -
    Parameters:
    extension - the file extension of the dependency being analyzed. -
    Returns:
    true.
    -
    -
    -
    - -

    -getAnalysisPhase

    -
    -public AnalysisPhase getAnalysisPhase()
    -
    -
    Returns the analysis phase that this analyzer should run in. -

    -

    -
    Specified by:
    getAnalysisPhase in interface Analyzer
    -
    -
    - -
    Returns:
    the analysis phase that this analyzer should run in.
    -
    -
    -
    - -

    -initialize

    -
    -public void initialize()
    -                throws Exception
    -
    -
    Opens the CPE Lucene Index. -

    -

    -
    Specified by:
    initialize in interface Analyzer
    -
    -
    - -
    Throws: -
    Exception - is thrown if there is an issue opening the index.
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CpeIndexReader.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CpeIndexReader.html index 390946bb8..95f521081 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CpeIndexReader.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CpeIndexReader.html @@ -2,13 +2,13 @@ - + -CpeIndexReader (Dependency-Check Core 1.0.2 API) +CpeIndexReader (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ CpeIndexReader (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CpeIndexReader (Dependency-Check Core 1.0.2 API)"; + parent.document.title="CpeIndexReader (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CpeIndexWriter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CpeIndexWriter.html index e53f43af8..ac3b352d0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CpeIndexWriter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/CpeIndexWriter.html @@ -2,13 +2,13 @@ - + -CpeIndexWriter (Dependency-Check Core 1.0.2 API) +CpeIndexWriter (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ CpeIndexWriter (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CpeIndexWriter (Dependency-Check Core 1.0.2 API)"; + parent.document.title="CpeIndexWriter (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Fields.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Fields.html index 37a931cba..6597a0e9b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Fields.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Fields.html @@ -2,13 +2,13 @@ - + -Fields (Dependency-Check Core 1.0.2 API) +Fields (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Fields (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Fields (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Fields (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Index.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Index.html deleted file mode 100644 index d755f353e..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Index.html +++ /dev/null @@ -1,454 +0,0 @@ - - - - - - - -Index (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.cpe -
    -Class Index

    -
    -java.lang.Object
    -  extended by org.owasp.dependencycheck.data.lucene.AbstractIndex
    -      extended by org.owasp.dependencycheck.data.cpe.Index
    -
    -
    -
    -
    public class Index
    extends AbstractIndex
    - - -

    -The Index class is used to utilize and maintain the CPE Index. -

    - -

    -

    -
    Author:
    -
    Jeremy Long (jeremy.long@owasp.org)
    -
    -
    - -

    - - - - - - - - - - - -
    -Constructor Summary
    Index() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    -protected  org.apache.lucene.document.DocumentconvertEntryToDoc(IndexEntry entry) - -
    -          Converts a CPE entry into a Lucene Document.
    - org.apache.lucene.analysis.AnalyzercreateIndexingAnalyzer() - -
    -          Creates an Analyzer for the CPE Index.
    - org.apache.lucene.queryparser.classic.QueryParsercreateQueryParser() - -
    -          Creates the Lucene QueryParser used when querying the index.
    - org.apache.lucene.analysis.AnalyzercreateSearchingAnalyzer() - -
    -          Creates an Analyzer for searching the CPE Index.
    - FilegetDataDirectory() - -
    -          Retrieves the directory that the JAR file exists in so that we can ensure - we always use a common data directory.
    - org.apache.lucene.store.DirectorygetDirectory() - -
    -          Returns the directory that holds the CPE Index.
    -protected  voidresetSearchingAnalyzer() - -
    -          Resets the searching analyzers
    - voidsaveEntry(IndexEntry entry) - -
    -          Saves a CPE IndexEntry into the Lucene index.
    - - - - - - - -
    Methods inherited from class org.owasp.dependencycheck.data.lucene.AbstractIndex
    close, commit, getDocument, getIndexingAnalyzer, getIndexSearcher, getIndexWriter, getQueryParser, getSearchingAnalyzer, isOpen, open, openIndexReader, openIndexWriter, search, search
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Constructor Detail
    - -

    -Index

    -
    -public Index()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -getDirectory

    -
    -public org.apache.lucene.store.Directory getDirectory()
    -                                               throws IOException
    -
    -
    Returns the directory that holds the CPE Index. -

    -

    -
    Specified by:
    getDirectory in class AbstractIndex
    -
    -
    - -
    Returns:
    the Directory containing the CPE Index. -
    Throws: -
    IOException - is thrown if an IOException occurs.
    -
    -
    -
    - -

    -getDataDirectory

    -
    -public File getDataDirectory()
    -                      throws IOException
    -
    -
    Retrieves the directory that the JAR file exists in so that we can ensure - we always use a common data directory. -

    -

    - -
    Returns:
    the data directory for this index. -
    Throws: -
    IOException - is thrown if an IOException occurs of course...
    -
    -
    -
    - -

    -createIndexingAnalyzer

    -
    -public org.apache.lucene.analysis.Analyzer createIndexingAnalyzer()
    -
    -
    Creates an Analyzer for the CPE Index. -

    -

    -
    Specified by:
    createIndexingAnalyzer in class AbstractIndex
    -
    -
    - -
    Returns:
    the CPE Analyzer.
    -
    -
    -
    - -

    -createSearchingAnalyzer

    -
    -public org.apache.lucene.analysis.Analyzer createSearchingAnalyzer()
    -
    -
    Creates an Analyzer for searching the CPE Index. -

    -

    -
    Specified by:
    createSearchingAnalyzer in class AbstractIndex
    -
    -
    - -
    Returns:
    the CPE Analyzer.
    -
    -
    -
    - -

    -createQueryParser

    -
    -public org.apache.lucene.queryparser.classic.QueryParser createQueryParser()
    -
    -
    Creates the Lucene QueryParser used when querying the index. -

    -

    -
    Specified by:
    createQueryParser in class AbstractIndex
    -
    -
    - -
    Returns:
    a QueryParser.
    -
    -
    -
    - -

    -resetSearchingAnalyzer

    -
    -protected void resetSearchingAnalyzer()
    -
    -
    Resets the searching analyzers -

    -

    -
    Specified by:
    resetSearchingAnalyzer in class AbstractIndex
    -
    -
    -
    -
    -
    -
    - -

    -saveEntry

    -
    -public void saveEntry(IndexEntry entry)
    -               throws org.apache.lucene.index.CorruptIndexException,
    -                      IOException
    -
    -
    Saves a CPE IndexEntry into the Lucene index. -

    -

    -
    Parameters:
    entry - a CPE entry. -
    Throws: -
    org.apache.lucene.index.CorruptIndexException - is thrown if the index is corrupt. -
    IOException - is thrown if an IOException occurs.
    -
    -
    -
    - -

    -convertEntryToDoc

    -
    -protected org.apache.lucene.document.Document convertEntryToDoc(IndexEntry entry)
    -
    -
    Converts a CPE entry into a Lucene Document. -

    -

    -
    Parameters:
    entry - a CPE IndexEntry. -
    Returns:
    a Lucene Document containing a CPE IndexEntry.
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/IndexEntry.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/IndexEntry.html index da45e77c9..8db20d5ea 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/IndexEntry.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/IndexEntry.html @@ -2,13 +2,13 @@ - + -IndexEntry (Dependency-Check Core 1.0.2 API) +IndexEntry (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ IndexEntry (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="IndexEntry (Dependency-Check Core 1.0.2 API)"; + parent.document.title="IndexEntry (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/BaseIndex.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/BaseIndex.html index edef2ebab..9fecd9f3b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/BaseIndex.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/BaseIndex.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cpe.BaseIndex (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.cpe.BaseIndex (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cpe.BaseIndex (Dependency-Check Cor function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.BaseIndex (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.BaseIndex (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/CpeIndexReader.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/CpeIndexReader.html index dbe8b7650..a01bfc9f6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/CpeIndexReader.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/CpeIndexReader.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexReader (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexReader (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexReader (Dependency-Chec function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexReader (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexReader (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/CpeIndexWriter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/CpeIndexWriter.html index b8275f75e..4d7c1bf8e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/CpeIndexWriter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/CpeIndexWriter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexWriter (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexWriter (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexWriter (Dependency-Chec function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexWriter (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.CpeIndexWriter (Dependency-Check Core 1.0.3 API)"; } } @@ -99,6 +99,14 @@ Packages that use +org.owasp.dependencycheck.data.update + + + org.owasp.dependencycheck.data.nvdcve.xml + +   +  

    @@ -127,6 +135,31 @@ Uses of + + + + +
    +Uses of CpeIndexWriter in org.owasp.dependencycheck.data.update
    +  +

    + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data.update that return CpeIndexWriter
    +protected  CpeIndexWriterAbstractUpdateTask.getCpeIndex() + +
    +          Returns the CpeIndex.
    +  +


    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Fields.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Fields.html index c0b6148cc..6b02b2bb7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Fields.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Fields.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/IndexEntry.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/IndexEntry.html index d330d97e3..3975dee79 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/IndexEntry.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/IndexEntry.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Co function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-frame.html index 2cc92fc4b..f17ca791c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html index 35df0975c..07c8bec3f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-tree.html index 214dece70..9930a5fad 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-use.html index 154bda7cd..119221db1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.3 API)"; } } @@ -119,6 +119,14 @@ Packages that use +org.owasp.dependencycheck.data.update + + + org.owasp.dependencycheck.data.nvdcve.xml + +   + + org.owasp.dependencycheck.dependency @@ -175,6 +183,21 @@ Classes in CpeIndexWriter +
    +            + + +  +

    + + + + + + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweDB.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweDB.html index 34b485c47..ff32f9cd1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweDB.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweDB.html @@ -2,13 +2,13 @@ - + -CweDB (Dependency-Check Core 1.0.2 API) +CweDB (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ CweDB (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CweDB (Dependency-Check Core 1.0.2 API)"; + parent.document.title="CweDB (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweHandler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweHandler.html index acb18a619..87d0c70b8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweHandler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweHandler.html @@ -2,13 +2,13 @@ - + -CweHandler (Dependency-Check Core 1.0.2 API) +CweHandler (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ CweHandler (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CweHandler (Dependency-Check Core 1.0.2 API)"; + parent.document.title="CweHandler (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweDB.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweDB.html index bf254db63..71e7fbbfd 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweDB.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweDB.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweHandler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweHandler.html index 7b821bb3d..bae5c8de2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweHandler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweHandler.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Co function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-frame.html index 263bfa963..2033c7325 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html index f165c5811..05b574334 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-tree.html index e323ca8dc..370457b1a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-use.html index a6f18bc3d..560b1e3bd 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractIndex.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractIndex.html deleted file mode 100644 index ecd4843e0..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractIndex.html +++ /dev/null @@ -1,705 +0,0 @@ - - - - - - - -AbstractIndex (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - -
    +Classes in org.owasp.dependencycheck.data.cpe used by org.owasp.dependencycheck.data.update
    CpeIndexWriter +
               
    - - - - - - - - - - - - - -
    - -
    - - - -


    - -

    - -org.owasp.dependencycheck.data.lucene -
    -Class AbstractIndex

    -
    -java.lang.Object
    -  extended by org.owasp.dependencycheck.data.lucene.AbstractIndex
    -
    -
    -
    Direct Known Subclasses:
    Index
    -
    -
    -
    -
    public abstract class AbstractIndex
    extends Object
    - - -

    -The base Index for other index objects. Implements the open and close - methods. -

    - -

    -

    -
    Author:
    -
    Jeremy Long (jeremy.long@owasp.org)
    -
    -
    - -

    - - - - - - - - - - - -
    -Constructor Summary
    AbstractIndex() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    - voidclose() - -
    -          Closes the CPE Index.
    - voidcommit() - -
    -          Commits any pending changes.
    -abstract  org.apache.lucene.analysis.AnalyzercreateIndexingAnalyzer() - -
    -          Creates the Lucene Analyzer used when indexing.
    -abstract  org.apache.lucene.queryparser.classic.QueryParsercreateQueryParser() - -
    -          Creates the Lucene QueryParser used when querying the index.
    -abstract  org.apache.lucene.analysis.AnalyzercreateSearchingAnalyzer() - -
    -          Creates the Lucene Analyzer used when querying the index.
    -abstract  org.apache.lucene.store.DirectorygetDirectory() - -
    -          Gets the directory that contains the Lucene Index.
    - org.apache.lucene.document.DocumentgetDocument(int documentId) - -
    -          Retrieves a document from the Index.
    - org.apache.lucene.analysis.AnalyzergetIndexingAnalyzer() - -
    -          Returns an Analyzer to be used when indexing.
    -protected  org.apache.lucene.search.IndexSearchergetIndexSearcher() - -
    -          Returns an IndexSearcher for the Lucene Index.
    - org.apache.lucene.index.IndexWritergetIndexWriter() - -
    -          Retrieves the IndexWriter for the Lucene Index.
    -protected  org.apache.lucene.queryparser.classic.QueryParsergetQueryParser() - -
    -          Gets a query parser
    -protected  org.apache.lucene.analysis.AnalyzergetSearchingAnalyzer() - -
    -          Returns an analyzer used for searching the index
    - booleanisOpen() - -
    -          Returns the status of the data source - is the index open.
    - voidopen() - -
    -          Opens the CPE Index.
    - voidopenIndexReader() - -
    -          Opens the Lucene Index for reading.
    - voidopenIndexWriter() - -
    -          Opens the Lucene Index Writer.
    -protected abstract  voidresetSearchingAnalyzer() - -
    -          Resets the searching analyzers
    - org.apache.lucene.search.TopDocssearch(org.apache.lucene.search.Query query, - int maxQueryResults) - -
    -          Searches the index using the given query.
    - org.apache.lucene.search.TopDocssearch(String searchString, - int maxQueryResults) - -
    -          Searches the index using the given search string.
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Constructor Detail
    - -

    -AbstractIndex

    -
    -public AbstractIndex()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -open

    -
    -public void open()
    -          throws IOException
    -
    -
    Opens the CPE Index. -

    -

    - -
    Throws: -
    IOException - is thrown if an IOException occurs opening the index.
    -
    -
    -
    - -

    -commit

    -
    -public void commit()
    -
    -
    Commits any pending changes. -

    -

    -
    -
    -
    -
    - -

    -close

    -
    -public void close()
    -
    -
    Closes the CPE Index. -

    -

    -
    -
    -
    -
    - -

    -isOpen

    -
    -public boolean isOpen()
    -
    -
    Returns the status of the data source - is the index open. -

    -

    - -
    Returns:
    true or false.
    -
    -
    -
    - -

    -openIndexWriter

    -
    -public void openIndexWriter()
    -                     throws org.apache.lucene.index.CorruptIndexException,
    -                            IOException
    -
    -
    Opens the Lucene Index Writer. -

    -

    - -
    Throws: -
    org.apache.lucene.index.CorruptIndexException - is thrown if the Lucene index is corrupt. -
    IOException - is thrown if an IOException occurs opening the index.
    -
    -
    -
    - -

    -getIndexWriter

    -
    -public org.apache.lucene.index.IndexWriter getIndexWriter()
    -                                                   throws org.apache.lucene.index.CorruptIndexException,
    -                                                          org.apache.lucene.store.LockObtainFailedException,
    -                                                          IOException
    -
    -
    Retrieves the IndexWriter for the Lucene Index. -

    -

    - -
    Returns:
    an IndexWriter. -
    Throws: -
    org.apache.lucene.index.CorruptIndexException - is thrown if the Lucene Index is corrupt. -
    org.apache.lucene.store.LockObtainFailedException - is thrown if there is an exception - obtaining a lock on the Lucene index. -
    IOException - is thrown if an IOException occurs opening the index.
    -
    -
    -
    - -

    -openIndexReader

    -
    -public void openIndexReader()
    -                     throws org.apache.lucene.index.CorruptIndexException,
    -                            IOException
    -
    -
    Opens the Lucene Index for reading. -

    -

    - -
    Throws: -
    org.apache.lucene.index.CorruptIndexException - is thrown if the index is corrupt. -
    IOException - is thrown if there is an exception reading the index.
    -
    -
    -
    - -

    -getIndexSearcher

    -
    -protected org.apache.lucene.search.IndexSearcher getIndexSearcher()
    -                                                           throws org.apache.lucene.index.CorruptIndexException,
    -                                                                  IOException
    -
    -
    Returns an IndexSearcher for the Lucene Index. -

    -

    - -
    Returns:
    an IndexSearcher. -
    Throws: -
    org.apache.lucene.index.CorruptIndexException - is thrown if the index is corrupt. -
    IOException - is thrown if there is an exception reading the index.
    -
    -
    -
    - -

    -getIndexingAnalyzer

    -
    -public org.apache.lucene.analysis.Analyzer getIndexingAnalyzer()
    -
    -
    Returns an Analyzer to be used when indexing. -

    -

    - -
    Returns:
    an Analyzer.
    -
    -
    -
    - -

    -getSearchingAnalyzer

    -
    -protected org.apache.lucene.analysis.Analyzer getSearchingAnalyzer()
    -
    -
    Returns an analyzer used for searching the index -

    -

    - -
    Returns:
    a lucene analyzer
    -
    -
    -
    - -

    -getQueryParser

    -
    -protected org.apache.lucene.queryparser.classic.QueryParser getQueryParser()
    -
    -
    Gets a query parser -

    -

    - -
    Returns:
    a query parser
    -
    -
    -
    - -

    -search

    -
    -public org.apache.lucene.search.TopDocs search(String searchString,
    -                                               int maxQueryResults)
    -                                        throws org.apache.lucene.queryparser.classic.ParseException,
    -                                               IOException
    -
    -
    Searches the index using the given search string. -

    -

    -
    Parameters:
    searchString - the query text
    maxQueryResults - the maximum number of documents to return -
    Returns:
    the TopDocs found by the search -
    Throws: -
    org.apache.lucene.queryparser.classic.ParseException - thrown when the searchString is invalid -
    IOException - is thrown if there is an issue with the underlying - Index
    -
    -
    -
    - -

    -search

    -
    -public org.apache.lucene.search.TopDocs search(org.apache.lucene.search.Query query,
    -                                               int maxQueryResults)
    -                                        throws org.apache.lucene.index.CorruptIndexException,
    -                                               IOException
    -
    -
    Searches the index using the given query. -

    -

    -
    Parameters:
    query - the query used to search the index
    maxQueryResults - the max number of results to return -
    Returns:
    the TopDocs found be the query -
    Throws: -
    org.apache.lucene.index.CorruptIndexException - thrown if the Index is corrupt -
    IOException - thrown if there is an IOException
    -
    -
    -
    - -

    -getDocument

    -
    -public org.apache.lucene.document.Document getDocument(int documentId)
    -                                                throws IOException
    -
    -
    Retrieves a document from the Index. -

    -

    -
    Parameters:
    documentId - the id of the document to retrieve -
    Returns:
    the Document -
    Throws: -
    IOException - thrown if there is an IOException
    -
    -
    -
    - -

    -getDirectory

    -
    -public abstract org.apache.lucene.store.Directory getDirectory()
    -                                                        throws IOException
    -
    -
    Gets the directory that contains the Lucene Index. -

    -

    - -
    Returns:
    a Lucene Directory -
    Throws: -
    IOException - is thrown when an IOException occurs
    -
    -
    -
    - -

    -createIndexingAnalyzer

    -
    -public abstract org.apache.lucene.analysis.Analyzer createIndexingAnalyzer()
    -
    -
    Creates the Lucene Analyzer used when indexing. -

    -

    - -
    Returns:
    a Lucene Analyzer
    -
    -
    -
    - -

    -createSearchingAnalyzer

    -
    -public abstract org.apache.lucene.analysis.Analyzer createSearchingAnalyzer()
    -
    -
    Creates the Lucene Analyzer used when querying the index. -

    -

    - -
    Returns:
    a Lucene Analyzer
    -
    -
    -
    - -

    -createQueryParser

    -
    -public abstract org.apache.lucene.queryparser.classic.QueryParser createQueryParser()
    -
    -
    Creates the Lucene QueryParser used when querying the index. -

    -

    - -
    Returns:
    a QueryParser
    -
    -
    -
    - -

    -resetSearchingAnalyzer

    -
    -protected abstract void resetSearchingAnalyzer()
    -
    -
    Resets the searching analyzers -

    -

    -
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.html index 8608f20be..7b7fcc2c9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.html @@ -2,13 +2,13 @@ - + -AbstractTokenizingFilter (Dependency-Check Core 1.0.2 API) +AbstractTokenizingFilter (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ AbstractTokenizingFilter (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AbstractTokenizingFilter (Dependency-Check Core 1.0.2 API)"; + parent.document.title="AbstractTokenizingFilter (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AlphaNumericTokenizer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AlphaNumericTokenizer.html index cf30df806..ec788b503 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AlphaNumericTokenizer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AlphaNumericTokenizer.html @@ -2,13 +2,13 @@ - + -AlphaNumericTokenizer (Dependency-Check Core 1.0.2 API) +AlphaNumericTokenizer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ AlphaNumericTokenizer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AlphaNumericTokenizer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="AlphaNumericTokenizer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/DependencySimilarity.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/DependencySimilarity.html index dc7988107..c08ece5a9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/DependencySimilarity.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/DependencySimilarity.html @@ -2,13 +2,13 @@ - + -DependencySimilarity (Dependency-Check Core 1.0.2 API) +DependencySimilarity (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DependencySimilarity (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencySimilarity (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DependencySimilarity (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/FieldAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/FieldAnalyzer.html index f312727a3..42d438e3f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/FieldAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/FieldAnalyzer.html @@ -2,13 +2,13 @@ - + -FieldAnalyzer (Dependency-Check Core 1.0.2 API) +FieldAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ FieldAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="FieldAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="FieldAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/LuceneUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/LuceneUtils.html index e0841335e..f87055edd 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/LuceneUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/LuceneUtils.html @@ -2,13 +2,13 @@ - + -LuceneUtils (Dependency-Check Core 1.0.2 API) +LuceneUtils (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ LuceneUtils (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="LuceneUtils (Dependency-Check Core 1.0.2 API)"; + parent.document.title="LuceneUtils (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.html index 332af4432..43477a652 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.html @@ -2,13 +2,13 @@ - + -SearchFieldAnalyzer (Dependency-Check Core 1.0.2 API) +SearchFieldAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ SearchFieldAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="SearchFieldAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="SearchFieldAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchVersionAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchVersionAnalyzer.html index 65137b5ee..9772f4ec3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchVersionAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchVersionAnalyzer.html @@ -2,13 +2,13 @@ - + -SearchVersionAnalyzer (Dependency-Check Core 1.0.2 API) +SearchVersionAnalyzer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ SearchVersionAnalyzer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="SearchVersionAnalyzer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="SearchVersionAnalyzer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html index b8ee873dd..6af54d157 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html @@ -2,13 +2,13 @@ - + -TokenPairConcatenatingFilter (Dependency-Check Core 1.0.2 API) +TokenPairConcatenatingFilter (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ TokenPairConcatenatingFilter (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="TokenPairConcatenatingFilter (Dependency-Check Core 1.0.2 API)"; + parent.document.title="TokenPairConcatenatingFilter (Dependency-Check Core 1.0.3 API)"; } } @@ -195,6 +195,22 @@ Class TokenPairConcatenatingFilter +protected  String +getPreviousWord() + +
    +          Returns the previous word. + + + +protected  LinkedList<String> +getWords() + +
    +          Returns the words list. + + +  boolean incrementToken() @@ -265,6 +281,34 @@ public TokenPairConcatenatingFilter(org.apache.lucene.analysis.TokenStrea +

    +getPreviousWord

    +
    +protected String getPreviousWord()
    +
    +
    Returns the previous word. This is needed in the test cases. +

    +

    + +
    Returns:
    te previous word
    +
    +
    +
    + +

    +getWords

    +
    +protected LinkedList<String> getWords()
    +
    +
    Returns the words list. This is needed in the test cases. +

    +

    + +
    Returns:
    the words list
    +
    +
    +
    +

    incrementToken

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.html
    index 46d506c74..58c346063 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -UrlTokenizingFilter (Dependency-Check Core 1.0.2 API)
    +UrlTokenizingFilter (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ UrlTokenizingFilter (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="UrlTokenizingFilter (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="UrlTokenizingFilter (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionAnalyzer.html
    index 0fbd8d394..eafb5267f 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -VersionAnalyzer (Dependency-Check Core 1.0.2 API)
    +VersionAnalyzer (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ VersionAnalyzer (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="VersionAnalyzer (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="VersionAnalyzer (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.html
    index d5dde0cd0..6fa028655 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -VersionTokenizingFilter (Dependency-Check Core 1.0.2 API)
    +VersionTokenizingFilter (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ VersionTokenizingFilter (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="VersionTokenizingFilter (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="VersionTokenizingFilter (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractTokenizingFilter.html
    index ca790d2b8..d72bb8080 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractTokenizingFilter.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractTokenizingFilter.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (De
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AlphaNumericTokenizer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AlphaNumericTokenizer.html
    index 2128b8365..e1d21eb73 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AlphaNumericTokenizer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AlphaNumericTokenizer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Depen
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/DependencySimilarity.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/DependencySimilarity.html
    index 3e893e8cc..689c14d1e 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/DependencySimilarity.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/DependencySimilarity.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Depend
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/FieldAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/FieldAnalyzer.html
    index 1b8f81308..57991894e 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/FieldAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/FieldAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Ch
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/LuceneUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/LuceneUtils.html
    index 80b19c0a4..800712be7 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/LuceneUtils.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/LuceneUtils.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Chec
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchFieldAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchFieldAnalyzer.html
    index f0e02a8e7..a08a02215 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchFieldAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchFieldAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Depende
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchVersionAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchVersionAnalyzer.html
    index 1a3365da6..d7703d0d0 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchVersionAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchVersionAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Depen
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/TokenPairConcatenatingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/TokenPairConcatenatingFilter.html
    index e159a7788..9f120c3a9 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/TokenPairConcatenatingFilter.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/TokenPairConcatenatingFilter.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/UrlTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/UrlTokenizingFilter.html
    index 70670c280..04ebaf6a9 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/UrlTokenizingFilter.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/UrlTokenizingFilter.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Depende
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionAnalyzer.html
    index 4c95fd58f..68c9acb50 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionTokenizingFilter.html
    index 8cf53d0e6..7a2d7c18c 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionTokenizingFilter.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionTokenizingFilter.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dep
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-frame.html
    index c5093a53e..0720df7b7 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-frame.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-frame.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.2 API)
    +org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html
    index ba4703996..a4cbdbf44 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.2 API)
    +org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-tree.html
    index 2ec4a18b4..433b40eaf 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-tree.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-tree.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0.2 API)
    +org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-use.html
    index 663b34db7..965f16d79 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-use.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-use.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.2 API)
    +Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/CveDB.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/CveDB.html
    index d9ebd3333..681e2076a 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/CveDB.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/CveDB.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -CveDB (Dependency-Check Core 1.0.2 API)
    +CveDB (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ CveDB (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="CveDB (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="CveDB (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html
    index 469777949..d63d7ee3e 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -DatabaseException (Dependency-Check Core 1.0.2 API)
    +DatabaseException (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ DatabaseException (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="DatabaseException (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="DatabaseException (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/InvalidDataException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/InvalidDataException.html
    index 6c7aba080..15433e8b6 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/InvalidDataException.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/InvalidDataException.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -InvalidDataException (Dependency-Check Core 1.0.2 API)
    +InvalidDataException (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ InvalidDataException (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="InvalidDataException (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="InvalidDataException (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.Element.html
    index 1efaead6b..144665cb7 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.Element.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.Element.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -NvdCve12Handler.Element (Dependency-Check Core 1.0.2 API)
    +NvdCve12Handler.Element (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ NvdCve12Handler.Element (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="NvdCve12Handler.Element (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="NvdCve12Handler.Element (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.html
    index adc44f253..1bd4fd982 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -NvdCve12Handler (Dependency-Check Core 1.0.2 API)
    +NvdCve12Handler (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ NvdCve12Handler (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="NvdCve12Handler (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="NvdCve12Handler (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.Element.html
    index 40315851a..2104ca8ef 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.Element.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.Element.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -NvdCve20Handler.Element (Dependency-Check Core 1.0.2 API)
    +NvdCve20Handler.Element (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ NvdCve20Handler.Element (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="NvdCve20Handler.Element (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="NvdCve20Handler.Element (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html
    index 69bf2a4de..c14f4131b 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -NvdCve20Handler (Dependency-Check Core 1.0.2 API)
    +NvdCve20Handler (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ NvdCve20Handler (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="NvdCve20Handler (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="NvdCve20Handler (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    @@ -199,14 +199,6 @@ A SAX Handler that will parse the NVD CVE XML (schema version 2.0).
     
     
      void
    -saveEntry(Vulnerability vuln)
    -
    -
    -          Saves a vulnerability to the CVE Database. - - - - void setCpeIndex(CpeIndexWriter index)
    @@ -401,29 +393,6 @@ public void setPrevVersionVulnMap(

    -saveEntry

    -
    -public void saveEntry(Vulnerability vuln)
    -               throws DatabaseException,
    -                      org.apache.lucene.index.CorruptIndexException,
    -                      IOException
    -
    -
    Saves a vulnerability to the CVE Database. This is a callback method - called by the Sax Parser Handler - org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler. -

    -

    -
    Parameters:
    vuln - the vulnerability to store in the database -
    Throws: -
    DatabaseException - thrown if there is an error writing to the - database -
    org.apache.lucene.index.CorruptIndexException - is thrown if the CPE Index is corrupt -
    IOException - thrown if there is an IOException with the CPE Index
    -
    -
    -
    -

    setCpeIndex

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCveAnalyzer.html
    deleted file mode 100644
    index 666519a30..000000000
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCveAnalyzer.html
    +++ /dev/null
    @@ -1,516 +0,0 @@
    -
    -
    -
    -
    -
    -
    -
    -NvdCveAnalyzer (dependency-check-core 1.0.1 API)
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.nvdcve -
    -Class NvdCveAnalyzer

    -
    -java.lang.Object
    -  extended by org.owasp.dependencycheck.data.nvdcve.NvdCveAnalyzer
    -
    -
    -
    All Implemented Interfaces:
    Analyzer
    -
    -
    -
    -
    public class NvdCveAnalyzer
    extends Object
    implements Analyzer
    -
    - -

    -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)
    -
    -
    - -

    - - - - - - - - - - - -
    -Constructor Summary
    NvdCveAnalyzer() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    - voidanalyze(Dependency dependency, - Engine engine) - -
    -          Analyzes a dependency and attempts to determine if there are any CPE - identifiers for this dependency.
    - voidclose() - -
    -          Closes the data source.
    -protected  voidfinalize() - -
    -          Ensures that the CVE Database is closed.
    - AnalysisPhasegetAnalysisPhase() - -
    -          Returns the analysis phase that this analyzer should run in.
    - StringgetName() - -
    -          Returns the name of this analyzer.
    - Set<String>getSupportedExtensions() - -
    -          Returns true because this analyzer supports all dependency types.
    - voidinitialize() - -
    -          Opens the NVD CVE Lucene Index.
    - booleanisOpen() - -
    -          Returns the status of the data source - is the database open.
    - voidopen() - -
    -          Opens the data source.
    - booleansupportsExtension(String extension) - -
    -          Returns true because this analyzer supports all dependency types.
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Constructor Detail
    - -

    -NvdCveAnalyzer

    -
    -public NvdCveAnalyzer()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -open

    -
    -public void open()
    -          throws SQLException,
    -                 IOException,
    -                 DatabaseException,
    -                 ClassNotFoundException
    -
    -
    Opens the data source. -

    -

    -
    -
    -
    - -
    Throws: -
    SQLException - thrown when there is a SQL Exception -
    IOException - thrown when there is an IO Exception -
    DatabaseException - thrown when there is a database exceptions -
    ClassNotFoundException - thrown if the h2 database driver cannot be - loaded
    -
    -
    -
    - -

    -close

    -
    -public void close()
    -
    -
    Closes the data source. -

    -

    -
    Specified by:
    close in interface Analyzer
    -
    -
    -
    -
    -
    -
    - -

    -isOpen

    -
    -public boolean isOpen()
    -
    -
    Returns the status of the data source - is the database open. -

    -

    -
    -
    -
    - -
    Returns:
    true or false.
    -
    -
    -
    - -

    -finalize

    -
    -protected void finalize()
    -                 throws Throwable
    -
    -
    Ensures that the CVE Database is closed. -

    -

    -
    Overrides:
    finalize in class Object
    -
    -
    - -
    Throws: -
    Throwable - when a throwable is thrown.
    -
    -
    -
    - -

    -analyze

    -
    -public void analyze(Dependency dependency,
    -                    Engine engine)
    -             throws AnalysisException
    -
    -
    Analyzes a dependency and attempts to determine if there are any CPE - identifiers for this dependency. -

    -

    -
    Specified by:
    analyze in interface Analyzer
    -
    -
    -
    Parameters:
    dependency - The Dependency to analyze
    engine - The analysis engine -
    Throws: -
    AnalysisException - is thrown if there is an issue analyzing the - dependency
    -
    -
    -
    - -

    -getSupportedExtensions

    -
    -public Set<String> getSupportedExtensions()
    -
    -
    Returns true because this analyzer supports all dependency types. -

    -

    -
    Specified by:
    getSupportedExtensions in interface Analyzer
    -
    -
    - -
    Returns:
    true.
    -
    -
    -
    - -

    -getName

    -
    -public String getName()
    -
    -
    Returns the name of this analyzer. -

    -

    -
    Specified by:
    getName in interface Analyzer
    -
    -
    - -
    Returns:
    the name of this analyzer.
    -
    -
    -
    - -

    -supportsExtension

    -
    -public boolean supportsExtension(String extension)
    -
    -
    Returns true because this analyzer supports all dependency types. -

    -

    -
    Specified by:
    supportsExtension in interface Analyzer
    -
    -
    -
    Parameters:
    extension - the file extension of the dependency being analyzed. -
    Returns:
    true.
    -
    -
    -
    - -

    -getAnalysisPhase

    -
    -public AnalysisPhase getAnalysisPhase()
    -
    -
    Returns the analysis phase that this analyzer should run in. -

    -

    -
    Specified by:
    getAnalysisPhase in interface Analyzer
    -
    -
    - -
    Returns:
    the analysis phase that this analyzer should run in.
    -
    -
    -
    - -

    -initialize

    -
    -public void initialize()
    -                throws Exception
    -
    -
    Opens the NVD CVE Lucene Index. -

    -

    -
    Specified by:
    initialize in interface Analyzer
    -
    -
    - -
    Throws: -
    Exception - is thrown if there is an issue opening the index.
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/CveDB.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/CveDB.html index 9c12a54ca..bd61cacf7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/CveDB.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/CveDB.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core 1.0.3 API)"; } } @@ -99,6 +99,14 @@ Packages that use +org.owasp.dependencycheck.data.update + + + org.owasp.dependencycheck.data.nvdcve.xml + +   +  

    @@ -127,6 +135,31 @@ Uses of + + + + +
    +Uses of CveDB in org.owasp.dependencycheck.data.update
    +  +

    + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data.update that return CveDB
    +protected  CveDBAbstractUpdateTask.getCveDB() + +
    +          Returns the CveDB.
    +  +


    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/DatabaseException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/DatabaseException.html index 8133895c4..3759ad97e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/DatabaseException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/DatabaseException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependency-Check Core 1.0.3 API)"; } } @@ -109,6 +109,14 @@ Packages that use +org.owasp.dependencycheck.data.update + + + org.owasp.dependencycheck.data.nvdcve.xml + +   +  

    @@ -186,14 +194,6 @@ Uses of  void -NvdCve20Handler.saveEntry(Vulnerability vuln) - -
    -          Saves a vulnerability to the CVE Database. - - - - void CveDB.updateVulnerability(Vulnerability vuln)
    @@ -202,6 +202,32 @@ Uses of + + + + +
    +Uses of DatabaseException in org.owasp.dependencycheck.data.update
    +  +

    + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data.update that throw DatabaseException
    +protected  voidAbstractUpdateTask.importXML(File file, + File oldVersion) + +
    +          Imports the NVD CVE XML File into the Lucene Index.
    +  +


    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/InvalidDataException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/InvalidDataException.html index 2215f30bd..aca8c4cb1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/InvalidDataException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/InvalidDataException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.Element.html index 3e3e9095a..6859562be 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.Element.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.Element.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.html index 412707d75..271bc53f0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.Element.html index c1d439870..f48e52dea 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.Element.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.Element.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.html index c36fb461f..72ea49c9b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-frame.html index 58369e415..089b38683 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 1bd58ff3e..afb19e9f9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-tree.html index 91cf6c215..3cbe06891 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-use.html index 60c399ccd..c8087495b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.3 API)"; } } @@ -109,6 +109,14 @@ Packages that use +org.owasp.dependencycheck.data.update + + + org.owasp.dependencycheck.data.nvdcve.xml + +   +  

    @@ -142,6 +150,27 @@ Classes in DatabaseException +
    +          An exception thrown if an operation against the database fails. + + +  +

    + + + + + + + + + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.NvdCveUrl.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.NvdCveUrl.html deleted file mode 100644 index b51216929..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.NvdCveUrl.html +++ /dev/null @@ -1,459 +0,0 @@ - - - - - - - -DatabaseUpdater.NvdCveUrl (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - -
    +Classes in org.owasp.dependencycheck.data.nvdcve used by org.owasp.dependencycheck.data.update
    CveDB + +
    +          The database holding information about the NVD CVE data.
    DatabaseException +
              An exception thrown if an operation against the database fails.
    - - - - - - - - - - - - - -
    - -
    - - - -


    - -

    - -org.owasp.dependencycheck.data.nvdcve.xml -
    -Class DatabaseUpdater.NvdCveUrl

    -
    -java.lang.Object
    -  extended by org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater.NvdCveUrl
    -
    -
    -
    Enclosing class:
    DatabaseUpdater
    -
    -
    -
    -
    protected static class DatabaseUpdater.NvdCveUrl
    extends Object
    -
    - -

    -A pojo that contains the Url and timestamp of the current NvdCve XML - files. -

    - -

    -


    - -

    - - - - - - - - - - - - -
    -Constructor Summary
    -protected DatabaseUpdater.NvdCveUrl() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    - StringgetId() - -
    -          Get the value of id.
    - booleangetNeedsUpdate() - -
    -          Get the value of needsUpdate.
    - StringgetOldSchemaVersionUrl() - -
    -          Get the value of oldSchemaVersionUrl.
    - longgetTimestamp() - -
    -          Get the value of timestamp - epoch time.
    - StringgetUrl() - -
    -          Get the value of url.
    - voidsetId(String id) - -
    -          Set the value of id.
    - voidsetNeedsUpdate(boolean needsUpdate) - -
    -          Set the value of needsUpdate.
    - voidsetOldSchemaVersionUrl(String oldSchemaVersionUrl) - -
    -          Set the value of oldSchemaVersionUrl.
    - voidsetTimestamp(long timestamp) - -
    -          Set the value of timestamp - epoch time.
    - voidsetUrl(String url) - -
    -          Set the value of url.
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Constructor Detail
    - -

    -DatabaseUpdater.NvdCveUrl

    -
    -protected DatabaseUpdater.NvdCveUrl()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -getId

    -
    -public String getId()
    -
    -
    Get the value of id. -

    -

    - -
    Returns:
    the value of id
    -
    -
    -
    - -

    -setId

    -
    -public void setId(String id)
    -
    -
    Set the value of id. -

    -

    -
    Parameters:
    id - new value of id
    -
    -
    -
    - -

    -getUrl

    -
    -public String getUrl()
    -
    -
    Get the value of url. -

    -

    - -
    Returns:
    the value of url
    -
    -
    -
    - -

    -setUrl

    -
    -public void setUrl(String url)
    -
    -
    Set the value of url. -

    -

    -
    Parameters:
    url - new value of url
    -
    -
    -
    - -

    -getOldSchemaVersionUrl

    -
    -public String getOldSchemaVersionUrl()
    -
    -
    Get the value of oldSchemaVersionUrl. -

    -

    - -
    Returns:
    the value of oldSchemaVersionUrl
    -
    -
    -
    - -

    -setOldSchemaVersionUrl

    -
    -public void setOldSchemaVersionUrl(String oldSchemaVersionUrl)
    -
    -
    Set the value of oldSchemaVersionUrl. -

    -

    -
    Parameters:
    oldSchemaVersionUrl - new value of oldSchemaVersionUrl
    -
    -
    -
    - -

    -getTimestamp

    -
    -public long getTimestamp()
    -
    -
    Get the value of timestamp - epoch time. -

    -

    - -
    Returns:
    the value of timestamp - epoch time
    -
    -
    -
    - -

    -setTimestamp

    -
    -public void setTimestamp(long timestamp)
    -
    -
    Set the value of timestamp - epoch time. -

    -

    -
    Parameters:
    timestamp - new value of timestamp - epoch time
    -
    -
    -
    - -

    -getNeedsUpdate

    -
    -public boolean getNeedsUpdate()
    -
    -
    Get the value of needsUpdate. -

    -

    - -
    Returns:
    the value of needsUpdate
    -
    -
    -
    - -

    -setNeedsUpdate

    -
    -public void setNeedsUpdate(boolean needsUpdate)
    -
    -
    Set the value of needsUpdate. -

    -

    -
    Parameters:
    needsUpdate - new value of needsUpdate
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.html deleted file mode 100644 index 31fa1d5e9..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - -DatabaseUpdater (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.nvdcve.xml -
    -Class DatabaseUpdater

    -
    -java.lang.Object
    -  extended by org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater
    -
    -
    -
    All Implemented Interfaces:
    CachedWebDataSource
    -
    -
    -
    -
    public class DatabaseUpdater
    extends Object
    implements CachedWebDataSource
    - - -

    -

    -
    Author:
    -
    Jeremy Long (jeremy.long@owasp.org)
    -
    -
    - -

    - - - - - - - - - - - -
    -Nested Class Summary
    -protected static classDatabaseUpdater.NvdCveUrl - -
    -          A pojo that contains the Url and timestamp of the current NvdCve XML - files.
    - - - - - - - - - - -
    -Field Summary
    -static StringMODIFIED - -
    -          Modified key word.
    -  - - - - - - - - - - -
    -Constructor Summary
    DatabaseUpdater() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    -protected  Map<String,DatabaseUpdater.NvdCveUrl>retrieveCurrentTimestampsFromWeb() - -
    -          Retrieves the timestamps from the NVD CVE meta data file.
    - voidupdate() - -
    -          Downloads the latest NVD CVE XML file from the web and imports it into - the current CVE Database.
    - Map<String,DatabaseUpdater.NvdCveUrl>updateNeeded() - -
    -          Determines if the index needs to be updated.
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Field Detail
    - -

    -MODIFIED

    -
    -public static final String MODIFIED
    -
    -
    Modified key word. -

    -

    -
    See Also:
    Constant Field Values
    -
    - - - - - - - - -
    -Constructor Detail
    - -

    -DatabaseUpdater

    -
    -public DatabaseUpdater()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -update

    -
    -public void update()
    -            throws UpdateException
    -
    -

    Downloads the latest NVD CVE XML file from the web and imports it into - the current CVE Database.

    -

    -

    -
    Specified by:
    update in interface CachedWebDataSource
    -
    -
    - -
    Throws: -
    UpdateException - is thrown if there is an error updating the - database
    -
    -
    -
    - -

    -updateNeeded

    -
    -public Map<String,DatabaseUpdater.NvdCveUrl> updateNeeded()
    -                                                   throws MalformedURLException,
    -                                                          DownloadFailedException,
    -                                                          UpdateException
    -
    -
    Determines if the index needs to be updated. This is done by fetching the - nvd cve meta data and checking the last update date. If the data needs to - be refreshed this method will return the NvdCveUrl for the files that - need to be updated. -

    -

    -
    -
    -
    - -
    Returns:
    the NvdCveUrl of the files that need to be updated. -
    Throws: -
    MalformedURLException - is thrown if the URL for the NVD CVE Meta - data is incorrect. -
    DownloadFailedException - is thrown if there is an error. - downloading the nvd cve download data file. -
    UpdateException - Is thrown if there is an issue with the last - updated properties file.
    -
    -
    -
    - -

    -retrieveCurrentTimestampsFromWeb

    -
    -protected Map<String,DatabaseUpdater.NvdCveUrl> retrieveCurrentTimestampsFromWeb()
    -                                                                          throws MalformedURLException,
    -                                                                                 DownloadFailedException,
    -                                                                                 InvalidDataException,
    -                                                                                 InvalidSettingException
    -
    -
    Retrieves the timestamps from the NVD CVE meta data file. -

    -

    -
    -
    -
    - -
    Returns:
    the timestamp from the currently published nvdcve downloads page -
    Throws: -
    MalformedURLException - thrown if the URL for the NVD CCE Meta data - is incorrect. -
    DownloadFailedException - thrown if there is an error downloading - the nvd cve meta data file -
    InvalidDataException - thrown if there is an exception parsing the - timestamps -
    InvalidSettingException - thrown if the settings are invalid
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/InvalidDataException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/InvalidDataException.html deleted file mode 100644 index e7f5a7613..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/InvalidDataException.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - -InvalidDataException (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.nvdcve.xml -
    -Class InvalidDataException

    -
    -java.lang.Object
    -  extended by java.lang.Throwable
    -      extended by java.lang.Exception
    -          extended by org.owasp.dependencycheck.data.nvdcve.xml.InvalidDataException
    -
    -
    -
    All Implemented Interfaces:
    Serializable
    -
    -
    -
    -
    public class InvalidDataException
    extends Exception
    - - -

    -An InvalidDataDataException is a generic exception used when trying to load - the nvd cve meta data. -

    - -

    -

    -
    Author:
    -
    Jeremy Long (jeremy.long@owasp.org)
    -
    See Also:
    Serialized Form
    -
    - -

    - - - - - - - - - - - - - - -
    -Constructor Summary
    InvalidDataException(String msg) - -
    -          Creates an InvalidDataException.
    InvalidDataException(String msg, - Exception ex) - -
    -          Creates an InvalidDataException.
    -  - - - - - - - -
    -Method Summary
    - - - - - - - -
    Methods inherited from class java.lang.Throwable
    fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    -  -

    - - - - - - - - -
    -Constructor Detail
    - -

    -InvalidDataException

    -
    -public InvalidDataException(String msg)
    -
    -
    Creates an InvalidDataException. -

    -

    -
    Parameters:
    msg - the exception message
    -
    -
    - -

    -InvalidDataException

    -
    -public InvalidDataException(String msg,
    -                            Exception ex)
    -
    -
    Creates an InvalidDataException. -

    -

    -
    Parameters:
    msg - the exception message
    ex - the cause of the exception
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.Element.html deleted file mode 100644 index 7c215230c..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.Element.html +++ /dev/null @@ -1,515 +0,0 @@ - - - - - - - -NvdCve12Handler.Element (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.nvdcve.xml -
    -Class NvdCve12Handler.Element

    -
    -java.lang.Object
    -  extended by org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler.Element
    -
    -
    -
    Enclosing class:
    NvdCve12Handler
    -
    -
    -
    -
    protected static class NvdCve12Handler.Element
    extends Object
    - - -

    -A simple class to maintain information about the current element while - parsing the NVD CVE XML. -

    - -

    -


    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Summary
    -static StringENTRY - -
    -          A node type in the NVD CVE Schema 1.2.
    -static StringNVD - -
    -          A node type in the NVD CVE Schema 1.2.
    -static StringPROD - -
    -          A node type in the NVD CVE Schema 1.2.
    -static StringVERS - -
    -          A node type in the NVD CVE Schema 1.2.
    -static StringVULN_SOFTWARE - -
    -          A node type in the NVD CVE Schema 1.2.
    -  - - - - - - - - - - - -
    -Constructor Summary
    -protected NvdCve12Handler.Element() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    - StringgetNode() - -
    -          Gets the value of node.
    - booleanisEntryNode() - -
    -          Checks if the handler is at the ENTRY node.
    - booleanisNVDNode() - -
    -          Checks if the handler is at the NVD node.
    - booleanisProdNode() - -
    -          Checks if the handler is at the PROD node.
    - booleanisVersNode() - -
    -          Checks if the handler is at the VERS node.
    - booleanisVulnSoftwareNode() - -
    -          Checks if the handler is at the VULN_SOFTWARE node.
    - voidsetNode(String node) - -
    -          Sets the value of node.
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Field Detail
    - -

    -NVD

    -
    -public static final String NVD
    -
    -
    A node type in the NVD CVE Schema 1.2. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -ENTRY

    -
    -public static final String ENTRY
    -
    -
    A node type in the NVD CVE Schema 1.2. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -VULN_SOFTWARE

    -
    -public static final String VULN_SOFTWARE
    -
    -
    A node type in the NVD CVE Schema 1.2. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -PROD

    -
    -public static final String PROD
    -
    -
    A node type in the NVD CVE Schema 1.2. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -VERS

    -
    -public static final String VERS
    -
    -
    A node type in the NVD CVE Schema 1.2. -

    -

    -
    See Also:
    Constant Field Values
    -
    - - - - - - - - -
    -Constructor Detail
    - -

    -NvdCve12Handler.Element

    -
    -protected NvdCve12Handler.Element()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -getNode

    -
    -public String getNode()
    -
    -
    Gets the value of node. -

    -

    - -
    Returns:
    the value of node
    -
    -
    -
    - -

    -setNode

    -
    -public void setNode(String node)
    -
    -
    Sets the value of node. -

    -

    -
    Parameters:
    node - new value of node
    -
    -
    -
    - -

    -isNVDNode

    -
    -public boolean isNVDNode()
    -
    -
    Checks if the handler is at the NVD node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isEntryNode

    -
    -public boolean isEntryNode()
    -
    -
    Checks if the handler is at the ENTRY node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isVulnSoftwareNode

    -
    -public boolean isVulnSoftwareNode()
    -
    -
    Checks if the handler is at the VULN_SOFTWARE node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isProdNode

    -
    -public boolean isProdNode()
    -
    -
    Checks if the handler is at the PROD node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isVersNode

    -
    -public boolean isVersNode()
    -
    -
    Checks if the handler is at the VERS node. -

    -

    - -
    Returns:
    true or false
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.html deleted file mode 100644 index 14708aa97..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - -NvdCve12Handler (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.nvdcve.xml -
    -Class NvdCve12Handler

    -
    -java.lang.Object
    -  extended by org.xml.sax.helpers.DefaultHandler
    -      extended by org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler
    -
    -
    -
    All Implemented Interfaces:
    ContentHandler, DTDHandler, EntityResolver, ErrorHandler
    -
    -
    -
    -
    public class NvdCve12Handler
    extends org.xml.sax.helpers.DefaultHandler
    - - -

    -A SAX Handler that will parse the NVD CVE XML (schema version 1.2). This - parses the xml and retrieves a listing of CPEs that have previous versions - specified. The previous version information is not in the 2.0 version of the - schema and is useful to ensure accurate identification (or at least - complete). -

    - -

    -

    -
    Author:
    -
    Jeremy Long (jeremy.long@owasp.org)
    -
    -
    - -

    - - - - - - - - - - - -
    -Nested Class Summary
    -protected static classNvdCve12Handler.Element - -
    -          A simple class to maintain information about the current element while - parsing the NVD CVE XML.
    -  - - - - - - - - - - -
    -Constructor Summary
    NvdCve12Handler() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    - voidendElement(String uri, - String localName, - String qName) - -
    -           
    - Map<String,List<VulnerableSoftware>>getVulnerabilities() - -
    -          Get the value of vulnerabilities.
    - voidstartElement(String uri, - String localName, - String qName, - Attributes attributes) - -
    -           
    - - - - - - - -
    Methods inherited from class org.xml.sax.helpers.DefaultHandler
    characters, endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Constructor Detail
    - -

    -NvdCve12Handler

    -
    -public NvdCve12Handler()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -getVulnerabilities

    -
    -public Map<String,List<VulnerableSoftware>> getVulnerabilities()
    -
    -
    Get the value of vulnerabilities. -

    -

    - -
    Returns:
    the value of vulnerabilities
    -
    -
    -
    - -

    -startElement

    -
    -public void startElement(String uri,
    -                         String localName,
    -                         String qName,
    -                         Attributes attributes)
    -                  throws SAXException
    -
    -
    -
    Specified by:
    startElement in interface ContentHandler
    Overrides:
    startElement in class org.xml.sax.helpers.DefaultHandler
    -
    -
    - -
    Throws: -
    SAXException
    -
    -
    -
    - -

    -endElement

    -
    -public void endElement(String uri,
    -                       String localName,
    -                       String qName)
    -                throws SAXException
    -
    -
    -
    Specified by:
    endElement in interface ContentHandler
    Overrides:
    endElement in class org.xml.sax.helpers.DefaultHandler
    -
    -
    - -
    Throws: -
    SAXException
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.Element.html deleted file mode 100644 index cfcad1914..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.Element.html +++ /dev/null @@ -1,935 +0,0 @@ - - - - - - - -NvdCve20Handler.Element (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.nvdcve.xml -
    -Class NvdCve20Handler.Element

    -
    -java.lang.Object
    -  extended by org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler.Element
    -
    -
    -
    Enclosing class:
    NvdCve20Handler
    -
    -
    -
    -
    protected static class NvdCve20Handler.Element
    extends Object
    - - -

    -A simple class to maintain information about the current element while - parsing the NVD CVE XML. -

    - -

    -


    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Field Summary
    -static StringCVSS_ACCESS_COMPLEXITY - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringCVSS_ACCESS_VECTOR - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringCVSS_AUTHENTICATION - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringCVSS_AVAILABILITY_IMPACT - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringCVSS_CONFIDENTIALITY_IMPACT - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringCVSS_INTEGRITY_IMPACT - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringCVSS_SCORE - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringENTRY - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringNVD - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringVULN_CWE - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringVULN_PRODUCT - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringVULN_REFERENCE - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringVULN_REFERENCES - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringVULN_SOURCE - -
    -          A node type in the NVD CVE Schema 2.0
    -static StringVULN_SUMMARY - -
    -          A node type in the NVD CVE Schema 2.0
    -  - - - - - - - - - - - -
    -Constructor Summary
    -protected NvdCve20Handler.Element() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    - StringgetNode() - -
    -          Gets the value of node.
    - booleanisCVSSAccessComplexityNode() - -
    -          Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node.
    - booleanisCVSSAccessVectorNode() - -
    -          Checks if the handler is at the CVSS_ACCESS_VECTOR node.
    - booleanisCVSSAuthenticationNode() - -
    -          Checks if the handler is at the CVSS_AUTHENTICATION node.
    - booleanisCVSSAvailabilityImpactNode() - -
    -          Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node.
    - booleanisCVSSConfidentialityImpactNode() - -
    -          Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node.
    - booleanisCVSSIntegrityImpactNode() - -
    -          Checks if the handler is at the CVSS_INTEGRITY_IMPACT node.
    - booleanisCVSSScoreNode() - -
    -          Checks if the handler is at the CVSS_SCORE node.
    - booleanisEntryNode() - -
    -          Checks if the handler is at the ENTRY node.
    - booleanisNVDNode() - -
    -          Checks if the handler is at the NVD node.
    - booleanisVulnCWENode() - -
    -          Checks if the handler is at the VULN_CWE node.
    - booleanisVulnProductNode() - -
    -          Checks if the handler is at the VULN_PRODUCT node.
    - booleanisVulnReferenceNode() - -
    -          Checks if the handler is at the REFERENCE node.
    - booleanisVulnReferencesNode() - -
    -          Checks if the handler is at the REFERENCES node.
    - booleanisVulnSourceNode() - -
    -          Checks if the handler is at the VULN_SOURCE node.
    - booleanisVulnSummaryNode() - -
    -          Checks if the handler is at the VULN_SUMMARY node.
    - voidsetNode(String node) - -
    -          Sets the value of node.
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Field Detail
    - -

    -NVD

    -
    -public static final String NVD
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -ENTRY

    -
    -public static final String ENTRY
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -VULN_PRODUCT

    -
    -public static final String VULN_PRODUCT
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -VULN_REFERENCES

    -
    -public static final String VULN_REFERENCES
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -VULN_SOURCE

    -
    -public static final String VULN_SOURCE
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -VULN_REFERENCE

    -
    -public static final String VULN_REFERENCE
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -VULN_SUMMARY

    -
    -public static final String VULN_SUMMARY
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -VULN_CWE

    -
    -public static final String VULN_CWE
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -CVSS_SCORE

    -
    -public static final String CVSS_SCORE
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -CVSS_ACCESS_VECTOR

    -
    -public static final String CVSS_ACCESS_VECTOR
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -CVSS_ACCESS_COMPLEXITY

    -
    -public static final String CVSS_ACCESS_COMPLEXITY
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -CVSS_AUTHENTICATION

    -
    -public static final String CVSS_AUTHENTICATION
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -CVSS_CONFIDENTIALITY_IMPACT

    -
    -public static final String CVSS_CONFIDENTIALITY_IMPACT
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -CVSS_INTEGRITY_IMPACT

    -
    -public static final String CVSS_INTEGRITY_IMPACT
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -CVSS_AVAILABILITY_IMPACT

    -
    -public static final String CVSS_AVAILABILITY_IMPACT
    -
    -
    A node type in the NVD CVE Schema 2.0 -

    -

    -
    See Also:
    Constant Field Values
    -
    - - - - - - - - -
    -Constructor Detail
    - -

    -NvdCve20Handler.Element

    -
    -protected NvdCve20Handler.Element()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -getNode

    -
    -public String getNode()
    -
    -
    Gets the value of node. -

    -

    - -
    Returns:
    the value of node
    -
    -
    -
    - -

    -setNode

    -
    -public void setNode(String node)
    -
    -
    Sets the value of node. -

    -

    -
    Parameters:
    node - new value of node
    -
    -
    -
    - -

    -isNVDNode

    -
    -public boolean isNVDNode()
    -
    -
    Checks if the handler is at the NVD node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isEntryNode

    -
    -public boolean isEntryNode()
    -
    -
    Checks if the handler is at the ENTRY node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isVulnProductNode

    -
    -public boolean isVulnProductNode()
    -
    -
    Checks if the handler is at the VULN_PRODUCT node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isVulnReferencesNode

    -
    -public boolean isVulnReferencesNode()
    -
    -
    Checks if the handler is at the REFERENCES node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isVulnReferenceNode

    -
    -public boolean isVulnReferenceNode()
    -
    -
    Checks if the handler is at the REFERENCE node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isVulnSourceNode

    -
    -public boolean isVulnSourceNode()
    -
    -
    Checks if the handler is at the VULN_SOURCE node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isVulnSummaryNode

    -
    -public boolean isVulnSummaryNode()
    -
    -
    Checks if the handler is at the VULN_SUMMARY node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isVulnCWENode

    -
    -public boolean isVulnCWENode()
    -
    -
    Checks if the handler is at the VULN_CWE node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isCVSSScoreNode

    -
    -public boolean isCVSSScoreNode()
    -
    -
    Checks if the handler is at the CVSS_SCORE node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isCVSSAccessVectorNode

    -
    -public boolean isCVSSAccessVectorNode()
    -
    -
    Checks if the handler is at the CVSS_ACCESS_VECTOR node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isCVSSAccessComplexityNode

    -
    -public boolean isCVSSAccessComplexityNode()
    -
    -
    Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isCVSSAuthenticationNode

    -
    -public boolean isCVSSAuthenticationNode()
    -
    -
    Checks if the handler is at the CVSS_AUTHENTICATION node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isCVSSConfidentialityImpactNode

    -
    -public boolean isCVSSConfidentialityImpactNode()
    -
    -
    Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isCVSSIntegrityImpactNode

    -
    -public boolean isCVSSIntegrityImpactNode()
    -
    -
    Checks if the handler is at the CVSS_INTEGRITY_IMPACT node. -

    -

    - -
    Returns:
    true or false
    -
    -
    -
    - -

    -isCVSSAvailabilityImpactNode

    -
    -public boolean isCVSSAvailabilityImpactNode()
    -
    -
    Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node. -

    -

    - -
    Returns:
    true or false
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.html deleted file mode 100644 index 0528c04a2..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.html +++ /dev/null @@ -1,480 +0,0 @@ - - - - - - - -NvdCve20Handler (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    - -

    - -org.owasp.dependencycheck.data.nvdcve.xml -
    -Class NvdCve20Handler

    -
    -java.lang.Object
    -  extended by org.xml.sax.helpers.DefaultHandler
    -      extended by org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler
    -
    -
    -
    All Implemented Interfaces:
    ContentHandler, DTDHandler, EntityResolver, ErrorHandler
    -
    -
    -
    -
    public class NvdCve20Handler
    extends org.xml.sax.helpers.DefaultHandler
    - - -

    -A SAX Handler that will parse the NVD CVE XML (schema version 2.0). -

    - -

    -

    -
    Author:
    -
    Jeremy Long (jeremy.long@owasp.org)
    -
    -
    - -

    - - - - - - - - - - - -
    -Nested Class Summary
    -protected static classNvdCve20Handler.Element - -
    -          A simple class to maintain information about the current element while - parsing the NVD CVE XML.
    -  - - - - - - - - - - -
    -Constructor Summary
    NvdCve20Handler() - -
    -           
    -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Method Summary
    - voidcharacters(char[] ch, - int start, - int length) - -
    -           
    - voidendElement(String uri, - String localName, - String qName) - -
    -           
    - intgetTotalNumberOfApplicationEntries() - -
    -          Get the value of totalNumberOfApplicationEntries.
    - intgetTotalNumberOfEntries() - -
    -          Get the value of totalNumberOfEntries.
    - voidsaveEntry(Vulnerability vuln) - -
    -          Saves a vulnerability to the CVE Database.
    - voidsetCveDB(CveDB db) - -
    -          Sets the cveDB.
    - voidsetPrevVersionVulnMap(Map<String,List<VulnerableSoftware>> map) - -
    -          Sets the prevVersionVulnMap.
    - voidstartElement(String uri, - String localName, - String qName, - Attributes attributes) - -
    -           
    - - - - - - - -
    Methods inherited from class org.xml.sax.helpers.DefaultHandler
    endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
    - - - - - - - -
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    -  -

    - - - - - - - - -
    -Constructor Detail
    - -

    -NvdCve20Handler

    -
    -public NvdCve20Handler()
    -
    -
    - - - - - - - - -
    -Method Detail
    - -

    -getTotalNumberOfEntries

    -
    -public int getTotalNumberOfEntries()
    -
    -
    Get the value of totalNumberOfEntries. -

    -

    - -
    Returns:
    the value of totalNumberOfEntries
    -
    -
    -
    - -

    -getTotalNumberOfApplicationEntries

    -
    -public int getTotalNumberOfApplicationEntries()
    -
    -
    Get the value of totalNumberOfApplicationEntries. -

    -

    - -
    Returns:
    the value of totalNumberOfApplicationEntries
    -
    -
    -
    - -

    -startElement

    -
    -public void startElement(String uri,
    -                         String localName,
    -                         String qName,
    -                         Attributes attributes)
    -                  throws SAXException
    -
    -
    -
    Specified by:
    startElement in interface ContentHandler
    Overrides:
    startElement in class org.xml.sax.helpers.DefaultHandler
    -
    -
    - -
    Throws: -
    SAXException
    -
    -
    -
    - -

    -characters

    -
    -public void characters(char[] ch,
    -                       int start,
    -                       int length)
    -                throws SAXException
    -
    -
    -
    Specified by:
    characters in interface ContentHandler
    Overrides:
    characters in class org.xml.sax.helpers.DefaultHandler
    -
    -
    - -
    Throws: -
    SAXException
    -
    -
    -
    - -

    -endElement

    -
    -public void endElement(String uri,
    -                       String localName,
    -                       String qName)
    -                throws SAXException
    -
    -
    -
    Specified by:
    endElement in interface ContentHandler
    Overrides:
    endElement in class org.xml.sax.helpers.DefaultHandler
    -
    -
    - -
    Throws: -
    SAXException
    -
    -
    -
    - -

    -setCveDB

    -
    -public void setCveDB(CveDB db)
    -
    -
    Sets the cveDB. -

    -

    -
    Parameters:
    db - a reference to the CveDB
    -
    -
    -
    - -

    -setPrevVersionVulnMap

    -
    -public void setPrevVersionVulnMap(Map<String,List<VulnerableSoftware>> map)
    -
    -
    Sets the prevVersionVulnMap. -

    -

    -
    Parameters:
    map - the map of vulnerable software with previous versions being - vulnerable
    -
    -
    -
    - -

    -saveEntry

    -
    -public void saveEntry(Vulnerability vuln)
    -               throws DatabaseException,
    -                      org.apache.lucene.index.CorruptIndexException,
    -                      IOException
    -
    -
    Saves a vulnerability to the CVE Database. This is a callback method - called by the Sax Parser Handler - NvdCve20Handler. -

    -

    -
    Parameters:
    vuln - the vulnerability to store in the database -
    Throws: -
    DatabaseException - thrown if there is an error writing to the - database -
    org.apache.lucene.index.CorruptIndexException - is thrown if the CPE Index is corrupt -
    IOException - thrown if there is an IOException with the CPE Index
    -
    -
    - -
    - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/DatabaseUpdater.NvdCveUrl.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/DatabaseUpdater.NvdCveUrl.html deleted file mode 100644 index 6ba3bb408..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/DatabaseUpdater.NvdCveUrl.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - -Uses of Class org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater.NvdCveUrl (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Uses of Class
    org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater.NvdCveUrl

    -
    - - - - - - - - - -
    -Packages that use DatabaseUpdater.NvdCveUrl
    org.owasp.dependencycheck.data.nvdcve.xml - - org.owasp.dependencycheck.data.nvdcve.xml - -  
    -  -

    - - - - - -
    -Uses of DatabaseUpdater.NvdCveUrl in org.owasp.dependencycheck.data.nvdcve.xml
    -  -

    - - - - - - - - - - - - - -
    Methods in org.owasp.dependencycheck.data.nvdcve.xml that return types with arguments of type DatabaseUpdater.NvdCveUrl
    -protected  Map<String,DatabaseUpdater.NvdCveUrl>DatabaseUpdater.retrieveCurrentTimestampsFromWeb() - -
    -          Retrieves the timestamps from the NVD CVE meta data file.
    - Map<String,DatabaseUpdater.NvdCveUrl>DatabaseUpdater.updateNeeded() - -
    -          Determines if the index needs to be updated.
    -  -

    -


    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/DatabaseUpdater.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/DatabaseUpdater.html deleted file mode 100644 index ac855ad01..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/DatabaseUpdater.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Uses of Class
    org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater

    -
    -No usage of org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater -

    -


    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/InvalidDataException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/InvalidDataException.html deleted file mode 100644 index d58609567..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/InvalidDataException.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - -Uses of Class org.owasp.dependencycheck.data.nvdcve.xml.InvalidDataException (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Uses of Class
    org.owasp.dependencycheck.data.nvdcve.xml.InvalidDataException

    -
    - - - - - - - - - -
    -Packages that use InvalidDataException
    org.owasp.dependencycheck.data.nvdcve.xml - - org.owasp.dependencycheck.data.nvdcve.xml - -  
    -  -

    - - - - - -
    -Uses of InvalidDataException in org.owasp.dependencycheck.data.nvdcve.xml
    -  -

    - - - - - - - - - -
    Methods in org.owasp.dependencycheck.data.nvdcve.xml that throw InvalidDataException
    -protected  Map<String,DatabaseUpdater.NvdCveUrl>DatabaseUpdater.retrieveCurrentTimestampsFromWeb() - -
    -          Retrieves the timestamps from the NVD CVE meta data file.
    -  -

    -


    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve12Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve12Handler.Element.html deleted file mode 100644 index edd3dcd67..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve12Handler.Element.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler.Element (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Uses of Class
    org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler.Element

    -
    -No usage of org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler.Element -

    -


    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve12Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve12Handler.html deleted file mode 100644 index bb71cb590..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve12Handler.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Uses of Class
    org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler

    -
    -No usage of org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler -

    -


    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve20Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve20Handler.Element.html deleted file mode 100644 index 8c4177118..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve20Handler.Element.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler.Element (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Uses of Class
    org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler.Element

    -
    -No usage of org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler.Element -

    -


    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve20Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve20Handler.html deleted file mode 100644 index 964c24e6a..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/class-use/NvdCve20Handler.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Uses of Class
    org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler

    -
    -No usage of org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler -

    -


    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html deleted file mode 100644 index 9574bf05c..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - -org.owasp.dependencycheck.data.nvdcve.xml (dependency-check-core 1.0.1 API) - - - - - - - - - - - -org.owasp.dependencycheck.data.nvdcve.xml - - - - -
    -Classes  - -
    -DatabaseUpdater -
    -DatabaseUpdater.NvdCveUrl -
    -NvdCve12Handler -
    -NvdCve12Handler.Element -
    -NvdCve20Handler -
    -NvdCve20Handler.Element
    - - - - - - -
    -Exceptions  - -
    -InvalidDataException
    - - - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html deleted file mode 100644 index 2d4e3a88b..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - -org.owasp.dependencycheck.data.nvdcve.xml (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -

    -Package org.owasp.dependencycheck.data.nvdcve.xml -

    - - - org.owasp.dependencycheck.data.nvdcve.xml - - -

    -See: -
    -          Description -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -Class Summary
    DatabaseUpdater 
    DatabaseUpdater.NvdCveUrlA pojo that contains the Url and timestamp of the current NvdCve XML - files.
    NvdCve12HandlerA SAX Handler that will parse the NVD CVE XML (schema version 1.2).
    NvdCve12Handler.ElementA simple class to maintain information about the current element while - parsing the NVD CVE XML.
    NvdCve20HandlerA SAX Handler that will parse the NVD CVE XML (schema version 2.0).
    NvdCve20Handler.ElementA simple class to maintain information about the current element while - parsing the NVD CVE XML.
    -  - -

    - - - - - - - - - -
    -Exception Summary
    InvalidDataExceptionAn InvalidDataDataException is a generic exception used when trying to load - the nvd cve meta data.
    -  - -

    -

    -Package org.owasp.dependencycheck.data.nvdcve.xml Description -

    - -

    - - - org.owasp.dependencycheck.data.nvdcve.xml - - -

    Contains classes used to parse the NVD CVE XML file.

    -

    The basic use is that the Importer is called to import - an NVD CVE file. The Importer instantiates an Indexer object - (which extends Index). The Indexer creates a partial-unmarshalling - SAX parser (implemented in the NvdCveXmlFilter) that extracts - VulnerabilityTypes (aka Entry) from the NVD CVE data file and - stores these into a Lucene Index.

    - - -

    - -

    -

    -
    -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-tree.html deleted file mode 100644 index 083f7992e..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-tree.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - -org.owasp.dependencycheck.data.nvdcve.xml Class Hierarchy (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Hierarchy For Package org.owasp.dependencycheck.data.nvdcve.xml -

    -
    -
    -
    Package Hierarchies:
    All Packages
    -
    -

    -Class Hierarchy -

    - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-use.html deleted file mode 100644 index 1a71f9913..000000000 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/xml/package-use.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - -Uses of Package org.owasp.dependencycheck.data.nvdcve.xml (dependency-check-core 1.0.1 API) - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    -

    -Uses of Package
    org.owasp.dependencycheck.data.nvdcve.xml

    -
    - - - - - - - - - -
    -Packages that use org.owasp.dependencycheck.data.nvdcve.xml
    org.owasp.dependencycheck.data.nvdcve.xml - - org.owasp.dependencycheck.data.nvdcve.xml - -  
    -  -

    - - - - - - - - - - - -
    -Classes in org.owasp.dependencycheck.data.nvdcve.xml used by org.owasp.dependencycheck.data.nvdcve.xml
    DatabaseUpdater.NvdCveUrl - -
    -          A pojo that contains the Url and timestamp of the current NvdCve XML - files.
    InvalidDataException - -
    -          An InvalidDataDataException is a generic exception used when trying to load - the nvd cve meta data.
    -  -

    -


    - - - - - - - - - - - - - - - -
    - -
    - - - -
    -Copyright © 2012-2013 OWASP. All Rights Reserved. - - diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-frame.html index 7b6aef3d9..0c72a2118 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-summary.html index a9e51899a..9f334e9ab 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.data (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-tree.html index 230abc701..71678f02d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-use.html index e96824ff2..f25b6bfe3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html new file mode 100644 index 000000000..e18d2ae04 --- /dev/null +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html @@ -0,0 +1,650 @@ + + + + + + + +AbstractUpdateTask (Dependency-Check Core 1.0.3 API) + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    + +

    + +org.owasp.dependencycheck.data.update +
    +Class AbstractUpdateTask

    +
    +java.lang.Object
    +  extended by org.owasp.dependencycheck.data.update.AbstractUpdateTask
    +
    +
    +
    All Implemented Interfaces:
    UpdateTask
    +
    +
    +
    Direct Known Subclasses:
    BatchUpdateTask, StandardUpdateTask
    +
    +
    +
    +
    public abstract class AbstractUpdateTask
    extends Object
    implements UpdateTask
    + + +

    +Class responsible for updating the CPE and NVDCVE data stores. +

    + +

    +

    +
    Author:
    +
    Jeremy Long (jeremy.long@owasp.org)
    +
    +
    + +

    + + + + + + + + + + + +
    +Constructor Summary
    AbstractUpdateTask(DataStoreMetaInfo properties) + +
    +          Initializes the AbstractUpdateTask.
    +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +Method Summary
    +protected  voidcloseDataStores() + +
    +          Closes the CVE and CPE data stores.
    +protected  voiddeleteExistingData() + +
    +          Deletes the existing data directories.
    +protected  CpeIndexWritergetCpeIndex() + +
    +          Returns the CpeIndex.
    +protected  CveDBgetCveDB() + +
    +          Returns the CveDB.
    +protected  DataStoreMetaInfogetProperties() + +
    +          Returns the data store properties.
    +protected  UpdateablegetUpdateable() + +
    +          Gets the updateable NVD CVE Entries.
    +protected  voidimportXML(File file, + File oldVersion) + +
    +          Imports the NVD CVE XML File into the Lucene Index.
    + booleanisUpdateNeeded() + +
    +          Gets whether or not an update is needed.
    +protected  voidopenDataStores() + +
    +          Opens the CVE and CPE data stores.
    +protected  voidsetDeleteAndRecreate(boolean deleteAndRecreate) + +
    +          Set the value of deleteAndRecreate.
    + booleanshouldDeleteAndRecreate() + +
    +          Get the value of deleteAndRecreate.
    +abstract  voidupdate() + +
    +          Updates the data store to the latest version.
    +protected abstract  UpdateableupdatesNeeded() + +
    +          Determines if the index needs to be updated.
    +protected  booleanwithinRange(long date, + long compareTo, + int range) + +
    +          Determines if the epoch date is within the range specified of the + compareTo epoch time.
    + + + + + + + +
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +  +

    + + + + + + + + +
    +Constructor Detail
    + +

    +AbstractUpdateTask

    +
    +public AbstractUpdateTask(DataStoreMetaInfo properties)
    +                   throws MalformedURLException,
    +                          DownloadFailedException,
    +                          UpdateException
    +
    +
    Initializes the AbstractUpdateTask. +

    +

    +
    Parameters:
    properties - information about the data store +
    Throws: +
    MalformedURLException - thrown if the configuration contains a + malformed url +
    DownloadFailedException - thrown if the timestamp on a file cannot + be checked +
    UpdateException - thrown if the update fails
    +
    + + + + + + + + +
    +Method Detail
    + +

    +getProperties

    +
    +protected DataStoreMetaInfo getProperties()
    +
    +
    Returns the data store properties. +

    +

    +
    +
    +
    + +
    Returns:
    the data store properties
    +
    +
    +
    + +

    +getCveDB

    +
    +protected CveDB getCveDB()
    +
    +
    Returns the CveDB. +

    +

    +
    +
    +
    + +
    Returns:
    the CveDB
    +
    +
    +
    + +

    +getCpeIndex

    +
    +protected CpeIndexWriter getCpeIndex()
    +
    +
    Returns the CpeIndex. +

    +

    +
    +
    +
    + +
    Returns:
    the CpeIndex
    +
    +
    +
    + +

    +isUpdateNeeded

    +
    +public boolean isUpdateNeeded()
    +
    +
    Gets whether or not an update is needed. +

    +

    +
    Specified by:
    isUpdateNeeded in interface UpdateTask
    +
    +
    + +
    Returns:
    true or false depending on whether an update is needed
    +
    +
    +
    + +

    +getUpdateable

    +
    +protected Updateable getUpdateable()
    +
    +
    Gets the updateable NVD CVE Entries. +

    +

    +
    +
    +
    + +
    Returns:
    an Updateable object containing the NVD CVE entries
    +
    +
    +
    + +

    +updatesNeeded

    +
    +protected abstract Updateable updatesNeeded()
    +                                     throws MalformedURLException,
    +                                            DownloadFailedException,
    +                                            UpdateException
    +
    +
    Determines if the index needs to be updated. +

    +

    +
    +
    +
    + +
    Returns:
    a collection of updateable resources. +
    Throws: +
    MalformedURLException - is thrown if the URL for the NVD CVE Meta + data is incorrect. +
    DownloadFailedException - is thrown if there is an error. + downloading the NVD CVE download data file. +
    UpdateException - Is thrown if there is an issue with the last + updated properties file.
    +
    +
    +
    + +

    +update

    +
    +public abstract void update()
    +                     throws UpdateException
    +
    +

    Updates the data store to the latest version.

    +

    +

    +
    Specified by:
    update in interface UpdateTask
    +
    +
    + +
    Throws: +
    UpdateException - is thrown if there is an error updating the + database
    +
    +
    +
    + +

    +shouldDeleteAndRecreate

    +
    +public boolean shouldDeleteAndRecreate()
    +
    +
    Get the value of deleteAndRecreate. +

    +

    +
    Specified by:
    shouldDeleteAndRecreate in interface UpdateTask
    +
    +
    + +
    Returns:
    the value of deleteAndRecreate
    +
    +
    +
    + +

    +setDeleteAndRecreate

    +
    +protected void setDeleteAndRecreate(boolean deleteAndRecreate)
    +
    +
    Set the value of deleteAndRecreate. +

    +

    +
    +
    +
    +
    Parameters:
    deleteAndRecreate - new value of deleteAndRecreate
    +
    +
    +
    + +

    +deleteExistingData

    +
    +protected void deleteExistingData()
    +                           throws IOException
    +
    +
    Deletes the existing data directories. +

    +

    +
    +
    +
    + +
    Throws: +
    IOException - thrown if the directory cannot be deleted
    +
    +
    +
    + +

    +closeDataStores

    +
    +protected void closeDataStores()
    +
    +
    Closes the CVE and CPE data stores. +

    +

    +
    +
    +
    +
    +
    +
    +
    + +

    +openDataStores

    +
    +protected void openDataStores()
    +                       throws UpdateException
    +
    +
    Opens the CVE and CPE data stores. +

    +

    +
    +
    +
    + +
    Throws: +
    UpdateException - thrown if a data store cannot be opened
    +
    +
    +
    + +

    +withinRange

    +
    +protected boolean withinRange(long date,
    +                              long compareTo,
    +                              int range)
    +
    +
    Determines if the epoch date is within the range specified of the + compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to + get the number of days. If the calculated days is less then the range the + date is considered valid. +

    +

    +
    +
    +
    +
    Parameters:
    date - the date to be checked.
    compareTo - the date to compare to.
    range - the range in days to be considered valid. +
    Returns:
    whether or not the date is within the range.
    +
    +
    +
    + +

    +importXML

    +
    +protected void importXML(File file,
    +                         File oldVersion)
    +                  throws ParserConfigurationException,
    +                         SAXException,
    +                         IOException,
    +                         SQLException,
    +                         DatabaseException,
    +                         ClassNotFoundException
    +
    +
    Imports the NVD CVE XML File into the Lucene Index. +

    +

    +
    +
    +
    +
    Parameters:
    file - the file containing the NVD CVE XML
    oldVersion - contains the file containing the NVD CVE XML 1.2 +
    Throws: +
    ParserConfigurationException - is thrown if there is a parser + configuration exception +
    SAXException - is thrown if there is a SAXException +
    IOException - is thrown if there is a IO Exception +
    SQLException - is thrown if there is a SQL exception +
    DatabaseException - is thrown if there is a database exception +
    ClassNotFoundException - thrown if the h2 database driver cannot be + loaded
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +Copyright © 2012-2013 OWASP. All Rights Reserved. + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/BatchUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/BatchUpdateTask.html new file mode 100644 index 000000000..043ead4e7 --- /dev/null +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/BatchUpdateTask.html @@ -0,0 +1,379 @@ + + + + + + + +BatchUpdateTask (Dependency-Check Core 1.0.3 API) + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    + +

    + +org.owasp.dependencycheck.data.update +
    +Class BatchUpdateTask

    +
    +java.lang.Object
    +  extended by org.owasp.dependencycheck.data.update.AbstractUpdateTask
    +      extended by org.owasp.dependencycheck.data.update.BatchUpdateTask
    +
    +
    +
    All Implemented Interfaces:
    UpdateTask
    +
    +
    +
    +
    public class BatchUpdateTask
    extends AbstractUpdateTask
    + + +

    +Class responsible for updating the CPE and NVDCVE data stores. +

    + +

    +

    +
    Author:
    +
    Jeremy Long (jeremy.long@owasp.org)
    +
    +
    + +

    + + + + + + + + + + + +
    +Constructor Summary
    BatchUpdateTask(DataStoreMetaInfo properties) + +
    +          Constructs a new BatchUpdateTask.
    +  + + + + + + + + + + + + + + + + + + + + + + + +
    +Method Summary
    +protected  booleanisDoBatchUpdate() + +
    +          Get the value of doBatchUpdate
    +protected  voidsetDoBatchUpdate(boolean doBatchUpdate) + +
    +          Set the value of doBatchUpdate
    + voidupdate() + +
    +          Downloads the latest NVD CVE XML file from the web and imports it into + the current CVE Database.
    + UpdateableupdatesNeeded() + +
    +          Determines if the index needs to be updated.
    + + + + + + + +
    Methods inherited from class org.owasp.dependencycheck.data.update.AbstractUpdateTask
    closeDataStores, deleteExistingData, getCpeIndex, getCveDB, getProperties, getUpdateable, importXML, isUpdateNeeded, openDataStores, setDeleteAndRecreate, shouldDeleteAndRecreate, withinRange
    + + + + + + + +
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +  +

    + + + + + + + + +
    +Constructor Detail
    + +

    +BatchUpdateTask

    +
    +public BatchUpdateTask(DataStoreMetaInfo properties)
    +                throws MalformedURLException,
    +                       DownloadFailedException,
    +                       UpdateException
    +
    +
    Constructs a new BatchUpdateTask. +

    +

    +
    Parameters:
    properties - information about the data store +
    Throws: +
    MalformedURLException - thrown if a configured URL is malformed +
    DownloadFailedException - thrown if a timestamp cannot be checked + on a configured URL +
    UpdateException - thrown if there is an exception generating the + update task
    +
    + + + + + + + + +
    +Method Detail
    + +

    +isDoBatchUpdate

    +
    +protected boolean isDoBatchUpdate()
    +
    +
    Get the value of doBatchUpdate +

    +

    + +
    Returns:
    the value of doBatchUpdate
    +
    +
    +
    + +

    +setDoBatchUpdate

    +
    +protected void setDoBatchUpdate(boolean doBatchUpdate)
    +
    +
    Set the value of doBatchUpdate +

    +

    +
    Parameters:
    doBatchUpdate - new value of doBatchUpdate
    +
    +
    +
    + +

    +update

    +
    +public void update()
    +            throws UpdateException
    +
    +

    Downloads the latest NVD CVE XML file from the web and imports it into + the current CVE Database.

    +

    +

    +
    Specified by:
    update in interface UpdateTask
    Specified by:
    update in class AbstractUpdateTask
    +
    +
    + +
    Throws: +
    UpdateException - is thrown if there is an error updating the + database
    +
    +
    +
    + +

    +updatesNeeded

    +
    +public Updateable updatesNeeded()
    +                         throws MalformedURLException,
    +                                DownloadFailedException,
    +                                UpdateException
    +
    +
    Determines if the index needs to be updated. This is done by fetching the + NVD CVE meta data and checking the last update date. If the data needs to + be refreshed this method will return the NvdCveUrl for the files that + need to be updated. +

    +

    +
    Specified by:
    updatesNeeded in class AbstractUpdateTask
    +
    +
    + +
    Returns:
    the collection of files that need to be updated +
    Throws: +
    MalformedURLException - is thrown if the URL for the NVD CVE Meta + data is incorrect +
    DownloadFailedException - is thrown if there is an error. + downloading the NVD CVE download data file +
    UpdateException - Is thrown if there is an issue with the last + updated properties file
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +Copyright © 2012-2013 OWASP. All Rights Reserved. + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html index 9328e738d..b422a2079 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html @@ -2,13 +2,13 @@ - + -DataStoreMetaInfo (Dependency-Check Core 1.0.2 API) +DataStoreMetaInfo (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DataStoreMetaInfo (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DataStoreMetaInfo (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DataStoreMetaInfo (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DatabaseUpdater.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DatabaseUpdater.html index 4d4ff30e3..b47c73774 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DatabaseUpdater.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DatabaseUpdater.html @@ -2,13 +2,13 @@ - + -DatabaseUpdater (Dependency-Check Core 1.0.2 API) +DatabaseUpdater (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DatabaseUpdater (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DatabaseUpdater (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DatabaseUpdater (Dependency-Check Core 1.0.3 API)"; } } @@ -56,7 +56,7 @@ function windowTitle() - PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   @@ -151,22 +151,6 @@ Class responsible for updating the CPE and NVDCVE data stores. -protected  boolean -isDoBatchUpdate() - -
    -          Get the value of doBatchUpdate - - - -protected  void -setDoBatchUpdate(boolean doBatchUpdate) - -
    -          Set the value of doBatchUpdate - - -  void update() @@ -214,39 +198,6 @@ public DatabaseUpdater() -

    -isDoBatchUpdate

    -
    -protected boolean isDoBatchUpdate()
    -
    -
    Get the value of doBatchUpdate -

    -

    -
    -
    -
    - -
    Returns:
    the value of doBatchUpdate
    -
    -
    -
    - -

    -setDoBatchUpdate

    -
    -protected void setDoBatchUpdate(boolean doBatchUpdate)
    -
    -
    Set the value of doBatchUpdate -

    -

    -
    -
    -
    -
    Parameters:
    doBatchUpdate - new value of doBatchUpdate
    -
    -
    -
    -

    update

    @@ -316,7 +267,7 @@ protected void deleteExistingData()
     
     
     
    - PREV CLASS 
    + PREV CLASS 
      NEXT CLASS
     
       FRAMES   
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdCveInfo.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdCveInfo.html
    index b333a2cbb..81244390c 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdCveInfo.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdCveInfo.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -NvdCveInfo (Dependency-Check Core 1.0.2 API)
    +NvdCveInfo (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ NvdCveInfo (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="NvdCveInfo (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="NvdCveInfo (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    @@ -57,7 +57,7 @@ function windowTitle()
     
     
      PREV CLASS 
    - NEXT CLASSNEXT CLASS
     
       FRAMES   
      NO FRAMES   
    @@ -423,7 +423,7 @@ public void setNeedsUpdate(boolean needsUpdate)
     PREV CLASS  - NEXT CLASSNEXT CLASS FRAMES    NO FRAMES   diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/StandardUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/StandardUpdateTask.html new file mode 100644 index 000000000..322670dcf --- /dev/null +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/StandardUpdateTask.html @@ -0,0 +1,336 @@ + + + + + + + +StandardUpdateTask (Dependency-Check Core 1.0.3 API) + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    + +

    + +org.owasp.dependencycheck.data.update +
    +Class StandardUpdateTask

    +
    +java.lang.Object
    +  extended by org.owasp.dependencycheck.data.update.AbstractUpdateTask
    +      extended by org.owasp.dependencycheck.data.update.StandardUpdateTask
    +
    +
    +
    All Implemented Interfaces:
    UpdateTask
    +
    +
    +
    +
    public class StandardUpdateTask
    extends AbstractUpdateTask
    + + +

    +Class responsible for updating the CPE and NVDCVE data stores. +

    + +

    +

    +
    Author:
    +
    Jeremy Long (jeremy.long@owasp.org)
    +
    +
    + +

    + + + + + + + + + + + +
    +Constructor Summary
    StandardUpdateTask(DataStoreMetaInfo properties) + +
    +          Constructs a new Standard Update Task.
    +  + + + + + + + + + + + + + + + +
    +Method Summary
    + voidupdate() + +
    +          Downloads the latest NVD CVE XML file from the web and imports it into + the current CVE Database.
    +protected  UpdateableupdatesNeeded() + +
    +          Determines if the index needs to be updated.
    + + + + + + + +
    Methods inherited from class org.owasp.dependencycheck.data.update.AbstractUpdateTask
    closeDataStores, deleteExistingData, getCpeIndex, getCveDB, getProperties, getUpdateable, importXML, isUpdateNeeded, openDataStores, setDeleteAndRecreate, shouldDeleteAndRecreate, withinRange
    + + + + + + + +
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +  +

    + + + + + + + + +
    +Constructor Detail
    + +

    +StandardUpdateTask

    +
    +public StandardUpdateTask(DataStoreMetaInfo properties)
    +                   throws MalformedURLException,
    +                          DownloadFailedException,
    +                          UpdateException
    +
    +
    Constructs a new Standard Update Task. +

    +

    +
    Parameters:
    properties - information about the data store +
    Throws: +
    MalformedURLException - thrown if a configured URL is malformed +
    DownloadFailedException - thrown if a timestamp cannot be checked + on a configured URL +
    UpdateException - thrown if there is an exception generating the + update task
    +
    + + + + + + + + +
    +Method Detail
    + +

    +update

    +
    +public void update()
    +            throws UpdateException
    +
    +

    Downloads the latest NVD CVE XML file from the web and imports it into + the current CVE Database.

    +

    +

    +
    Specified by:
    update in interface UpdateTask
    Specified by:
    update in class AbstractUpdateTask
    +
    +
    + +
    Throws: +
    UpdateException - is thrown if there is an error updating the + database
    +
    +
    +
    + +

    +updatesNeeded

    +
    +protected Updateable updatesNeeded()
    +                            throws MalformedURLException,
    +                                   DownloadFailedException,
    +                                   UpdateException
    +
    +
    Determines if the index needs to be updated. This is done by fetching the + NVD CVE meta data and checking the last update date. If the data needs to + be refreshed this method will return the NvdCveUrl for the files that + need to be updated. +

    +

    +
    Specified by:
    updatesNeeded in class AbstractUpdateTask
    +
    +
    + +
    Returns:
    the collection of files that need to be updated +
    Throws: +
    MalformedURLException - is thrown if the URL for the NVD CVE Meta + data is incorrect +
    DownloadFailedException - is thrown if there is an error. + downloading the NVD CVE download data file +
    UpdateException - Is thrown if there is an issue with the last + updated properties file
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +Copyright © 2012-2013 OWASP. All Rights Reserved. + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTask.html new file mode 100644 index 000000000..f113f70ba --- /dev/null +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTask.html @@ -0,0 +1,268 @@ + + + + + + + +UpdateTask (Dependency-Check Core 1.0.3 API) + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    + +

    + +org.owasp.dependencycheck.data.update +
    +Interface UpdateTask

    +
    +
    All Known Implementing Classes:
    AbstractUpdateTask, BatchUpdateTask, StandardUpdateTask
    +
    +
    +
    +
    public interface UpdateTask
    + + +

    +An interface defining an update task. +

    + +

    +

    +
    Author:
    +
    Jeremy Long (jeremy.long@owasp.org)
    +
    +
    + +

    + + + + + + + + + + + + + + + + + + + + +
    +Method Summary
    + booleanisUpdateNeeded() + +
    +          Gets whether or not an update is needed.
    + booleanshouldDeleteAndRecreate() + +
    +          Get the value of deleteAndRecreate.
    + voidupdate() + +
    +          Updates the data store to the latest version.
    +  +

    + + + + + + + + +
    +Method Detail
    + +

    +update

    +
    +void update()
    +            throws UpdateException
    +
    +

    Updates the data store to the latest version.

    +

    +

    + +
    Throws: +
    UpdateException - is thrown if there is an error updating the + database
    +
    +
    +
    + +

    +shouldDeleteAndRecreate

    +
    +boolean shouldDeleteAndRecreate()
    +
    +
    Get the value of deleteAndRecreate. +

    +

    + +
    Returns:
    the value of deleteAndRecreate
    +
    +
    +
    + +

    +isUpdateNeeded

    +
    +boolean isUpdateNeeded()
    +
    +
    Gets whether or not an update is needed. +

    +

    + +
    Returns:
    true or false depending on whether an update is needed
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +Copyright © 2012-2013 OWASP. All Rights Reserved. + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html new file mode 100644 index 000000000..0361c6e60 --- /dev/null +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html @@ -0,0 +1,241 @@ + + + + + + + +UpdateTaskFactory (Dependency-Check Core 1.0.3 API) + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    + +

    + +org.owasp.dependencycheck.data.update +
    +Class UpdateTaskFactory

    +
    +java.lang.Object
    +  extended by org.owasp.dependencycheck.data.update.UpdateTaskFactory
    +
    +
    +
    +
    public final class UpdateTaskFactory
    extends Object
    + + +

    +An UpdateTask Factory that instantiates the correct UpdateTask based on the + given configuration. +

    + +

    +

    +
    Author:
    +
    Jeremy Long (jeremy.long@owasp.org)
    +
    +
    + +

    + + + + + + + + + + + + +
    +Method Summary
    +static UpdateTaskgetUpdateTask() + +
    +          Constructs the appropriate update task based on configuration.
    + + + + + + + +
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +  +

    + + + + + + + + +
    +Method Detail
    + +

    +getUpdateTask

    +
    +public static UpdateTask getUpdateTask()
    +                                throws MalformedURLException,
    +                                       DownloadFailedException,
    +                                       UpdateException
    +
    +
    Constructs the appropriate update task based on configuration. +

    +

    + +
    Returns:
    an UpdateTask +
    Throws: +
    MalformedURLException - thrown if a configured URL is malformed +
    DownloadFailedException - thrown if a timestamp cannot be checked + on a configured URL +
    UpdateException - thrown if there is an exception generating the + update task
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +Copyright © 2012-2013 OWASP. All Rights Reserved. + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/Updateable.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/Updateable.html new file mode 100644 index 000000000..3d9a4aa5d --- /dev/null +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/Updateable.html @@ -0,0 +1,542 @@ + + + + + + + +Updateable (Dependency-Check Core 1.0.3 API) + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    + +

    + +org.owasp.dependencycheck.data.update +
    +Class Updateable

    +
    +java.lang.Object
    +  extended by org.owasp.dependencycheck.data.update.Updateable
    +
    +
    +
    All Implemented Interfaces:
    Iterable<NvdCveInfo>, Iterator<NvdCveInfo>
    +
    +
    +
    +
    public class Updateable
    extends Object
    implements Iterable<NvdCveInfo>, Iterator<NvdCveInfo>
    + + +

    +Contains a collection of updateable NvdCveInfo objects. This is used to + determine which files need to be downloaded and processed. +

    + +

    +

    +
    Author:
    +
    Jeremy Long (jeremy.long@owasp.org)
    +
    +
    + +

    + + + + + + + + + + + +
    +Constructor Summary
    Updateable() + +
    +           
    +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +Method Summary
    + voidadd(String id, + String url, + String oldUrl) + +
    +          Adds a new entry of updateable information to the contained collection.
    + voidadd(String id, + String url, + String oldUrl, + boolean needsUpdate) + +
    +          Adds a new entry of updateable information to the contained collection.
    + voidclear() + +
    +          Clears the contained collection of NvdCveInfo entries.
    +protected  Map<String,NvdCveInfo>getCollection() + +
    +          Returns the collection of NvdCveInfo objects.
    + longgetTimeStamp(String key) + +
    +          Returns the timestamp for the given entry.
    + booleanhasNext() + +
    +          Returns whether or not there is another item in the collection.
    + booleanisUpdateNeeded() + +
    +          Gets whether or not an update is needed.
    + Iterator<NvdCveInfo>iterator() + +
    +          Returns an iterator for the NvdCveInfo contained.
    + NvdCveInfonext() + +
    +          Returns the next item in the collection.
    + voidremove() + +
    +          Removes the current NvdCveInfo object from the collection.
    + StringtoString() + +
    +           
    + + + + + + + +
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +  +

    + + + + + + + + +
    +Constructor Detail
    + +

    +Updateable

    +
    +public Updateable()
    +
    +
    + + + + + + + + +
    +Method Detail
    + +

    +getCollection

    +
    +protected Map<String,NvdCveInfo> getCollection()
    +
    +
    Returns the collection of NvdCveInfo objects. This method is mainly used + for testing. +

    +

    +
    +
    +
    + +
    Returns:
    the collection of NvdCveInfo objects
    +
    +
    +
    + +

    +isUpdateNeeded

    +
    +public boolean isUpdateNeeded()
    +
    +
    Gets whether or not an update is needed. +

    +

    +
    +
    +
    + +
    Returns:
    true or false depending on whether an update is needed
    +
    +
    +
    + +

    +add

    +
    +public void add(String id,
    +                String url,
    +                String oldUrl)
    +         throws MalformedURLException,
    +                DownloadFailedException
    +
    +
    Adds a new entry of updateable information to the contained collection. +

    +

    +
    +
    +
    +
    Parameters:
    id - the key for the item to be added
    url - the URL to download the item
    oldUrl - the URL for the old version of the item (the NVD CVE old + schema still contains useful data we need). +
    Throws: +
    MalformedURLException - thrown if the URL provided is invalid +
    DownloadFailedException - thrown if the download fails.
    +
    +
    +
    + +

    +add

    +
    +public void add(String id,
    +                String url,
    +                String oldUrl,
    +                boolean needsUpdate)
    +         throws MalformedURLException,
    +                DownloadFailedException
    +
    +
    Adds a new entry of updateable information to the contained collection. +

    +

    +
    +
    +
    +
    Parameters:
    id - the key for the item to be added
    url - the URL to download the item
    oldUrl - the URL for the old version of the item (the NVD CVE old + schema still contains useful data we need).
    needsUpdate - whether or not the data needs to be updated +
    Throws: +
    MalformedURLException - thrown if the URL provided is invalid +
    DownloadFailedException - thrown if the download fails.
    +
    +
    +
    + +

    +clear

    +
    +public void clear()
    +
    +
    Clears the contained collection of NvdCveInfo entries. +

    +

    +
    +
    +
    +
    +
    +
    +
    + +

    +getTimeStamp

    +
    +public long getTimeStamp(String key)
    +
    +
    Returns the timestamp for the given entry. +

    +

    +
    +
    +
    +
    Parameters:
    key - the key to lookup in the collection of NvdCveInfo items +
    Returns:
    the timestamp for the given entry
    +
    +
    +
    + +

    +iterator

    +
    +public Iterator<NvdCveInfo> iterator()
    +
    +

    Returns an iterator for the NvdCveInfo contained.

    +

    This method is not thread safe.

    +

    +

    +
    Specified by:
    iterator in interface Iterable<NvdCveInfo>
    +
    +
    + +
    Returns:
    an NvdCveInfo Iterator
    +
    +
    +
    + +

    +hasNext

    +
    +public boolean hasNext()
    +
    +

    Returns whether or not there is another item in the collection.

    +

    This method is not thread safe.

    +

    +

    +
    Specified by:
    hasNext in interface Iterator<NvdCveInfo>
    +
    +
    + +
    Returns:
    true or false depending on whether or not another item exists in + the collection
    +
    +
    +
    + +

    +next

    +
    +public NvdCveInfo next()
    +
    +

    Returns the next item in the collection.

    +

    This method is not thread safe.

    +

    +

    +
    Specified by:
    next in interface Iterator<NvdCveInfo>
    +
    +
    + +
    Returns:
    the next NvdCveInfo item in the collection
    +
    +
    +
    + +

    +remove

    +
    +public void remove()
    +
    +

    Removes the current NvdCveInfo object from the collection.

    +

    This method is not thread safe.

    +

    +

    +
    Specified by:
    remove in interface Iterator<NvdCveInfo>
    +
    +
    +
    +
    +
    +
    + +

    +toString

    +
    +public String toString()
    +
    +
    +
    Overrides:
    toString in class Object
    +
    +
    +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +Copyright © 2012-2013 OWASP. All Rights Reserved. + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractIndex.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/AbstractUpdateTask.html similarity index 69% rename from dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractIndex.html rename to dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/AbstractUpdateTask.html index d73f4aa41..757f2b45a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractIndex.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/AbstractUpdateTask.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.AbstractIndex (dependency-check-core 1.0.1 API) +Uses of Class org.owasp.dependencycheck.data.update.AbstractUpdateTask (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.AbstractIndex (dependency-ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AbstractIndex (dependency-check-core 1.0.1 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.AbstractUpdateTask (Dependency-Check Core 1.0.3 API)"; } } @@ -40,7 +40,7 @@ function windowTitle() Overview  Package  - Class  + Class   Use  Tree  Deprecated  @@ -59,8 +59,8 @@ function windowTitle()  PREV   NEXT
    - FRAMES   - NO FRAMES   + FRAMES   + NO FRAMES     @@ -40,7 +40,7 @@ function windowTitle() Overview  Package  - Class  + Class   Use  Tree  Deprecated  @@ -59,8 +59,8 @@ function windowTitle()  PREV   NEXT - FRAMES   - NO FRAMES   + FRAMES   + NO FRAMES     @@ -84,7 +84,73 @@ function windowTitle()

    Uses of Class
    org.owasp.dependencycheck.data.update.DataStoreMetaInfo

    -No usage of org.owasp.dependencycheck.data.update.DataStoreMetaInfo + + + + + + + + + +
    +Packages that use DataStoreMetaInfo
    org.owasp.dependencycheck.data.update + + org.owasp.dependencycheck.data.nvdcve.xml + +  
    +  +

    + + + + + +
    +Uses of DataStoreMetaInfo in org.owasp.dependencycheck.data.update
    +  +

    + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data.update that return DataStoreMetaInfo
    +protected  DataStoreMetaInfoAbstractUpdateTask.getProperties() + +
    +          Returns the data store properties.
    +  +

    + + + + + + + + + + + + + + +
    Constructors in org.owasp.dependencycheck.data.update with parameters of type DataStoreMetaInfo
    AbstractUpdateTask(DataStoreMetaInfo properties) + +
    +          Initializes the AbstractUpdateTask.
    BatchUpdateTask(DataStoreMetaInfo properties) + +
    +          Constructs a new BatchUpdateTask.
    StandardUpdateTask(DataStoreMetaInfo properties) + +
    +          Constructs a new Standard Update Task.


    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DatabaseUpdater.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DatabaseUpdater.html index d4a776c74..5f9091048 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DatabaseUpdater.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DatabaseUpdater.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdCveInfo.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdCveInfo.html index 4d44701f7..f855fa1ad 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdCveInfo.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdCveInfo.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check Core 1.0.3 API)"; } } @@ -111,6 +111,46 @@ Uses of + +Methods in org.owasp.dependencycheck.data.update that return NvdCveInfo
    + + + + NvdCveInfo +Updateable.next() + +
    +          Returns the next item in the collection. + + +  +

    + + + + + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data.update that return types with arguments of type NvdCveInfo
    +protected  Map<String,NvdCveInfo>Updateable.getCollection() + +
    +          Returns the collection of NvdCveInfo objects.
    + Iterator<NvdCveInfo>Updateable.iterator() + +
    +          Returns an iterator for the NvdCveInfo contained.
    +  +

    + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Index.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/StandardUpdateTask.html similarity index 81% rename from dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Index.html rename to dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/StandardUpdateTask.html index 48a6a8381..6265af01d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Index.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/StandardUpdateTask.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cpe.Index (dependency-check-core 1.0.1 API) +Uses of Class org.owasp.dependencycheck.data.update.StandardUpdateTask (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cpe.Index (dependency-check-core 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.Index (dependency-check-core 1.0.1 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.StandardUpdateTask (Dependency-Check Core 1.0.3 API)"; } } @@ -40,7 +40,7 @@ function windowTitle() - + @@ -59,8 +59,8 @@ function windowTitle()  PREV   NEXT - + @@ -59,8 +59,8 @@ function windowTitle()  PREV   NEXT + + + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data.update with parameters of type NvdCveInfo
    AbstractUpdateTask + +
    +          Class responsible for updating the CPE and NVDCVE data stores.
    DataStoreMetaInfo + +
    +           
    NvdCveInfo
              A pojo that contains the Url and timestamp of the current NvdCve XML files.
    Updateable + +
    +          Contains a collection of updateable NvdCveInfo objects.
    UpdateTask + +
    +          An interface defining an update task.
     

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Dependency.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Dependency.html index 2f3a88825..0d6228dd6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Dependency.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Dependency.html @@ -2,13 +2,13 @@ - + -Dependency (Dependency-Check Core 1.0.2 API) +Dependency (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Dependency (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Dependency (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Dependency (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.Confidence.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.Confidence.html index 790f8d6f3..fe4f30a19 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.Confidence.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.Confidence.html @@ -2,13 +2,13 @@ - + -Evidence.Confidence (Dependency-Check Core 1.0.2 API) +Evidence.Confidence (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Evidence.Confidence (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Evidence.Confidence (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Evidence.Confidence (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.html index f471e9170..5eaca2b24 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.html @@ -2,13 +2,13 @@ - + -Evidence (Dependency-Check Core 1.0.2 API) +Evidence (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Evidence (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Evidence (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Evidence (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/EvidenceCollection.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/EvidenceCollection.html index 83b4a897a..5a1e75189 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/EvidenceCollection.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/EvidenceCollection.html @@ -2,13 +2,13 @@ - + -EvidenceCollection (Dependency-Check Core 1.0.2 API) +EvidenceCollection (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ EvidenceCollection (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="EvidenceCollection (Dependency-Check Core 1.0.2 API)"; + parent.document.title="EvidenceCollection (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Identifier.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Identifier.html index 900f555d5..3e2734613 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Identifier.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Identifier.html @@ -2,13 +2,13 @@ - + -Identifier (Dependency-Check Core 1.0.2 API) +Identifier (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Identifier (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Identifier (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Identifier (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Reference.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Reference.html index 0fdf31358..04db702d7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Reference.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Reference.html @@ -2,13 +2,13 @@ - + -Reference (Dependency-Check Core 1.0.2 API) +Reference (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Reference (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Reference (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Reference (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Vulnerability.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Vulnerability.html index b507904d6..b97d96287 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Vulnerability.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Vulnerability.html @@ -2,13 +2,13 @@ - + -Vulnerability (Dependency-Check Core 1.0.2 API) +Vulnerability (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Vulnerability (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Vulnerability (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Vulnerability (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerabilityComparator.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerabilityComparator.html index ee11feaca..907913be6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerabilityComparator.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerabilityComparator.html @@ -2,13 +2,13 @@ - + -VulnerabilityComparator (Dependency-Check Core 1.0.2 API) +VulnerabilityComparator (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ VulnerabilityComparator (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="VulnerabilityComparator (Dependency-Check Core 1.0.2 API)"; + parent.document.title="VulnerabilityComparator (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerableSoftware.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerableSoftware.html index c6cbfa745..02302e513 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerableSoftware.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerableSoftware.html @@ -2,13 +2,13 @@ - + -VulnerableSoftware (Dependency-Check Core 1.0.2 API) +VulnerableSoftware (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ VulnerableSoftware (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="VulnerableSoftware (Dependency-Check Core 1.0.2 API)"; + parent.document.title="VulnerableSoftware (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Dependency.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Dependency.html index b8eaff26f..44d3d17e9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Dependency.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Dependency.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.Confidence.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.Confidence.html index d5e5d365f..4b9f0f68d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.Confidence.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.Confidence.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.html index 8008cf23f..2378be3c8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Co function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/EvidenceCollection.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/EvidenceCollection.html index 394623d8e..07495d5d3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/EvidenceCollection.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/EvidenceCollection.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Identifier.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Identifier.html index aef0a332d..bfd50d3c8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Identifier.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Identifier.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Reference.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Reference.html index 5ed72a3d6..28e7d6514 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Reference.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Reference.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Vulnerability.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Vulnerability.html index 924999a99..22c49b133 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Vulnerability.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Vulnerability.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Check Core 1.0.3 API)"; } } @@ -144,14 +144,6 @@ Uses of  void -NvdCve20Handler.saveEntry(Vulnerability vuln) - -
    -          Saves a vulnerability to the CVE Database. - - - - void CveDB.updateVulnerability(Vulnerability vuln)
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerabilityComparator.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerabilityComparator.html index 8b3ecb529..8278d5610 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerabilityComparator.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerabilityComparator.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerableSoftware.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerableSoftware.html index a15a915d4..975ea2d7a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerableSoftware.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerableSoftware.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-frame.html index 7cb9c9ae7..f76045aac 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html index 6ff67fc11..47010a7ff 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-tree.html index d941ceca1..7e4783dd7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-use.html index 56ae59168..3e7695641 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/MavenNamespaceFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/MavenNamespaceFilter.html index bc70be0ad..c7ac63be4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/MavenNamespaceFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/MavenNamespaceFilter.html @@ -2,13 +2,13 @@ - + -MavenNamespaceFilter (Dependency-Check Core 1.0.2 API) +MavenNamespaceFilter (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ MavenNamespaceFilter (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="MavenNamespaceFilter (Dependency-Check Core 1.0.2 API)"; + parent.document.title="MavenNamespaceFilter (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/class-use/MavenNamespaceFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/class-use/MavenNamespaceFilter.html index ebcb951c5..256772752 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/class-use/MavenNamespaceFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/class-use/MavenNamespaceFilter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Activation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Activation.html index 887e643ee..15fb1f736 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Activation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Activation.html @@ -2,13 +2,13 @@ - + -Activation (Dependency-Check Core 1.0.2 API) +Activation (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Activation (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Activation (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Activation (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationFile.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationFile.html index 48a460d97..e80adee0e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationFile.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationFile.html @@ -2,13 +2,13 @@ - + -ActivationFile (Dependency-Check Core 1.0.2 API) +ActivationFile (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ActivationFile (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ActivationFile (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ActivationFile (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationOS.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationOS.html index d05ef1b49..8e60d62c6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationOS.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationOS.html @@ -2,13 +2,13 @@ - + -ActivationOS (Dependency-Check Core 1.0.2 API) +ActivationOS (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ActivationOS (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ActivationOS (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ActivationOS (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationProperty.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationProperty.html index f55251517..fe94965c0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationProperty.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationProperty.html @@ -2,13 +2,13 @@ - + -ActivationProperty (Dependency-Check Core 1.0.2 API) +ActivationProperty (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ActivationProperty (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ActivationProperty (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ActivationProperty (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Extensions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Extensions.html index 3bf07b01c..f4f313462 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Extensions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Extensions.html @@ -2,13 +2,13 @@ - + -Build.Extensions (Dependency-Check Core 1.0.2 API) +Build.Extensions (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Build.Extensions (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.Extensions (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Build.Extensions (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Filters.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Filters.html index 80d021f45..7f5b8bd4e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Filters.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Filters.html @@ -2,13 +2,13 @@ - + -Build.Filters (Dependency-Check Core 1.0.2 API) +Build.Filters (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Build.Filters (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.Filters (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Build.Filters (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Plugins.html index 5a742fc7c..23fecb0a6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Plugins.html @@ -2,13 +2,13 @@ - + -Build.Plugins (Dependency-Check Core 1.0.2 API) +Build.Plugins (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Build.Plugins (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.Plugins (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Build.Plugins (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Resources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Resources.html index fc2af6350..02ece3d18 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Resources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Resources.html @@ -2,13 +2,13 @@ - + -Build.Resources (Dependency-Check Core 1.0.2 API) +Build.Resources (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Build.Resources (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.Resources (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Build.Resources (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.TestResources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.TestResources.html index 88c1ee846..30aa6c0ea 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.TestResources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.TestResources.html @@ -2,13 +2,13 @@ - + -Build.TestResources (Dependency-Check Core 1.0.2 API) +Build.TestResources (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Build.TestResources (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.TestResources (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Build.TestResources (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.html index f2af0d1af..aadba72e6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.html @@ -2,13 +2,13 @@ - + -Build (Dependency-Check Core 1.0.2 API) +Build (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Build (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Build (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Filters.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Filters.html index 22cb0d844..e1cef5f4e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Filters.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Filters.html @@ -2,13 +2,13 @@ - + -BuildBase.Filters (Dependency-Check Core 1.0.2 API) +BuildBase.Filters (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ BuildBase.Filters (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase.Filters (Dependency-Check Core 1.0.2 API)"; + parent.document.title="BuildBase.Filters (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Plugins.html index f799b3054..5e8c00c67 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Plugins.html @@ -2,13 +2,13 @@ - + -BuildBase.Plugins (Dependency-Check Core 1.0.2 API) +BuildBase.Plugins (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ BuildBase.Plugins (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase.Plugins (Dependency-Check Core 1.0.2 API)"; + parent.document.title="BuildBase.Plugins (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Resources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Resources.html index 292a52f84..96297e541 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Resources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Resources.html @@ -2,13 +2,13 @@ - + -BuildBase.Resources (Dependency-Check Core 1.0.2 API) +BuildBase.Resources (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ BuildBase.Resources (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase.Resources (Dependency-Check Core 1.0.2 API)"; + parent.document.title="BuildBase.Resources (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.TestResources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.TestResources.html index ace36448c..d674c6d07 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.TestResources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.TestResources.html @@ -2,13 +2,13 @@ - + -BuildBase.TestResources (Dependency-Check Core 1.0.2 API) +BuildBase.TestResources (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ BuildBase.TestResources (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase.TestResources (Dependency-Check Core 1.0.2 API)"; + parent.document.title="BuildBase.TestResources (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.html index 7f0f7ba35..744042e05 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.html @@ -2,13 +2,13 @@ - + -BuildBase (Dependency-Check Core 1.0.2 API) +BuildBase (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ BuildBase (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase (Dependency-Check Core 1.0.2 API)"; + parent.document.title="BuildBase (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.Notifiers.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.Notifiers.html index 31840cee6..2de74d7d6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.Notifiers.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.Notifiers.html @@ -2,13 +2,13 @@ - + -CiManagement.Notifiers (Dependency-Check Core 1.0.2 API) +CiManagement.Notifiers (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ CiManagement.Notifiers (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CiManagement.Notifiers (Dependency-Check Core 1.0.2 API)"; + parent.document.title="CiManagement.Notifiers (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.html index 56d4d2ed7..3c5cbaf81 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.html @@ -2,13 +2,13 @@ - + -CiManagement (Dependency-Check Core 1.0.2 API) +CiManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ CiManagement (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CiManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="CiManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Properties.html index 397b787fd..48516f095 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Properties.html @@ -2,13 +2,13 @@ - + -Contributor.Properties (Dependency-Check Core 1.0.2 API) +Contributor.Properties (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Contributor.Properties (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Contributor.Properties (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Contributor.Properties (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Roles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Roles.html index 5d78e22d5..a269e0090 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Roles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Roles.html @@ -2,13 +2,13 @@ - + -Contributor.Roles (Dependency-Check Core 1.0.2 API) +Contributor.Roles (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Contributor.Roles (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Contributor.Roles (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Contributor.Roles (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.html index 8f0c1eea0..a5611fe63 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.html @@ -2,13 +2,13 @@ - + -Contributor (Dependency-Check Core 1.0.2 API) +Contributor (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Contributor (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Contributor (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Contributor (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.Exclusions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.Exclusions.html index c2c09b8bc..d0c0531e1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.Exclusions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.Exclusions.html @@ -2,13 +2,13 @@ - + -Dependency.Exclusions (Dependency-Check Core 1.0.2 API) +Dependency.Exclusions (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Dependency.Exclusions (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Dependency.Exclusions (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Dependency.Exclusions (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.html index 7c1a42a21..1ed02d2c5 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.html @@ -2,13 +2,13 @@ - + -Dependency (Dependency-Check Core 1.0.2 API) +Dependency (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Dependency (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Dependency (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Dependency (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.Dependencies.html index 3c52660b5..91f7a0e2b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.Dependencies.html @@ -2,13 +2,13 @@ - + -DependencyManagement.Dependencies (Dependency-Check Core 1.0.2 API) +DependencyManagement.Dependencies (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DependencyManagement.Dependencies (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyManagement.Dependencies (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DependencyManagement.Dependencies (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.html index 710e32b04..123f6caec 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.html @@ -2,13 +2,13 @@ - + -DependencyManagement (Dependency-Check Core 1.0.2 API) +DependencyManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DependencyManagement (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DependencyManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DeploymentRepository.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DeploymentRepository.html index 556d352dd..759721e4e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DeploymentRepository.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DeploymentRepository.html @@ -2,13 +2,13 @@ - + -DeploymentRepository (Dependency-Check Core 1.0.2 API) +DeploymentRepository (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DeploymentRepository (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DeploymentRepository (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DeploymentRepository (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Properties.html index 29ca7e63f..90a24c4ba 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Properties.html @@ -2,13 +2,13 @@ - + -Developer.Properties (Dependency-Check Core 1.0.2 API) +Developer.Properties (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Developer.Properties (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Developer.Properties (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Developer.Properties (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Roles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Roles.html index d067af115..910e61dec 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Roles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Roles.html @@ -2,13 +2,13 @@ - + -Developer.Roles (Dependency-Check Core 1.0.2 API) +Developer.Roles (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Developer.Roles (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Developer.Roles (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Developer.Roles (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.html index f3a143ef6..997604818 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.html @@ -2,13 +2,13 @@ - + -Developer (Dependency-Check Core 1.0.2 API) +Developer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Developer (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Developer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Developer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DistributionManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DistributionManagement.html index 8ebf744bd..8df992f07 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DistributionManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DistributionManagement.html @@ -2,13 +2,13 @@ - + -DistributionManagement (Dependency-Check Core 1.0.2 API) +DistributionManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DistributionManagement (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DistributionManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DistributionManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Exclusion.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Exclusion.html index 1a5b52a0f..9093d0821 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Exclusion.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Exclusion.html @@ -2,13 +2,13 @@ - + -Exclusion (Dependency-Check Core 1.0.2 API) +Exclusion (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Exclusion (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Exclusion (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Exclusion (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Extension.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Extension.html index cbcc42369..21c4710ed 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Extension.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Extension.html @@ -2,13 +2,13 @@ - + -Extension (Dependency-Check Core 1.0.2 API) +Extension (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Extension (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Extension (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Extension (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/IssueManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/IssueManagement.html index 140882590..fa2306749 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/IssueManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/IssueManagement.html @@ -2,13 +2,13 @@ - + -IssueManagement (Dependency-Check Core 1.0.2 API) +IssueManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ IssueManagement (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="IssueManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="IssueManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/License.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/License.html index 22feeef10..beb4c95f2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/License.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/License.html @@ -2,13 +2,13 @@ - + -License (Dependency-Check Core 1.0.2 API) +License (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ License (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="License (Dependency-Check Core 1.0.2 API)"; + parent.document.title="License (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.OtherArchives.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.OtherArchives.html index 2912d33a4..6cabc84d7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.OtherArchives.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.OtherArchives.html @@ -2,13 +2,13 @@ - + -MailingList.OtherArchives (Dependency-Check Core 1.0.2 API) +MailingList.OtherArchives (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ MailingList.OtherArchives (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="MailingList.OtherArchives (Dependency-Check Core 1.0.2 API)"; + parent.document.title="MailingList.OtherArchives (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.html index 037e520b0..b9bea86b7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.html @@ -2,13 +2,13 @@ - + -MailingList (Dependency-Check Core 1.0.2 API) +MailingList (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ MailingList (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="MailingList (Dependency-Check Core 1.0.2 API)"; + parent.document.title="MailingList (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Contributors.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Contributors.html index 3f78ac804..817eea48c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Contributors.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Contributors.html @@ -2,13 +2,13 @@ - + -Model.Contributors (Dependency-Check Core 1.0.2 API) +Model.Contributors (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Contributors (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Contributors (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Contributors (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Dependencies.html index def64df7a..6fa2c7199 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Dependencies.html @@ -2,13 +2,13 @@ - + -Model.Dependencies (Dependency-Check Core 1.0.2 API) +Model.Dependencies (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Dependencies (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Dependencies (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Dependencies (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Developers.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Developers.html index d8dd6dcaa..a2993b8d0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Developers.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Developers.html @@ -2,13 +2,13 @@ - + -Model.Developers (Dependency-Check Core 1.0.2 API) +Model.Developers (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Developers (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Developers (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Developers (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Licenses.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Licenses.html index 928508205..6b0309bd4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Licenses.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Licenses.html @@ -2,13 +2,13 @@ - + -Model.Licenses (Dependency-Check Core 1.0.2 API) +Model.Licenses (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Licenses (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Licenses (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Licenses (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.MailingLists.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.MailingLists.html index 6d03b05e8..6b92fca51 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.MailingLists.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.MailingLists.html @@ -2,13 +2,13 @@ - + -Model.MailingLists (Dependency-Check Core 1.0.2 API) +Model.MailingLists (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.MailingLists (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.MailingLists (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.MailingLists (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Modules.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Modules.html index 85dfdeffd..313232848 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Modules.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Modules.html @@ -2,13 +2,13 @@ - + -Model.Modules (Dependency-Check Core 1.0.2 API) +Model.Modules (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Modules (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Modules (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Modules (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.PluginRepositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.PluginRepositories.html index 48ca0e7cd..fa622f27a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.PluginRepositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.PluginRepositories.html @@ -2,13 +2,13 @@ - + -Model.PluginRepositories (Dependency-Check Core 1.0.2 API) +Model.PluginRepositories (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.PluginRepositories (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.PluginRepositories (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.PluginRepositories (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Profiles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Profiles.html index 28fc287b1..d092f7cd6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Profiles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Profiles.html @@ -2,13 +2,13 @@ - + -Model.Profiles (Dependency-Check Core 1.0.2 API) +Model.Profiles (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Profiles (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Profiles (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Profiles (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Properties.html index d7869dc23..5464621ec 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Properties.html @@ -2,13 +2,13 @@ - + -Model.Properties (Dependency-Check Core 1.0.2 API) +Model.Properties (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Properties (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Properties (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Properties (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Reports.html index 80b66a0e2..c59570c19 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Reports.html @@ -2,13 +2,13 @@ - + -Model.Reports (Dependency-Check Core 1.0.2 API) +Model.Reports (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Reports (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Reports (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Reports (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Repositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Repositories.html index be09d40d3..5f592f421 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Repositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Repositories.html @@ -2,13 +2,13 @@ - + -Model.Repositories (Dependency-Check Core 1.0.2 API) +Model.Repositories (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model.Repositories (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Repositories (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model.Repositories (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.html index f4d50337e..141682592 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.html @@ -2,13 +2,13 @@ - + -Model (Dependency-Check Core 1.0.2 API) +Model (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Model (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Model (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.Configuration.html index 930f0bc48..e60dca6c0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.Configuration.html @@ -2,13 +2,13 @@ - + -Notifier.Configuration (Dependency-Check Core 1.0.2 API) +Notifier.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Notifier.Configuration (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Notifier.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Notifier.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.html index 129d2f9ac..105bf6f11 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.html @@ -2,13 +2,13 @@ - + -Notifier (Dependency-Check Core 1.0.2 API) +Notifier (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Notifier (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Notifier (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Notifier (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ObjectFactory.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ObjectFactory.html index f82edd9f5..a111f1325 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ObjectFactory.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ObjectFactory.html @@ -2,13 +2,13 @@ - + -ObjectFactory (Dependency-Check Core 1.0.2 API) +ObjectFactory (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ObjectFactory (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ObjectFactory (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ObjectFactory (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Organization.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Organization.html index de8613ea0..dfbd07dc6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Organization.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Organization.html @@ -2,13 +2,13 @@ - + -Organization (Dependency-Check Core 1.0.2 API) +Organization (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Organization (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Organization (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Organization (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Parent.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Parent.html index 4d4c7409b..7845e3738 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Parent.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Parent.html @@ -2,13 +2,13 @@ - + -Parent (Dependency-Check Core 1.0.2 API) +Parent (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Parent (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Parent (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Parent (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Configuration.html index a3c9cbf25..6cca2354a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Configuration.html @@ -2,13 +2,13 @@ - + -Plugin.Configuration (Dependency-Check Core 1.0.2 API) +Plugin.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Plugin.Configuration (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Plugin.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Dependencies.html index 9f1f3db5c..0e9ee17c8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Dependencies.html @@ -2,13 +2,13 @@ - + -Plugin.Dependencies (Dependency-Check Core 1.0.2 API) +Plugin.Dependencies (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Plugin.Dependencies (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin.Dependencies (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Plugin.Dependencies (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Executions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Executions.html index 5fe61fd56..118506a8e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Executions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Executions.html @@ -2,13 +2,13 @@ - + -Plugin.Executions (Dependency-Check Core 1.0.2 API) +Plugin.Executions (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Plugin.Executions (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin.Executions (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Plugin.Executions (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Goals.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Goals.html index 6824bf92a..789a6488a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Goals.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Goals.html @@ -2,13 +2,13 @@ - + -Plugin.Goals (Dependency-Check Core 1.0.2 API) +Plugin.Goals (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Plugin.Goals (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin.Goals (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Plugin.Goals (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.html index df9fe7be5..8ce92dd98 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.html @@ -2,13 +2,13 @@ - + -Plugin (Dependency-Check Core 1.0.2 API) +Plugin (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Plugin (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Plugin (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Configuration.html index ec77bea3a..3dbc28422 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Configuration.html @@ -2,13 +2,13 @@ - + -PluginExecution.Configuration (Dependency-Check Core 1.0.2 API) +PluginExecution.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ PluginExecution.Configuration (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginExecution.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="PluginExecution.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Goals.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Goals.html index 90cfa81b2..f6496f25a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Goals.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Goals.html @@ -2,13 +2,13 @@ - + -PluginExecution.Goals (Dependency-Check Core 1.0.2 API) +PluginExecution.Goals (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ PluginExecution.Goals (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginExecution.Goals (Dependency-Check Core 1.0.2 API)"; + parent.document.title="PluginExecution.Goals (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.html index f5c1a43a8..809687a7a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.html @@ -2,13 +2,13 @@ - + -PluginExecution (Dependency-Check Core 1.0.2 API) +PluginExecution (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ PluginExecution (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginExecution (Dependency-Check Core 1.0.2 API)"; + parent.document.title="PluginExecution (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.Plugins.html index ce317cc71..97856ef02 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.Plugins.html @@ -2,13 +2,13 @@ - + -PluginManagement.Plugins (Dependency-Check Core 1.0.2 API) +PluginManagement.Plugins (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ PluginManagement.Plugins (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginManagement.Plugins (Dependency-Check Core 1.0.2 API)"; + parent.document.title="PluginManagement.Plugins (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.html index 9e0f7fb03..ffdf5198a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.html @@ -2,13 +2,13 @@ - + -PluginManagement (Dependency-Check Core 1.0.2 API) +PluginManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ PluginManagement (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="PluginManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.html index ff644fbd0..cd01b6fde 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.html @@ -2,13 +2,13 @@ - + -Prerequisites (Dependency-Check Core 1.0.2 API) +Prerequisites (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Prerequisites (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Prerequisites (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Prerequisites (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Dependencies.html index b280bf5d7..2ceaa1b2e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Dependencies.html @@ -2,13 +2,13 @@ - + -Profile.Dependencies (Dependency-Check Core 1.0.2 API) +Profile.Dependencies (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Profile.Dependencies (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Dependencies (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Profile.Dependencies (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Modules.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Modules.html index feac4589c..8f0a63f80 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Modules.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Modules.html @@ -2,13 +2,13 @@ - + -Profile.Modules (Dependency-Check Core 1.0.2 API) +Profile.Modules (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Profile.Modules (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Modules (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Profile.Modules (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.PluginRepositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.PluginRepositories.html index ac8e32537..f89ba1421 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.PluginRepositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.PluginRepositories.html @@ -2,13 +2,13 @@ - + -Profile.PluginRepositories (Dependency-Check Core 1.0.2 API) +Profile.PluginRepositories (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Profile.PluginRepositories (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.PluginRepositories (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Profile.PluginRepositories (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Properties.html index b3d30978c..d774dd744 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Properties.html @@ -2,13 +2,13 @@ - + -Profile.Properties (Dependency-Check Core 1.0.2 API) +Profile.Properties (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Profile.Properties (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Properties (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Profile.Properties (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Reports.html index a8e69d362..036ffac49 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Reports.html @@ -2,13 +2,13 @@ - + -Profile.Reports (Dependency-Check Core 1.0.2 API) +Profile.Reports (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Profile.Reports (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Reports (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Profile.Reports (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Repositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Repositories.html index b6bea801a..2a454b236 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Repositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Repositories.html @@ -2,13 +2,13 @@ - + -Profile.Repositories (Dependency-Check Core 1.0.2 API) +Profile.Repositories (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Profile.Repositories (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Repositories (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Profile.Repositories (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.html index f5e3ccfc3..066a70496 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.html @@ -2,13 +2,13 @@ - + -Profile (Dependency-Check Core 1.0.2 API) +Profile (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Profile (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Profile (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Relocation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Relocation.html index c608af618..be4cfe9d2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Relocation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Relocation.html @@ -2,13 +2,13 @@ - + -Relocation (Dependency-Check Core 1.0.2 API) +Relocation (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Relocation (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Relocation (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Relocation (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.Configuration.html index e605621aa..5c5365753 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.Configuration.html @@ -2,13 +2,13 @@ - + -ReportPlugin.Configuration (Dependency-Check Core 1.0.2 API) +ReportPlugin.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ReportPlugin.Configuration (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportPlugin.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ReportPlugin.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.ReportSets.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.ReportSets.html index e5846e958..b7ee305df 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.ReportSets.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.ReportSets.html @@ -2,13 +2,13 @@ - + -ReportPlugin.ReportSets (Dependency-Check Core 1.0.2 API) +ReportPlugin.ReportSets (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ReportPlugin.ReportSets (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportPlugin.ReportSets (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ReportPlugin.ReportSets (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.html index 028b3bac9..7d2e95b38 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.html @@ -2,13 +2,13 @@ - + -ReportPlugin (Dependency-Check Core 1.0.2 API) +ReportPlugin (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ReportPlugin (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportPlugin (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ReportPlugin (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Configuration.html index ad821c45a..31548a0a8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Configuration.html @@ -2,13 +2,13 @@ - + -ReportSet.Configuration (Dependency-Check Core 1.0.2 API) +ReportSet.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ReportSet.Configuration (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportSet.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ReportSet.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Reports.html index 3357becd0..76282e4a4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Reports.html @@ -2,13 +2,13 @@ - + -ReportSet.Reports (Dependency-Check Core 1.0.2 API) +ReportSet.Reports (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ReportSet.Reports (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportSet.Reports (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ReportSet.Reports (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.html index 4fc2eb59e..133ff227e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.html @@ -2,13 +2,13 @@ - + -ReportSet (Dependency-Check Core 1.0.2 API) +ReportSet (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ReportSet (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportSet (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ReportSet (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.Plugins.html index a251e15a9..b2eaa491b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.Plugins.html @@ -2,13 +2,13 @@ - + -Reporting.Plugins (Dependency-Check Core 1.0.2 API) +Reporting.Plugins (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Reporting.Plugins (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Reporting.Plugins (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Reporting.Plugins (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.html index 6b8095265..cf5770aa4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.html @@ -2,13 +2,13 @@ - + -Reporting (Dependency-Check Core 1.0.2 API) +Reporting (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Reporting (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Reporting (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Reporting (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Repository.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Repository.html index ba06dc606..502bad2eb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Repository.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Repository.html @@ -2,13 +2,13 @@ - + -Repository (Dependency-Check Core 1.0.2 API) +Repository (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Repository (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Repository (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Repository (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/RepositoryPolicy.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/RepositoryPolicy.html index 774b9a2ef..c165b5cf3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/RepositoryPolicy.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/RepositoryPolicy.html @@ -2,13 +2,13 @@ - + -RepositoryPolicy (Dependency-Check Core 1.0.2 API) +RepositoryPolicy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ RepositoryPolicy (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RepositoryPolicy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="RepositoryPolicy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Excludes.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Excludes.html index 948a8edae..2ec1b7502 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Excludes.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Excludes.html @@ -2,13 +2,13 @@ - + -Resource.Excludes (Dependency-Check Core 1.0.2 API) +Resource.Excludes (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Resource.Excludes (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Resource.Excludes (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Resource.Excludes (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Includes.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Includes.html index 79f8b4b0d..2465e7a8f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Includes.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Includes.html @@ -2,13 +2,13 @@ - + -Resource.Includes (Dependency-Check Core 1.0.2 API) +Resource.Includes (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Resource.Includes (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Resource.Includes (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Resource.Includes (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.html index b9ba51b84..c7877f311 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.html @@ -2,13 +2,13 @@ - + -Resource (Dependency-Check Core 1.0.2 API) +Resource (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Resource (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Resource (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Resource (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Scm.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Scm.html index ac15d776f..30349ab09 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Scm.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Scm.html @@ -2,13 +2,13 @@ - + -Scm (Dependency-Check Core 1.0.2 API) +Scm (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Scm (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Scm (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Scm (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Site.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Site.html index 2b271282d..768de18ab 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Site.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Site.html @@ -2,13 +2,13 @@ - + -Site (Dependency-Check Core 1.0.2 API) +Site (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Site (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Site (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Site (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Activation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Activation.html index dde97ec7a..870fd1e57 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Activation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Activation.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationFile.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationFile.html index a0a4129f8..225ce0a75 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationFile.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationFile.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Depen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationOS.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationOS.html index ac48bb186..f6f92994c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationOS.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationOS.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationProperty.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationProperty.html index e6ba20d52..b69ca65ea 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationProperty.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationProperty.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Extensions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Extensions.html index faae6cfd1..0408bcdc8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Extensions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Extensions.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Filters.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Filters.html index 01677b8af..c5cab720d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Filters.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Filters.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Plugins.html index f55cf8163..f1512ca57 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Plugins.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Resources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Resources.html index d2660a190..e37e8ce78 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Resources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Resources.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.TestResources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.TestResources.html index ea5b49255..77ecfd363 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.TestResources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.TestResources.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources ( function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.html index 0737b9542..4027a44aa 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Filters.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Filters.html index 5a75c0cb7..d3e5cee2c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Filters.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Filters.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Plugins.html index b6678c136..e0b01a6d8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Plugins.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Resources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Resources.html index 4bc2e4bc5..e9bc20b58 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Resources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Resources.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources ( function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.TestResources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.TestResources.html index acec8f9b2..d8ba35697 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.TestResources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.TestResources.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResourc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.html index 033c0e656..c19df7d1a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.Notifiers.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.Notifiers.html index a710538a0..2bed90c21 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.Notifiers.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.Notifiers.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifier function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.html index 20726d1bd..8e1b29f95 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Properties.html index 405af5679..73d46e2bc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Properties.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Propertie function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Roles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Roles.html index 2083c0867..f5e6f1804 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Roles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Roles.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.html index ff57d6a57..77dca1c71 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.Exclusions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.Exclusions.html index 6d03a6ab1..f24d0a6b2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.Exclusions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.Exclusions.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.html index 5cad1685b..1e6313007 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.Dependencies.html index 838dacb1d..c850acccc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.Dependencies.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.html index 3b6bcf8c9..6b201b026 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DeploymentRepository.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DeploymentRepository.html index 4ad3ab6c0..b5658016b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DeploymentRepository.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DeploymentRepository.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Properties.html index 8d8642c9e..3b5f8c8c7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Properties.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Roles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Roles.html index c02be385e..413ea19c0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Roles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Roles.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.html index 9aaf56224..1627f0948 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DistributionManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DistributionManagement.html index 9c63a0839..7491651f0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DistributionManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DistributionManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagemen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Exclusion.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Exclusion.html index 6d398170d..fe4094334 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Exclusion.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Exclusion.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Extension.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Extension.html index f50741133..b1cfb693f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Extension.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Extension.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/IssueManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/IssueManagement.html index 8cc99689f..80a6a41fb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/IssueManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/IssueManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/License.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/License.html index fb67d7462..6176bc711 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/License.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/License.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.OtherArchives.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.OtherArchives.html index 2c87df59f..9bec8c7b6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.OtherArchives.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.OtherArchives.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.html index 291423927..7c18b16f4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Contributors.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Contributors.html index 432e5aaa0..01948bbff 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Contributors.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Contributors.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Dependencies.html index c6f9cf5d5..3c720e5a0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Dependencies.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Developers.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Developers.html index d120bc7d2..84cebf93d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Developers.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Developers.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Licenses.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Licenses.html index 17e189bd8..716f121c4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Licenses.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Licenses.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Depen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.MailingLists.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.MailingLists.html index 4fa206eb7..6012c5737 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.MailingLists.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.MailingLists.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Modules.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Modules.html index 99735f5ee..f38ed5acf 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Modules.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Modules.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.PluginRepositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.PluginRepositories.html index 4c4c60972..6521f686e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.PluginRepositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.PluginRepositories.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositor function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Profiles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Profiles.html index 040926809..340e36e3c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Profiles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Profiles.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Depen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Properties.html index 4b5188215..75d2f0d0f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Properties.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Reports.html index 969f274d5..1fed1c753 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Reports.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Repositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Repositories.html index b2bc36f2a..0f8055dff 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Repositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Repositories.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.html index 5f52191ec..7e7cdd696 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.Configuration.html index 9eb807066..44b4b84cc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuratio function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.html index 15e268eb4..6832bb29f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ObjectFactory.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ObjectFactory.html index 81fd642d9..b2574d0c3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ObjectFactory.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ObjectFactory.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Organization.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Organization.html index d2734c410..935229b03 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Organization.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Organization.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Parent.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Parent.html index 905bbdf22..2eaa6a9d9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Parent.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Parent.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Configuration.html index 5d0ef4b18..48b6ef407 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Dependencies.html index f68e918fb..8c7a00443 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Dependencies.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies ( function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Executions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Executions.html index b663aa436..09a1b0b1d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Executions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Executions.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Goals.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Goals.html index 8d4229058..b8136c916 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Goals.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Goals.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.html index 509b5160f..5b3cecb5c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Configuration.html index d0959b94d..da20e224b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Confi function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Goals.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Goals.html index d540ca1a4..de25e0e9e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Goals.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Goals.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.html index e9636bcf5..d0467c4fe 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.Plugins.html index 7252692a7..6b677b8a7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.Plugins.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plug function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.html index ae819abad..cc4855222 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Prerequisites.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Prerequisites.html index 10b5344a8..e1a830528 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Prerequisites.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Prerequisites.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Dependencies.html index 9bc027372..0bae5c1d4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Dependencies.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Modules.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Modules.html index af162c28b..69d8f36e5 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Modules.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Modules.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.PluginRepositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.PluginRepositories.html index 51ef4d4a1..c6d809c60 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.PluginRepositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.PluginRepositories.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginReposit function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Properties.html index 3f4dfd4a4..206c0bb41 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Properties.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Reports.html index 8d72d7f08..11e0493c4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Reports.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Repositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Repositories.html index 7c85f6619..c70b4b642 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Repositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Repositories.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.html index aaa2acc00..ae1a2f8c7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Relocation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Relocation.html index 769cfa559..27937d7a6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Relocation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Relocation.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.Configuration.html index 37f0331e0..a75397cb8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configur function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.ReportSets.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.ReportSets.html index 38efb906f..16dd7d999 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.ReportSets.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.ReportSets.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.html index b3859f144..50ce479c9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Configuration.html index b33607431..0db49c02d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configurati function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Reports.html index 21d00097d..d62ec1809 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Reports.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.html index b17497916..2f50018b8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.Plugins.html index a43487c7e..fb7de28b6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.Plugins.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.html index f61b3b942..ef8254ddc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Repository.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Repository.html index 1771ec265..ffb257e29 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Repository.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Repository.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/RepositoryPolicy.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/RepositoryPolicy.html index d05db4629..829cd7a38 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/RepositoryPolicy.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/RepositoryPolicy.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Excludes.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Excludes.html index 189a760e1..41a07d669 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Excludes.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Excludes.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Includes.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Includes.html index 5a29eb625..c7e6b5275 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Includes.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Includes.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.html index 0be2d680b..c9d0227ce 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Scm.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Scm.html index 8ffe40286..177b58e62 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Scm.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Scm.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Site.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Site.html index dcfef253d..684562af1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Site.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Site.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Chec function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html index 9b8b07769..271995b5d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html index 84f4261f8..a5bfb4a8b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-tree.html index 0e989318e..cca06159b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-use.html index fd1ab0a91..caf54f70f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-frame.html index f3e9cb0e8..13d4132d7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-summary.html index 087087d94..3cb308bff 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-tree.html index df85537ce..2f169d701 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-use.html index f16ce1180..7f02e3bfb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-frame.html index d9a8cf1fb..880042968 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html index a34c69a10..afc9497e8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-tree.html index f8b714cfd..7e8e5871d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-use.html index c24f243e5..49084f2be 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.Format.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.Format.html index e5d3b2a35..4c9a4a54c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.Format.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.Format.html @@ -2,13 +2,13 @@ - + -ReportGenerator.Format (Dependency-Check Core 1.0.2 API) +ReportGenerator.Format (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ReportGenerator.Format (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportGenerator.Format (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ReportGenerator.Format (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.html index 31dafccdc..b78b558fb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.html @@ -2,13 +2,13 @@ - + -ReportGenerator (Dependency-Check Core 1.0.2 API) +ReportGenerator (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ReportGenerator (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportGenerator (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ReportGenerator (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/VelocityLoggerRedirect.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/VelocityLoggerRedirect.html index c85926361..09aa3c12d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/VelocityLoggerRedirect.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/VelocityLoggerRedirect.html @@ -2,13 +2,13 @@ - + -VelocityLoggerRedirect (Dependency-Check Core 1.0.2 API) +VelocityLoggerRedirect (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ VelocityLoggerRedirect (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="VelocityLoggerRedirect (Dependency-Check Core 1.0.2 API)"; + parent.document.title="VelocityLoggerRedirect (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.Format.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.Format.html index 1ca3c1f21..d09aa2758 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.Format.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.Format.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.html index f2ed95ad5..c1bd6c099 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/VelocityLoggerRedirect.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/VelocityLoggerRedirect.html index 8032e4bcf..8901b3bbe 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/VelocityLoggerRedirect.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/VelocityLoggerRedirect.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-frame.html index fbf1e2a3b..4899041ae 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html index 71c8eaf3a..08c83f78e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-tree.html index 5604c057f..38d356450 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.reporting Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.reporting Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.reporting Class Hierarchy (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.reporting Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.reporting Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-use.html index 81038034a..97f42fe26 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.2 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Checksum.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Checksum.html index bc3005ba9..7f8049fe9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Checksum.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Checksum.html @@ -2,13 +2,13 @@ - + -Checksum (Dependency-Check Core 1.0.2 API) +Checksum (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Checksum (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Checksum (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Checksum (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DependencyVersion.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DependencyVersion.html index a5738e438..20f023574 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DependencyVersion.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DependencyVersion.html @@ -2,13 +2,13 @@ - + -DependencyVersion (Dependency-Check Core 1.0.2 API) +DependencyVersion (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DependencyVersion (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyVersion (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DependencyVersion (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DependencyVersionUtil.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DependencyVersionUtil.html index 504c5b4bf..f9c68ac21 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DependencyVersionUtil.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DependencyVersionUtil.html @@ -2,13 +2,13 @@ - + -DependencyVersionUtil (Dependency-Check Core 1.0.2 API) +DependencyVersionUtil (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DependencyVersionUtil (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyVersionUtil (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DependencyVersionUtil (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DownloadFailedException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DownloadFailedException.html index a9a85c99e..ac2713eb3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DownloadFailedException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/DownloadFailedException.html @@ -2,13 +2,13 @@ - + -DownloadFailedException (Dependency-Check Core 1.0.2 API) +DownloadFailedException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ DownloadFailedException (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DownloadFailedException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="DownloadFailedException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Downloader.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Downloader.html index 4c9fac918..70982bbea 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Downloader.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Downloader.html @@ -2,13 +2,13 @@ - + -Downloader (Dependency-Check Core 1.0.2 API) +Downloader (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Downloader (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Downloader (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Downloader (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/ExtractionException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/ExtractionException.html index 2bc502d40..263dfc4d0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/ExtractionException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/ExtractionException.html @@ -2,13 +2,13 @@ - + -ExtractionException (Dependency-Check Core 1.0.2 API) +ExtractionException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ ExtractionException (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ExtractionException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="ExtractionException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/FileUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/FileUtils.html index cf7a97838..434843ad0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/FileUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/FileUtils.html @@ -2,13 +2,13 @@ - + -FileUtils (Dependency-Check Core 1.0.2 API) +FileUtils (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ FileUtils (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="FileUtils (Dependency-Check Core 1.0.2 API)"; + parent.document.title="FileUtils (Dependency-Check Core 1.0.3 API)"; } } @@ -127,15 +127,6 @@ A collection of utilities for processing information about files. static void
    delete(File file) -
    -          Deletes a file. - - - -static void -delete(File file, - boolean deleteOnExit) -
              Deletes a file. @@ -239,26 +230,6 @@ public static void delete(

    -delete

    -
    -public static void delete(File file,
    -                          boolean deleteOnExit)
    -                   throws IOException
    -
    -
    Deletes a file. If the File is a directory it will recursively delete the - contents. -

    -

    -
    Parameters:
    file - the File to delete
    deleteOnExit - setting this to true will cause errors to be ignored - and if there is an error deleting the file it will be setup to be deleted - when the JVM exits. -
    Throws: -
    IOException - is thrown if the file could not be deleted
    -
    -
    -
    -

    getDataDirectory

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Filter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Filter.html
    index 81f03de60..f3abee26d 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Filter.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Filter.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Filter (Dependency-Check Core 1.0.2 API)
    +Filter (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Filter (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Filter (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Filter (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/InvalidSettingException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/InvalidSettingException.html
    index 4aa6edf02..b0912210c 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/InvalidSettingException.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/InvalidSettingException.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -InvalidSettingException (Dependency-Check Core 1.0.2 API)
    +InvalidSettingException (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ InvalidSettingException (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="InvalidSettingException (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="InvalidSettingException (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/NonClosingStream.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/NonClosingStream.html
    index db06ffc85..4685c2722 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/NonClosingStream.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/NonClosingStream.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -NonClosingStream (Dependency-Check Core 1.0.2 API)
    +NonClosingStream (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ NonClosingStream (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="NonClosingStream (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="NonClosingStream (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.KEYS.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.KEYS.html
    index 234e6ce5a..6ee3a8d3e 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.KEYS.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.KEYS.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Settings.KEYS (Dependency-Check Core 1.0.2 API)
    +Settings.KEYS (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Settings.KEYS (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Settings.KEYS (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Settings.KEYS (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.html
    index da3902232..93e18fb52 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Settings (Dependency-Check Core 1.0.2 API)
    +Settings (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Settings (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Settings (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Settings (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/UrlStringUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/UrlStringUtils.html
    index 25cb31200..9e89b4608 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/UrlStringUtils.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/UrlStringUtils.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -UrlStringUtils (Dependency-Check Core 1.0.2 API)
    +UrlStringUtils (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ UrlStringUtils (Dependency-Check Core 1.0.2 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="UrlStringUtils (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="UrlStringUtils (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Checksum.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Checksum.html
    index edbfbe403..83681568d 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Checksum.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Checksum.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersion.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersion.html
    index aa5434c32..b113a5644 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersion.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersion.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Chec
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersionUtil.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersionUtil.html
    index 8e62568fc..a5e848ff8 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersionUtil.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersionUtil.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DownloadFailedException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DownloadFailedException.html
    index 3e2a3395d..8bd7752ca 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DownloadFailedException.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DownloadFailedException.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependency-Check Core 1.0.2 API)
    +Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependency-Check Core 1.0.3 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependenc
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependency-Check Core 1.0.2 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependency-Check Core 1.0.3 API)";
         }
     }
     
    @@ -91,6 +91,14 @@ function windowTitle()
     Packages that use DownloadFailedException
     
     
    +org.owasp.dependencycheck.data.update
    +
    + 
    + org.owasp.dependencycheck.data.nvdcve.xml
    + 
    +  
    +
    +
     org.owasp.dependencycheck.utils
     
      
    @@ -102,6 +110,102 @@ Packages that use 
    +
    +
    +
    +
    +
    +Uses of DownloadFailedException in org.owasp.dependencycheck.data.update
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data.update that throw DownloadFailedException
    + voidUpdateable.add(String id, + String url, + String oldUrl) + +
    +          Adds a new entry of updateable information to the contained collection.
    + voidUpdateable.add(String id, + String url, + String oldUrl, + boolean needsUpdate) + +
    +          Adds a new entry of updateable information to the contained collection.
    +static UpdateTaskUpdateTaskFactory.getUpdateTask() + +
    +          Constructs the appropriate update task based on configuration.
    +protected  UpdateableStandardUpdateTask.updatesNeeded() + +
    +          Determines if the index needs to be updated.
    + UpdateableBatchUpdateTask.updatesNeeded() + +
    +          Determines if the index needs to be updated.
    +protected abstract  UpdateableAbstractUpdateTask.updatesNeeded() + +
    +          Determines if the index needs to be updated.
    +  +

    + + + + + + + + + + + + + + +
    Constructors in org.owasp.dependencycheck.data.update that throw DownloadFailedException
    AbstractUpdateTask(DataStoreMetaInfo properties) + +
    +          Initializes the AbstractUpdateTask.
    BatchUpdateTask(DataStoreMetaInfo properties) + +
    +          Constructs a new BatchUpdateTask.
    StandardUpdateTask(DataStoreMetaInfo properties) + +
    +          Constructs a new Standard Update Task.
    +  +

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Downloader.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Downloader.html index 482fe7811..6108e8126 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Downloader.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Downloader.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/ExtractionException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/ExtractionException.html index bd38b0a6e..2079642e1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/ExtractionException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/ExtractionException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/FileUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/FileUtils.html index db68ab416..6b7308683 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/FileUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/FileUtils.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Filter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Filter.html index e84c3648e..f5ac96427 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Filter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Filter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/InvalidSettingException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/InvalidSettingException.html index 8e51d14ed..6be939dff 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/InvalidSettingException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/InvalidSettingException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/NonClosingStream.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/NonClosingStream.html index 59af61fef..9977b634b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/NonClosingStream.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/NonClosingStream.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.KEYS.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.KEYS.html index f62835d5f..03b274053 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.KEYS.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.KEYS.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Co function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.html index d0d038a10..4242fae63 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/UrlStringUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/UrlStringUtils.html index e110ef6a9..4fc014354 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/UrlStringUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/UrlStringUtils.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check Core 1.0.2 API) +Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-frame.html index fc65681e1..dba727ebd 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html index e1a2e97cd..707b2995c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-tree.html index 7bd135f57..a6fc6e2ed 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.utils Class Hierarchy (Dependency-Check Core 1.0.2 API) +org.owasp.dependencycheck.utils Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.utils Class Hierarchy (Dependency-Check Core 1.0.2 API function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.utils Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.utils Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-use.html index b0b0bbafe..a5e8ed597 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.2 API) +Uses of Package org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.2 API function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.3 API)"; } } @@ -91,6 +91,14 @@ function windowTitle() Packages that use org.owasp.dependencycheck.utils + + + +
    org.owasp.dependencycheck.data.update + + org.owasp.dependencycheck.data.nvdcve.xml + +  
    org.owasp.dependencycheck.dependency @@ -111,6 +119,21 @@ Packages that use + + + + + + + +
    +Classes in org.owasp.dependencycheck.utils used by org.owasp.dependencycheck.data.update
    DownloadFailedException + +
    +          An exception used when a download fails.
    +  +

    diff --git a/dependency-check-core/apidocs/overview-frame.html b/dependency-check-core/apidocs/overview-frame.html index b0ef9953a..42f9d9ff4 100644 --- a/dependency-check-core/apidocs/overview-frame.html +++ b/dependency-check-core/apidocs/overview-frame.html @@ -2,13 +2,13 @@ - + -Overview List (Dependency-Check Core 1.0.2 API) +Overview List (Dependency-Check Core 1.0.3 API) - + diff --git a/dependency-check-core/apidocs/overview-summary.html b/dependency-check-core/apidocs/overview-summary.html index 930efb0c8..fc0b0a945 100644 --- a/dependency-check-core/apidocs/overview-summary.html +++ b/dependency-check-core/apidocs/overview-summary.html @@ -2,13 +2,13 @@ - + -Overview (Dependency-Check Core 1.0.2 API) +Overview (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Overview (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Overview (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Overview (Dependency-Check Core 1.0.3 API)"; } } @@ -82,7 +82,7 @@ function windowTitle()

    -Dependency-Check Core 1.0.2 API +Dependency-Check Core 1.0.3 API

    diff --git a/dependency-check-core/apidocs/overview-tree.html b/dependency-check-core/apidocs/overview-tree.html index b76a7f3b4..824e2936e 100644 --- a/dependency-check-core/apidocs/overview-tree.html +++ b/dependency-check-core/apidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (Dependency-Check Core 1.0.2 API) +Class Hierarchy (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Class Hierarchy (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Class Hierarchy (Dependency-Check Core 1.0.3 API)"; } } @@ -101,6 +101,9 @@ Class Hierarchy
  • org.owasp.dependencycheck.analyzer.JarAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer)
  • org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer) +
  • org.owasp.dependencycheck.data.update.AbstractUpdateTask (implements org.owasp.dependencycheck.data.update.UpdateTask) +
  • org.owasp.dependencycheck.jaxb.pom.generated.Activation
  • org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile
  • org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS
  • org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty
  • org.apache.lucene.analysis.Analyzer (implements java.io.Closeable) @@ -154,7 +157,8 @@ Class Hierarchy
  • org.owasp.dependencycheck.utils.DownloadFailedException
  • org.owasp.dependencycheck.utils.ExtractionException
  • org.owasp.dependencycheck.utils.InvalidSettingException
  • org.owasp.dependencycheck.data.UpdateException -
  • org.owasp.dependencycheck.data.UpdateService
  • org.owasp.dependencycheck.utils.UrlStringUtils
  • org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (implements org.apache.velocity.runtime.log.LogChute) +
  • org.owasp.dependencycheck.data.update.Updateable (implements java.lang.Iterable<T>, java.util.Iterator<E>) +
  • org.owasp.dependencycheck.data.UpdateService
  • org.owasp.dependencycheck.data.update.UpdateTaskFactory
  • org.owasp.dependencycheck.utils.UrlStringUtils
  • org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (implements org.apache.velocity.runtime.log.LogChute)
  • org.owasp.dependencycheck.dependency.Vulnerability (implements java.lang.Comparable<T>, java.io.Serializable)
  • org.owasp.dependencycheck.dependency.VulnerabilityComparator (implements java.util.Comparator<T>, java.io.Serializable)
  • org.xml.sax.helpers.XMLFilterImpl (implements org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, org.xml.sax.XMLFilter) @@ -166,7 +170,7 @@ Class Hierarchy Interface Hierarchy +
  • org.owasp.dependencycheck.analyzer.Analyzer
  • org.owasp.dependencycheck.data.CachedWebDataSource
  • org.owasp.dependencycheck.data.update.UpdateTask

    Enum Hierarchy

    diff --git a/dependency-check-core/apidocs/serialized-form.html b/dependency-check-core/apidocs/serialized-form.html index 21ec5150c..f0dab97ca 100644 --- a/dependency-check-core/apidocs/serialized-form.html +++ b/dependency-check-core/apidocs/serialized-form.html @@ -2,13 +2,13 @@ - + -Serialized Form (Dependency-Check Core 1.0.2 API) +Serialized Form (Dependency-Check Core 1.0.3 API) - + @@ -16,7 +16,7 @@ Serialized Form (Dependency-Check Core 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Serialized Form (Dependency-Check Core 1.0.2 API)"; + parent.document.title="Serialized Form (Dependency-Check Core 1.0.3 API)"; } } diff --git a/dependency-check-core/checkstyle.html b/dependency-check-core/checkstyle.html index 25b2cc8f3..250e02ae9 100644 --- a/dependency-check-core/checkstyle.html +++ b/dependency-check-core/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check-core - Checkstyle Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -227,10 +227,10 @@ - + -
    Warnings Warnings Errors Errors
    140147 0 04
    +

    1

    Files

    @@ -240,71 +240,23 @@ - - - - - - - - - - - - - - -
    Warnings Errors
    org/owasp/dependencycheck/analyzer/CPEAnalyzer.java001
    org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java001
    org/owasp/dependencycheck/dependency/VulnerableSoftware.java 0 01
    org/owasp/dependencycheck/utils/UrlStringUtils.java00 1

    Details

    -

    org/owasp/dependencycheck/analyzer/CPEAnalyzer.java

    - - - - - - - - -
    ViolationMessageLine
    ErrorsVariable 'tmp' should be declared final.463
    -
    -

    org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java

    - - - - - - - - -
    ViolationMessageLine
    ErrorsMust have at least one statement.156
    -

    org/owasp/dependencycheck/dependency/VulnerableSoftware.java

    - + - + -
    Violation Message Line
    Errors Nested if-else depth is 5 (max allowed is 4).82
    -
    -

    org/owasp/dependencycheck/utils/UrlStringUtils.java

    - - - - - - - - -
    ViolationMessageLine
    ErrorsLine is longer than 150 characters (found 170).73
    +82 diff --git a/dependency-check-core/checkstyle.rss b/dependency-check-core/checkstyle.rss index 969139785..6b38e2a9f 100644 --- a/dependency-check-core/checkstyle.rss +++ b/dependency-check-core/checkstyle.rss @@ -8,8 +8,8 @@ en-us ©2012 - 2013 OWASP - File: 140, - Errors: 4, + <title>File: 147, + Errors: 1, Warnings: 0, Infos: 0 @@ -248,7 +248,21 @@ 0 - 1 + 0 + + + + + org/owasp/dependencycheck/data/update/AbstractUpdateTask.java + + + 0 + + + 0 + + + 0 @@ -502,6 +516,20 @@ 0 + + + + dependency-check-core/target/data/data.properties + + + 0 + + + 0 + + + 0 + @@ -794,7 +822,7 @@ 0 - 1 + 0 @@ -822,7 +850,7 @@ 0 - 1 + 0 @@ -1048,6 +1076,20 @@ 0 + + + + org/owasp/dependencycheck/data/update/UpdateTask.java + + + 0 + + + 0 + + + 0 + @@ -1121,7 +1163,7 @@ - org/owasp/dependencycheck/data/package-info.java + org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.java 0 @@ -1135,7 +1177,7 @@ - org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.java + org/owasp/dependencycheck/data/package-info.java 0 @@ -1205,7 +1247,7 @@ - org/owasp/dependencycheck/data/nvdcve/package-info.java + org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.java 0 @@ -1219,7 +1261,7 @@ - org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.java + org/owasp/dependencycheck/data/nvdcve/package-info.java 0 @@ -1384,6 +1426,20 @@ 0 + + + + org/owasp/dependencycheck/data/update/UpdateTaskFactory.java + + + 0 + + + 0 + + + 0 + @@ -1496,6 +1552,20 @@ 0 + + + + org/owasp/dependencycheck/data/update/StandardUpdateTask.java + + + 0 + + + 0 + + + 0 + @@ -1594,6 +1664,20 @@ 0 + + + + org/owasp/dependencycheck/data/update/BatchUpdateTask.java + + + 0 + + + 0 + + + 0 + @@ -1818,6 +1902,20 @@ 0 + + + + org/owasp/dependencycheck/data/update/Updateable.java + + + 0 + + + 0 + + + 0 + diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.analyzer.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.analyzer.html index aa0fb73bf..b4dbf50af 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.analyzer.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.analyzer.html @@ -33,19 +33,19 @@ org.owasp.dependencycheck.analyzer ArchiveAnalyzer (70%) -CPEAnalyzer (79%) +CPEAnalyzer (80%) -DependencyBundlingAnalyzer (6%) +DependencyBundlingAnalyzer (23%) -FalsePositiveAnalyzer (62%) +FalsePositiveAnalyzer (69%) FileNameAnalyzer (100%) -HintAnalyzer (87%) +HintAnalyzer (90%) JarAnalyzer (80%) @@ -54,7 +54,7 @@ org.owasp.dependencycheck.analyzer JavaScriptAnalyzer (0%) -NvdCveAnalyzer (11%) +NvdCveAnalyzer (70%) diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html index 70f97f9f9..d0644e08c 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html @@ -18,7 +18,7 @@ org.owasp.dependencycheck.data.cpe BaseIndex (73%) -CpeIndexReader (75%) +CpeIndexReader (60%) CpeIndexWriter (48%) diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html index 481b6750c..4eef4c009 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html @@ -18,7 +18,7 @@ org.owasp.dependencycheck.data.nvdcve CorruptDatabaseException (0%) -CveDB (46%) +CveDB (47%) DatabaseException (0%) diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.xml.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.xml.html deleted file mode 100644 index 6496513f5..000000000 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.xml.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - -Coverage Report Classes - - - -
    -org.owasp.dependencycheck.data.nvdcve.xml -
    -
     
    -
    Classes
    - - - - - - - - - - - - - - - -
    DatabaseUpdater (0%)
    InvalidDataException (0%)
    NvdCve12Handler (93%)
    NvdCve20Handler (79%)
    - - diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.update.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.update.html index 14b673feb..05750ef1e 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.update.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.update.html @@ -15,13 +15,31 @@ org.owasp.dependencycheck.data.update - + - + - + + + + + + + + + + + + + + + + + + +
    DataStoreMetaInfo (50%)AbstractUpdateTask (51%)
    DatabaseUpdater (33%)BatchUpdateTask (28%)
    NvdCveInfo (88%)DataStoreMetaInfo (65%)
    DatabaseUpdater (0%)
    NvdCveInfo (100%)
    StandardUpdateTask (0%)
    UpdateTask (N/A)
    UpdateTaskFactory (0%)
    Updateable (93%)
    diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.dependency.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.dependency.html index 200a75436..3b6208cd5 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.dependency.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.dependency.html @@ -15,28 +15,28 @@ org.owasp.dependencycheck.dependency - + - + - + - + - + - + - +
    Dependency (57%)Dependency (59%)
    Evidence (51%)Evidence (53%)
    EvidenceCollection (73%)
    Identifier (25%)Identifier (41%)
    Reference (32%)Reference (41%)
    Vulnerability (57%)Vulnerability (66%)
    VulnerabilityComparator (50%)VulnerabilityComparator (100%)
    VulnerableSoftware (74%)VulnerableSoftware (76%)
    diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.html index 7ba3f654d..3d8a50aad 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.html @@ -15,7 +15,7 @@ org.owasp.dependencycheck - +
    Engine (38%)Engine (59%)
    diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.jaxb.pom.generated.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.jaxb.pom.generated.html index 5a0facaef..24075ef11 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.jaxb.pom.generated.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.jaxb.pom.generated.html @@ -117,7 +117,7 @@ org.owasp.dependencycheck.jaxb.pom.generated RepositoryPolicy (10%) -Resource (12%) +Resource (16%) Scm (7%) diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.reporting.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.reporting.html index 142dc00ac..eb6100d99 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.reporting.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.reporting.html @@ -15,10 +15,10 @@ org.owasp.dependencycheck.reporting - + - +
    ReportGenerator (0%)ReportGenerator (51%)
    VelocityLoggerRedirect (0%)VelocityLoggerRedirect (57%)
    diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.utils.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.utils.html index 6cbc1c733..4c55ccc64 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.utils.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.utils.html @@ -33,7 +33,7 @@ org.owasp.dependencycheck.utils ExtractionException (0%) -FileUtils (48%) +FileUtils (52%) Filter (92%) diff --git a/dependency-check-core/cobertura/frame-sourcefiles.html b/dependency-check-core/cobertura/frame-sourcefiles.html index 3a64a294d..b1c6b5de4 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles.html +++ b/dependency-check-core/cobertura/frame-sourcefiles.html @@ -21,6 +21,9 @@ All Packages AbstractTokenizingFilter (100%) +AbstractUpdateTask (51%) + + Activation (6%) @@ -54,13 +57,16 @@ All Packages BaseIndex (73%) +BatchUpdateTask (28%) + + Build (9%) BuildBase (7%) -CPEAnalyzer (79%) +CPEAnalyzer (80%) CachedWebDataSource (N/A) @@ -78,13 +84,13 @@ All Packages CorruptDatabaseException (0%) -CpeIndexReader (75%) +CpeIndexReader (60%) CpeIndexWriter (48%) -CveDB (46%) +CveDB (47%) CweDB (47%) @@ -93,22 +99,22 @@ All Packages CweHandler (0%) -DataStoreMetaInfo (50%) +DataStoreMetaInfo (65%) DatabaseException (0%) -DatabaseUpdater (33%) +DatabaseUpdater (0%) -Dependency (57%) +Dependency (59%) Dependency (9%) -DependencyBundlingAnalyzer (6%) +DependencyBundlingAnalyzer (23%) DependencyManagement (0%) @@ -144,10 +150,10 @@ All Packages Downloader (8%) -Engine (38%) +Engine (59%) -Evidence (51%) +Evidence (53%) EvidenceCollection (73%) @@ -162,7 +168,7 @@ All Packages ExtractionException (0%) -FalsePositiveAnalyzer (62%) +FalsePositiveAnalyzer (69%) FieldAnalyzer (100%) @@ -174,16 +180,16 @@ All Packages FileNameAnalyzer (100%) -FileUtils (48%) +FileUtils (52%) Filter (92%) -HintAnalyzer (87%) +HintAnalyzer (90%) -Identifier (25%) +Identifier (41%) IndexEntry (63%) @@ -234,10 +240,10 @@ All Packages NvdCve20Handler (79%) -NvdCveAnalyzer (11%) +NvdCveAnalyzer (70%) -NvdCveInfo (88%) +NvdCveInfo (100%) ObjectFactory (0%) @@ -264,13 +270,13 @@ All Packages Profile (4%) -Reference (32%) +Reference (41%) Relocation (0%) -ReportGenerator (0%) +ReportGenerator (51%) ReportPlugin (14%) @@ -288,7 +294,7 @@ All Packages RepositoryPolicy (10%) -Resource (12%) +Resource (16%) Scm (7%) @@ -306,6 +312,9 @@ All Packages Site (10%) +StandardUpdateTask (0%) + + TokenPairConcatenatingFilter (100%) @@ -315,13 +324,22 @@ All Packages UpdateService (0%) +UpdateTask (N/A) + + +UpdateTaskFactory (0%) + + +Updateable (93%) + + UrlStringUtils (82%) UrlTokenizingFilter (80%) -VelocityLoggerRedirect (0%) +VelocityLoggerRedirect (57%) VersionAnalyzer (0%) @@ -330,13 +348,13 @@ All Packages VersionTokenizingFilter (0%) -Vulnerability (57%) +Vulnerability (66%) -VulnerabilityComparator (50%) +VulnerabilityComparator (100%) -VulnerableSoftware (74%) +VulnerableSoftware (76%) package-info (N/A) diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.analyzer.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.analyzer.html index 97dfb9b1d..56f7c3008 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.analyzer.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.analyzer.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.analyzer17
    68%
    740/1083
    55%
    355/644
    3.97
    org.owasp.dependencycheck.analyzer17
    72%
    789/1088
    58%
    389/660
    4.03
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.concurrency.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.concurrency.html index a82e46bf3..10765adab 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.concurrency.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.concurrency.html @@ -41,6 +41,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cpe.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cpe.html index 8c11aeca4..1d02a0f4b 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cpe.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cpe.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.data.cpe5
    62%
    92/147
    34%
    17/50
    2.133
    org.owasp.dependencycheck.data.cpe5
    58%
    94/160
    34%
    20/58
    2.3
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cwe.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cwe.html index 4aa5dd1b5..fdc8a533f 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cwe.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cwe.html @@ -39,6 +39,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.html index a6de81c74..247408c32 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.html @@ -17,11 +17,11 @@ Package # Classes Line Coverage Branch Coverage Complexity org.owasp.dependencycheck.data3
    0%
    0/15
    0%
    0/2
    1.125 - org.owasp.dependencycheck.data.cpe5
    62%
    92/147
    34%
    17/50
    2.133 + org.owasp.dependencycheck.data.cpe5
    58%
    94/160
    34%
    20/58
    2.3 org.owasp.dependencycheck.data.cwe2
    35%
    11/31
    25%
    2/8
    2.8 - org.owasp.dependencycheck.data.lucene11
    66%
    94/141
    52%
    35/67
    2.607 - org.owasp.dependencycheck.data.nvdcve8
    59%
    317/534
    70%
    149/210
    3.305 - org.owasp.dependencycheck.data.update3
    39%
    142/357
    31%
    40/126
    4.933 + org.owasp.dependencycheck.data.lucene11
    67%
    96/143
    52%
    35/67
    2.5 + org.owasp.dependencycheck.data.nvdcve8
    59%
    319/534
    73%
    154/210
    3.305 + org.owasp.dependencycheck.data.update9
    33%
    159/473
    21%
    32/152
    3.286 - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.lucene.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.lucene.html index 02f78a500..87c650dc8 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.lucene.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.lucene.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.data.lucene11
    66%
    94/141
    52%
    35/67
    2.607
    org.owasp.dependencycheck.data.lucene11
    67%
    96/143
    52%
    35/67
    2.5
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.html index 9c9dce79b..d53736a56 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.data.nvdcve8
    59%
    317/534
    70%
    149/210
    3.305
    org.owasp.dependencycheck.data.nvdcve8
    59%
    319/534
    73%
    154/210
    3.305
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.xml.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.xml.html deleted file mode 100644 index 303810d2d..000000000 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.xml.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - -Coverage Report - - - - - - - -
    Coverage Report - org.owasp.dependencycheck.data.nvdcve.xml
    -
     
    - - - - - -
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.data.nvdcve.xml7
    34%
    169/486
    51%
    99/192
    3.789
    - -
     
    - - - - - - - - - - - - - - - -
    Classes in this Package Line Coverage Branch Coverage Complexity
    DatabaseUpdater
    0%
    0/262
    0%
    0/76
    5.789
    DatabaseUpdater$NvdCveUrl
    0%
    0/17
    N/A
    5.789
    InvalidDataException
    0%
    0/4
    N/A
    1
    NvdCve12Handler
    95%
    47/49
    86%
    26/30
    2.6
    NvdCve12Handler$Element
    77%
    7/9
    N/A
    2.6
    NvdCve20Handler
    76%
    97/126
    84%
    73/86
    3
    NvdCve20Handler$Element
    94%
    18/19
    N/A
    3
    - - - - diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.update.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.update.html index 5c0683c0c..4a8b32c1c 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.update.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.update.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.data.update3
    39%
    142/357
    31%
    40/126
    4.933
    org.owasp.dependencycheck.data.update9
    33%
    159/473
    21%
    32/152
    3.286
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.dependency.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.dependency.html index 8218ed133..1172a40f8 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.dependency.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.dependency.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.dependency14
    58%
    311/529
    33%
    127/376
    2.439
    org.owasp.dependencycheck.dependency14
    62%
    333/529
    35%
    135/376
    2.439
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.html index 5396419b0..366c20ec1 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.html @@ -16,20 +16,20 @@ - - + + - + - - - - + + + + - - - + + +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck1
    38%
    50/130
    42%
    27/64
    3.412
    org.owasp.dependencycheck.analyzer17
    68%
    740/1083
    55%
    355/644
    3.97
    org.owasp.dependencycheck1
    59%
    77/130
    71%
    46/64
    3.412
    org.owasp.dependencycheck.analyzer17
    72%
    789/1088
    58%
    389/660
    4.03
    org.owasp.dependencycheck.concurrency3
    56%
    53/94
    66%
    16/24
    2.611
    org.owasp.dependencycheck.data3
    0%
    0/15
    0%
    0/2
    1.125
    org.owasp.dependencycheck.data.cpe5
    62%
    92/147
    34%
    17/50
    2.133
    org.owasp.dependencycheck.data.cpe5
    58%
    94/160
    34%
    20/58
    2.3
    org.owasp.dependencycheck.data.cwe2
    35%
    11/31
    25%
    2/8
    2.8
    org.owasp.dependencycheck.data.lucene11
    66%
    94/141
    52%
    35/67
    2.607
    org.owasp.dependencycheck.data.nvdcve8
    59%
    317/534
    70%
    149/210
    3.305
    org.owasp.dependencycheck.data.update3
    39%
    142/357
    31%
    40/126
    4.933
    org.owasp.dependencycheck.dependency14
    58%
    311/529
    33%
    127/376
    2.439
    org.owasp.dependencycheck.data.lucene11
    67%
    96/143
    52%
    35/67
    2.5
    org.owasp.dependencycheck.data.nvdcve8
    59%
    319/534
    73%
    154/210
    3.305
    org.owasp.dependencycheck.data.update9
    33%
    159/473
    21%
    32/152
    3.286
    org.owasp.dependencycheck.dependency14
    62%
    333/529
    35%
    135/376
    2.439
    org.owasp.dependencycheck.jaxb.pom1
    100%
    13/13
    50%
    1/2
    1.25
    org.owasp.dependencycheck.jaxb.pom.generated87
    7%
    73/945
    1%
    1/98
    1.091
    org.owasp.dependencycheck.reporting3
    0%
    0/101
    0%
    0/44
    4.273
    org.owasp.dependencycheck.utils15
    57%
    264/457
    62%
    116/186
    3.181
    org.owasp.dependencycheck.jaxb.pom.generated87
    7%
    74/945
    1%
    1/98
    1.091
    org.owasp.dependencycheck.reporting3
    52%
    53/101
    18%
    8/44
    4.273
    org.owasp.dependencycheck.utils15
    58%
    263/448
    65%
    117/178
    3.141
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html index 6ee4cfdab..da2ad3292 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.jaxb.pom.generated87
    7%
    73/945
    1%
    1/98
    1.091
    org.owasp.dependencycheck.jaxb.pom.generated87
    7%
    74/945
    1%
    1/98
    1.091
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.html index 4cadf0ed3..4c6b6995f 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.html @@ -17,7 +17,7 @@ Package # Classes Line Coverage Branch Coverage Complexity org.owasp.dependencycheck.jaxb.pom1
    100%
    13/13
    50%
    1/2
    1.25 - org.owasp.dependencycheck.jaxb.pom.generated87
    7%
    73/945
    1%
    1/98
    1.091 + org.owasp.dependencycheck.jaxb.pom.generated87
    7%
    74/945
    1%
    1/98
    1.091 - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.reporting.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.reporting.html index e4c560170..c46487860 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.reporting.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.reporting.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.reporting3
    0%
    0/101
    0%
    0/44
    4.273
    org.owasp.dependencycheck.reporting3
    52%
    53/101
    18%
    8/44
    4.273
    - + diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.utils.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.utils.html index 026a18c69..f510a6072 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.utils.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.utils.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.utils15
    57%
    264/457
    62%
    116/186
    3.181
    org.owasp.dependencycheck.utils15
    58%
    263/448
    65%
    117/178
    3.141
    - + diff --git a/dependency-check-core/cobertura/frame-summary.html b/dependency-check-core/cobertura/frame-summary.html index 114a6fe20..02bc4d4b5 100644 --- a/dependency-check-core/cobertura/frame-summary.html +++ b/dependency-check-core/cobertura/frame-summary.html @@ -16,21 +16,21 @@ - - - + + + - + - - - - + + + + - - - + + +
    Package # Classes Line Coverage Branch Coverage Complexity
    All Packages173
    47%
    2160/4577
    46%
    886/1901
    2.149
    org.owasp.dependencycheck1
    38%
    50/130
    42%
    27/64
    3.412
    org.owasp.dependencycheck.analyzer17
    68%
    740/1083
    55%
    355/644
    3.97
    All Packages179
    49%
    2334/4704
    49%
    956/1943
    2.145
    org.owasp.dependencycheck1
    59%
    77/130
    71%
    46/64
    3.412
    org.owasp.dependencycheck.analyzer17
    72%
    789/1088
    58%
    389/660
    4.03
    org.owasp.dependencycheck.concurrency3
    56%
    53/94
    66%
    16/24
    2.611
    org.owasp.dependencycheck.data3
    0%
    0/15
    0%
    0/2
    1.125
    org.owasp.dependencycheck.data.cpe5
    62%
    92/147
    34%
    17/50
    2.133
    org.owasp.dependencycheck.data.cpe5
    58%
    94/160
    34%
    20/58
    2.3
    org.owasp.dependencycheck.data.cwe2
    35%
    11/31
    25%
    2/8
    2.8
    org.owasp.dependencycheck.data.lucene11
    66%
    94/141
    52%
    35/67
    2.607
    org.owasp.dependencycheck.data.nvdcve8
    59%
    317/534
    70%
    149/210
    3.305
    org.owasp.dependencycheck.data.update3
    39%
    142/357
    31%
    40/126
    4.933
    org.owasp.dependencycheck.dependency14
    58%
    311/529
    33%
    127/376
    2.439
    org.owasp.dependencycheck.data.lucene11
    67%
    96/143
    52%
    35/67
    2.5
    org.owasp.dependencycheck.data.nvdcve8
    59%
    319/534
    73%
    154/210
    3.305
    org.owasp.dependencycheck.data.update9
    33%
    159/473
    21%
    32/152
    3.286
    org.owasp.dependencycheck.dependency14
    62%
    333/529
    35%
    135/376
    2.439
    org.owasp.dependencycheck.jaxb.pom1
    100%
    13/13
    50%
    1/2
    1.25
    org.owasp.dependencycheck.jaxb.pom.generated87
    7%
    73/945
    1%
    1/98
    1.091
    org.owasp.dependencycheck.reporting3
    0%
    0/101
    0%
    0/44
    4.273
    org.owasp.dependencycheck.utils15
    57%
    264/457
    62%
    116/186
    3.181
    org.owasp.dependencycheck.jaxb.pom.generated87
    7%
    74/945
    1%
    1/98
    1.091
    org.owasp.dependencycheck.reporting3
    52%
    53/101
    18%
    8/44
    4.273
    org.owasp.dependencycheck.utils15
    58%
    263/448
    65%
    117/178
    3.141
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.Engine.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.Engine.html index 050c7017f..1e8e06623 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.Engine.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.Engine.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    Engine
    38%
    50/130
    42%
    27/64
    3.412
    Engine
    59%
    77/130
    71%
    46/64
    3.412
     
    @@ -125,14 +125,14 @@
          * The list of dependencies.
     54  
          */
    -  55  2
         private final List<Dependency> dependencies = new ArrayList<Dependency>();
    +  55  3
         private final List<Dependency> dependencies = new ArrayList<Dependency>();
     56  
         /**
     57  
          * A Map of analyzers grouped by Analysis phase.
     58  
          */
    -  59  2
         private final EnumMap<AnalysisPhase, List<Analyzer>> analyzers =
    +  59  3
         private final EnumMap<AnalysisPhase, List<Analyzer>> analyzers =
     60  
                 new EnumMap<AnalysisPhase, List<Analyzer>>(AnalysisPhase.class);
     61   @@ -141,7 +141,7 @@
          * A set of extensions supported by the analyzers.
     63  
          */
    -  64  2
         private final Set<String> extensions = new HashSet<String>();
    +  64  3
         private final Set<String> extensions = new HashSet<String>();
     65  
     
     66   @@ -150,20 +150,20 @@
          * Creates a new Engine.
     68  
          */
    -  69  2
         public Engine() {
    -  70  2
             boolean autoUpdate = true;
    +  69  3
         public Engine() {
    +  70  3
             boolean autoUpdate = true;
     71  
             try {
    -  72  2
                 autoUpdate = Settings.getBoolean(Settings.KEYS.AUTO_UPDATE);
    +  72  3
                 autoUpdate = Settings.getBoolean(Settings.KEYS.AUTO_UPDATE);
     73  0
             } catch (InvalidSettingException ex) {
     74  0
                 Logger.getLogger(Engine.class.getName()).log(Level.FINE, "Invalid setting for auto-update; using true.");
    -  75  2
             }
    -  76  2
             if (autoUpdate) {
    +  75  3
             }
    +  76  3
             if (autoUpdate) {
     77  0
                 doUpdates();
     78  
             }
    -  79  2
             loadAnalyzers();
    -  80  2
         }
    +  79  3
             loadAnalyzers();
    +  80  3
         }
     81  
     
     82   @@ -207,23 +207,23 @@
         private void loadAnalyzers() {
     104  
     
    -  105  20
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    -  106  18
                 analyzers.put(phase, new ArrayList<Analyzer>());
    +  105  30
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    +  106  27
                 analyzers.put(phase, new ArrayList<Analyzer>());
     107  
             }
     108  
     
    -  109  2
             final AnalyzerService service = AnalyzerService.getInstance();
    -  110  2
             final Iterator<Analyzer> iterator = service.getAnalyzers();
    -  111  18
             while (iterator.hasNext()) {
    -  112  16
                 final Analyzer a = iterator.next();
    -  113  16
                 analyzers.get(a.getAnalysisPhase()).add(a);
    -  114  16
                 if (a.getSupportedExtensions() != null) {
    -  115  4
                     extensions.addAll(a.getSupportedExtensions());
    +  109  3
             final AnalyzerService service = AnalyzerService.getInstance();
    +  110  3
             final Iterator<Analyzer> iterator = service.getAnalyzers();
    +  111  27
             while (iterator.hasNext()) {
    +  112  24
                 final Analyzer a = iterator.next();
    +  113  24
                 analyzers.get(a.getAnalysisPhase()).add(a);
    +  114  24
                 if (a.getSupportedExtensions() != null) {
    +  115  6
                     extensions.addAll(a.getSupportedExtensions());
     116  
                 }
    -  117  16
             }
    -  118  2
         }
    +  117  24
             }
    +  118  3
         }
     119  
     
     120   @@ -257,7 +257,7 @@
          */
     135  
         public List<Dependency> getDependencies() {
    -  136  13
             return dependencies;
    +  136  17
             return dependencies;
     137  
         }
     138   @@ -412,17 +412,17 @@
          */
     221  
         public void scan(File file) {
    -  222  3
             if (file.exists()) {
    -  223  3
                 if (file.isDirectory()) {
    +  222  6
             if (file.exists()) {
    +  223  6
                 if (file.isDirectory()) {
     224  3
                     scanDirectory(file);
     225  
                 } else {
    -  226  0
                     scanFile(file);
    +  226  3
                     scanFile(file);
     227  
                 }
     228  
             }
    -  229  3
         }
    +  229  6
         }
     230  
     
     231   @@ -470,19 +470,19 @@
          */
     256  
         protected void scanFile(File file) {
    -  257  5
             if (!file.isFile()) {
    +  257  8
             if (!file.isFile()) {
     258  0
                 final String msg = String.format("Path passed to scanFile(File) is not a file: %s. Skipping the file.", file.toString());
     259  0
                 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg);
     260  0
                 return;
     261  
             }
    -  262  5
             final String fileName = file.getName();
    -  263  5
             final String extension = FileUtils.getFileExtension(fileName);
    -  264  5
             if (extension != null) {
    -  265  5
                 if (extensions.contains(extension)) {
    -  266  5
                     final Dependency dependency = new Dependency(file);
    -  267  5
                     dependencies.add(dependency);
    -  268  5
                 }
    +  262  8
             final String fileName = file.getName();
    +  263  8
             final String extension = FileUtils.getFileExtension(fileName);
    +  264  8
             if (extension != null) {
    +  265  8
                 if (extensions.contains(extension)) {
    +  266  8
                     final Dependency dependency = new Dependency(file);
    +  267  8
                     dependencies.add(dependency);
    +  268  8
                 }
     269  
             } else {
     270  0
                 final String msg = String.format("No file extension found on file '%s'. The file was not analyzed.",
    @@ -491,7 +491,7 @@  272  0
                 Logger.getLogger(Engine.class.getName()).log(Level.FINEST, msg);
     273  
             }
    -  274  5
         }
    +  274  8
         }
     275  
     
     276   @@ -504,12 +504,12 @@
         public void analyzeDependencies() {
     280  
             //phase one initialize
    -  281  0
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    -  282  0
                 final List<Analyzer> analyzerList = analyzers.get(phase);
    -  283  0
                 for (Analyzer a : analyzerList) {
    +  281  10
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    +  282  9
                 final List<Analyzer> analyzerList = analyzers.get(phase);
    +  283  9
                 for (Analyzer a : analyzerList) {
     284  
                     try {
    -  285  0
                         a.initialize();
    +  285  8
                         a.initialize();
     286  0
                     } catch (Exception ex) {
     287  0
                         final String msg = String.format("\"Exception occurred initializing \"%s\".\"", a.getName());
     288  0
                         Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, msg);
    @@ -520,7 +520,7 @@  292  0
                         } catch (Exception ex1) {
     293  0
                             Logger.getLogger(Engine.class.getName()).log(Level.FINEST, null, ex1);
     294  0
                         }
    -  295  0
                     }
    +  295  16
                     }
     296  
                 }
     297   @@ -529,11 +529,11 @@
     
     299  
             // analysis phases
    -  300  0
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    -  301  0
                 final List<Analyzer> analyzerList = analyzers.get(phase);
    +  300  10
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    +  301  9
                 final List<Analyzer> analyzerList = analyzers.get(phase);
     302  
     
    -  303  0
                 for (Analyzer a : analyzerList) {
    +  303  9
                 for (Analyzer a : analyzerList) {
     304  
                     /* need to create a copy of the collection because some of the
     305   @@ -542,41 +542,41 @@
                      * This is okay for adds/deletes because it happens per analyzer.
     307  
                      */
    -  308  0
                     final Set<Dependency> dependencySet = new HashSet<Dependency>();
    -  309  0
                     dependencySet.addAll(dependencies);
    -  310  0
                     for (Dependency d : dependencySet) {
    -  311  0
                         if (a.supportsExtension(d.getFileExtension())) {
    +  308  8
                     final Set<Dependency> dependencySet = new HashSet<Dependency>();
    +  309  8
                     dependencySet.addAll(dependencies);
    +  310  8
                     for (Dependency d : dependencySet) {
    +  311  24
                         if (a.supportsExtension(d.getFileExtension())) {
     312  
                             try {
    -  313  0
                                 a.analyze(d, this);
    +  313  21
                                 a.analyze(d, this);
     314  0
                             } catch (AnalysisException ex) {
     315  0
                                 d.addAnalysisException(ex);
    -  316  0
                             }
    +  316  45
                             }
     317  
                         }
     318  
                     }
    -  319  0
                 }
    +  319  8
                 }
     320  
             }
     321  
     
     322  
             //close/cleanup
    -  323  0
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    -  324  0
                 final List<Analyzer> analyzerList = analyzers.get(phase);
    -  325  0
                 for (Analyzer a : analyzerList) {
    +  323  10
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    +  324  9
                 final List<Analyzer> analyzerList = analyzers.get(phase);
    +  325  9
                 for (Analyzer a : analyzerList) {
     326  
                     try {
    -  327  0
                         a.close();
    +  327  8
                         a.close();
     328  0
                     } catch (Exception ex) {
     329  0
                         Logger.getLogger(Engine.class.getName()).log(Level.FINEST, null, ex);
    -  330  0
                     }
    +  330  16
                     }
     331  
                 }
     332  
             }
    -  333  0
         }
    +  333  1
         }
     334  
     
     335   @@ -622,13 +622,13 @@
          */
     361  
         public List<Analyzer> getAnalyzers() {
    -  362  0
             final List<Analyzer> ret = new ArrayList<Analyzer>();
    -  363  0
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    -  364  0
                 final List<Analyzer> analyzerList = analyzers.get(phase);
    -  365  0
                 ret.addAll(analyzerList);
    +  362  1
             final List<Analyzer> ret = new ArrayList<Analyzer>();
    +  363  10
             for (AnalysisPhase phase : AnalysisPhase.values()) {
    +  364  9
                 final List<Analyzer> analyzerList = analyzers.get(phase);
    +  365  9
                 ret.addAll(analyzerList);
     366  
             }
    -  367  0
             return ret;
    +  367  1
             return ret;
     368  
         }
     369   @@ -671,6 +671,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html index 9aef3b313..a52d8a7ac 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html @@ -125,7 +125,7 @@
         public void initialize() throws Exception {
     56  
             //do nothing
    -  57  1
         }
    +  57  5
         }
     58  
     
     59   @@ -144,11 +144,11 @@
         public void close() throws Exception {
     66  
             //do nothing
    -  67  1
         }
    +  67  5
         }
     68  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisException.html index 517488923..e3e0dd48a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisException.html @@ -145,6 +145,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisPhase.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisPhase.html index bc5e5e685..5306b36ff 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisPhase.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisPhase.html @@ -67,7 +67,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     25  
      */
    -  26  143
     public enum AnalysisPhase {
    +  26  148
     public enum AnalysisPhase {
     27  
     
     28   @@ -137,6 +137,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.Analyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.Analyzer.html index 3ae449392..0a4182166 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.Analyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.Analyzer.html @@ -223,6 +223,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalyzerService.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalyzerService.html index 3aeca5631..edbe3d3b1 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalyzerService.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalyzerService.html @@ -116,11 +116,11 @@
          */
     51  
         public static synchronized AnalyzerService getInstance() {
    -  52  3
             if (service == null) {
    +  52  4
             if (service == null) {
     53  1
                 service = new AnalyzerService();
     54  
             }
    -  55  3
             return service;
    +  55  4
             return service;
     56  
         }
     57   @@ -137,13 +137,13 @@
          */
     63  
         public Iterator<Analyzer> getAnalyzers() {
    -  64  3
             return loader.iterator();
    +  64  4
             return loader.iterator();
     65  
         }
     66  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.html index 506837985..b5c3d56e8 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.html @@ -218,7 +218,7 @@
          */
     104  
         public Set<String> getSupportedExtensions() {
    -  105  136
             return EXTENSIONS;
    +  105  138
             return EXTENSIONS;
     106  
         }
     107   @@ -256,7 +256,7 @@
          */
     124  
         public boolean supportsExtension(String extension) {
    -  125  139
             return EXTENSIONS.contains(extension);
    +  125  142
             return EXTENSIONS.contains(extension);
     126  
         }
     127   @@ -273,7 +273,7 @@
          */
     133  
         public AnalysisPhase getAnalysisPhase() {
    -  134  3
             return ANALYSIS_PHASE;
    +  134  4
             return ANALYSIS_PHASE;
     135  
         }
     136   @@ -296,21 +296,21 @@
         @Override
     145  
         public void initialize() throws Exception {
    -  146  3
             final File baseDir = Settings.getTempDirectory();
    -  147  3
             if (!baseDir.exists()) {
    +  146  4
             final File baseDir = Settings.getTempDirectory();
    +  147  4
             if (!baseDir.exists()) {
     148  0
                 baseDir.mkdirs();
     149  
             }
    -  150  3
             tempFileLocation = File.createTempFile("check", "tmp", baseDir);
    -  151  3
             if (!tempFileLocation.delete()) {
    +  150  4
             tempFileLocation = File.createTempFile("check", "tmp", baseDir);
    +  151  4
             if (!tempFileLocation.delete()) {
     152  0
                 throw new AnalysisException("Unable to delete temporary file '" + tempFileLocation.getAbsolutePath() + "'.");
     153  
             }
    -  154  3
             if (!tempFileLocation.mkdirs()) {
    +  154  4
             if (!tempFileLocation.mkdirs()) {
     155  0
                 throw new AnalysisException("Unable to create directory '" + tempFileLocation.getAbsolutePath() + "'.");
     156  
             }
    -  157  3
         }
    +  157  4
         }
     158  
     
     159   @@ -329,11 +329,11 @@
         @Override
     166  
         public void close() throws Exception {
    -  167  3
             if (tempFileLocation != null && tempFileLocation.exists()) {
    -  168  3
                 FileUtils.deleteRecursive(tempFileLocation.getAbsolutePath(), true);
    +  167  4
             if (tempFileLocation != null && tempFileLocation.exists()) {
    +  168  4
                 FileUtils.deleteRecursive(tempFileLocation.getAbsolutePath(), true);
     169  
             }
    -  170  3
         }
    +  170  4
         }
     171  
     
     172   @@ -556,6 +556,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.CPEAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.CPEAnalyzer.html index 48219cf43..b076d2642 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.CPEAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.CPEAnalyzer.html @@ -12,7 +12,7 @@
     
    - + @@ -222,20 +222,20 @@ - - - + + + - + - - + + @@ -248,15 +248,15 @@ - - + + - - + + - + @@ -271,7 +271,7 @@ - + @@ -290,12 +290,12 @@ - - + + - + @@ -320,45 +320,45 @@ - - + + - - + + - + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - + + @@ -385,31 +385,31 @@ - - - - - + + + + + - - + + - + - - + + - - + + @@ -430,13 +430,13 @@ - - - - + + + + - + @@ -485,23 +485,23 @@ - + - - + + - - - - - - - + + + + + + + @@ -516,16 +516,16 @@ - - - + + + - + @@ -566,23 +566,23 @@ - - - + + + - + - - + + - + @@ -617,47 +617,47 @@ - + - + - + - - + + - - - - - - - - - - + + + + + + + + + + - - - + + + - - + + - - + + @@ -678,7 +678,7 @@ - + @@ -701,15 +701,15 @@ - + - - - + + + @@ -734,18 +734,18 @@ - + - + - + - + @@ -792,37 +792,37 @@ - - - - + + + + - + - - + + - + - - - + + + - - - + + + - + @@ -851,15 +851,15 @@ - + - - + + @@ -876,7 +876,7 @@ - + @@ -916,7 +916,7 @@ - + @@ -935,7 +935,7 @@ - + @@ -954,8 +954,8 @@ - - + + @@ -984,43 +984,43 @@ - - - - - - - - + + + + + + + + - + - - + + - + - + - - - - + + + + - + - - - - + + + + @@ -1029,41 +1029,41 @@ - - - - - + + + + + - + - - - + + + - - + + - - - - - + + + + + - + - + @@ -1101,7 +1101,7 @@ - + @@ -1126,11 +1126,11 @@ - - - - - + + + + + @@ -1155,7 +1155,7 @@ - + @@ -1196,7 +1196,7 @@ - + @@ -1237,7 +1237,7 @@ - + @@ -1368,16 +1368,16 @@ - - - - - + + + + + - + @@ -1386,6 +1386,6 @@
    Classes in this File Line Coverage Branch Coverage Complexity
    CPEAnalyzer
    87%
    169/194
    82%
    104/126
    4
    CPEAnalyzer
    88%
    172/194
    82%
    104/126
    4
    CPEAnalyzer$IdentifierConfidence
    100%
    3/3
    N/A
    4
    CPEAnalyzer$IdentifierMatch
    38%
    15/39
    16%
    4/24
    4
          */
     102  
         public void open() throws IOException, DatabaseException {
     103  9
             cpe = new CpeIndexReader();
     104  9
             cpe.open();
     105  9
             cve = new CveDB();
     103  10
             cpe = new CpeIndexReader();
     104  10
             cpe.open();
     105  10
             cve = new CveDB();
     106  
             try {
     107  9
                 cve.open();
     107  10
                 cve.open();
     108  0
             } catch (SQLException ex) {
     109  0
                 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex);
     110  0
                 throw new DatabaseException("Unable to open the cve db", ex);
     111  0
             } catch (ClassNotFoundException ex) {
     112  0
                 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex);
     113  0
                 throw new DatabaseException("Unable to open the cve db", ex);
     114  9
             }
     115  9
         }
     114  10
             }
     115  10
         }
     116  
     
     117  
         @Override
     121  
         public void close() {
     122  9
             if (cpe != null) {
     123  9
                 cpe.close();
     122  10
             if (cpe != null) {
     123  10
                 cpe.close();
     124  
             }
     125  9
             if (cve != null) {
     126  9
                 cve.close();
     125  10
             if (cve != null) {
     126  10
                 cve.close();
     127  
             }
     128  9
         }
     128  10
         }
     129  
     
     130  
          */
     135  
         public boolean isOpen() {
     136  8
             return (cpe != null) && cpe.isOpen();
     136  10
             return (cpe != null) && cpe.isOpen();
     137  
         }
     138  
         @Override
     145  
         protected void finalize() throws Throwable {
     146  5
             super.finalize();
     147  5
             if (isOpen()) {
     146  7
             super.finalize();
     147  7
             if (isOpen()) {
     148  0
                 close();
     149  
             }
     150  5
         }
     150  7
         }
     151  
     
     152  
          */
     162  
         protected void determineCPE(Dependency dependency) throws CorruptIndexException, IOException, ParseException {
     163  10
             Confidence vendorConf = Confidence.HIGHEST;
     164  10
             Confidence productConf = Confidence.HIGHEST;
     163  13
             Confidence vendorConf = Confidence.HIGHEST;
     164  13
             Confidence productConf = Confidence.HIGHEST;
     165  
     
     166  10
             String vendors = addEvidenceWithoutDuplicateTerms("", dependency.getVendorEvidence(), vendorConf);
     167  10
             String products = addEvidenceWithoutDuplicateTerms("", dependency.getProductEvidence(), productConf);
     166  13
             String vendors = addEvidenceWithoutDuplicateTerms("", dependency.getVendorEvidence(), vendorConf);
     167  13
             String products = addEvidenceWithoutDuplicateTerms("", dependency.getProductEvidence(), productConf);
     168  
     
     169  10
             int ctr = 0;
     169  13
             int ctr = 0;
     170  
             do {
     171  40
                 if (!vendors.isEmpty() && !products.isEmpty()) {
     172  40
                     final List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(),
     171  52
                 if (!vendors.isEmpty() && !products.isEmpty()) {
     172  52
                     final List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(),
     173  
                             dependency.getVendorEvidence().getWeighting());
     174  
     
     175  40
                     for (IndexEntry e : entries) {
     176  397
                         if (verifyEntry(e, dependency)) {
     177  27
                             final String vendor = e.getVendor();
     178  27
                             final String product = e.getProduct();
     179  27
                             determineIdentifiers(dependency, vendor, product);
     180  397
                         }
     175  52
                     for (IndexEntry e : entries) {
     176  624
                         if (verifyEntry(e, dependency)) {
     177  51
                             final String vendor = e.getVendor();
     178  51
                             final String product = e.getProduct();
     179  51
                             determineIdentifiers(dependency, vendor, product);
     180  624
                         }
     181  
                     }
     182  
                 }
     183  40
                 vendorConf = reduceConfidence(vendorConf);
     184  40
                 if (dependency.getVendorEvidence().contains(vendorConf)) {
     185  38
                     vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf);
     183  52
                 vendorConf = reduceConfidence(vendorConf);
     184  52
                 if (dependency.getVendorEvidence().contains(vendorConf)) {
     185  49
                     vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf);
     186  
                 }
     187  40
                 productConf = reduceConfidence(productConf);
     188  40
                 if (dependency.getProductEvidence().contains(productConf)) {
     189  40
                     products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf);
     187  52
                 productConf = reduceConfidence(productConf);
     188  52
                 if (dependency.getProductEvidence().contains(productConf)) {
     189  52
                     products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf);
     190  
                 }
     191  40
             } while ((++ctr) < 4);
     192  10
         }
     191  52
             } while ((++ctr) < 4);
     192  13
         }
     193  
     
     194  
          */
     205  
         private String addEvidenceWithoutDuplicateTerms(final String text, final EvidenceCollection ec, Confidence confidenceFilter) {
     206  98
             final String txt = (text == null) ? "" : text;
     207  98
             final StringBuilder sb = new StringBuilder(txt.length() + (20 * ec.size()));
     208  98
             sb.append(' ').append(txt).append(' ');
     209  98
             for (Evidence e : ec.iterator(confidenceFilter)) {
     210  247
                 String value = e.getValue();
     206  127
             final String txt = (text == null) ? "" : text;
     207  127
             final StringBuilder sb = new StringBuilder(txt.length() + (20 * ec.size()));
     208  127
             sb.append(' ').append(txt).append(' ');
     209  127
             for (Evidence e : ec.iterator(confidenceFilter)) {
     210  309
                 String value = e.getValue();
     211  
     
     212  
                 //hack to get around the fact that lucene does a really good job of recognizing domains and not
     213  
                 // splitting them. TODO - put together a better lucene analyzer specific to the domain.
     214  247
                 if (value.startsWith("http://")) {
     215  20
                     value = value.substring(7).replaceAll("\\.", " ");
     214  309
                 if (value.startsWith("http://")) {
     215  32
                     value = value.substring(7).replaceAll("\\.", " ");
     216  
                 }
     217  247
                 if (value.startsWith("https://")) {
     217  309
                 if (value.startsWith("https://")) {
     218  0
                     value = value.substring(8).replaceAll("\\.", " ");
     219  
                 }
     220  247
                 if (sb.indexOf(" " + value + " ") < 0) {
     221  153
                     sb.append(value).append(' ');
     220  309
                 if (sb.indexOf(" " + value + " ") < 0) {
     221  200
                     sb.append(value).append(' ');
     222  
                 }
     223  247
             }
     224  98
             return sb.toString().trim();
     223  309
             }
     224  127
             return sb.toString().trim();
     225  
         }
     226  
          */
     234  
         private Confidence reduceConfidence(final Confidence c) {
     235  80
             if (c == Confidence.HIGHEST) {
     236  20
                 return Confidence.HIGH;
     237  60
             } else if (c == Confidence.HIGH) {
     238  20
                 return Confidence.MEDIUM;
     235  104
             if (c == Confidence.HIGHEST) {
     236  26
                 return Confidence.HIGH;
     237  78
             } else if (c == Confidence.HIGH) {
     238  26
                 return Confidence.MEDIUM;
     239  
             } else {
     240  40
                 return Confidence.LOW;
     240  52
                 return Confidence.LOW;
     241  
             }
     242  
                 Set<String> vendorWeightings, Set<String> productWeightings)
     264  
                 throws CorruptIndexException, IOException, ParseException {
     265  41
             final ArrayList<IndexEntry> ret = new ArrayList<IndexEntry>(MAX_QUERY_RESULTS);
     265  53
             final ArrayList<IndexEntry> ret = new ArrayList<IndexEntry>(MAX_QUERY_RESULTS);
     266  
     
     267  41
             final String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings);
     268  41
             if (searchString == null) {
     267  53
             final String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings);
     268  53
             if (searchString == null) {
     269  0
                 return ret;
     270  
             }
     271  
     
     272  41
             final TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS);
     273  834
             for (ScoreDoc d : docs.scoreDocs) {
     274  793
                 if (d.score >= 0.08) {
     275  417
                     final Document doc = cpe.getDocument(d.doc);
     276  417
                     final IndexEntry entry = new IndexEntry();
     277  417
                     entry.setVendor(doc.get(Fields.VENDOR));
     278  417
                     entry.setProduct(doc.get(Fields.PRODUCT));
     272  53
             final TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS);
     273  1085
             for (ScoreDoc d : docs.scoreDocs) {
     274  1032
                 if (d.score >= 0.08) {
     275  644
                     final Document doc = cpe.getDocument(d.doc);
     276  644
                     final IndexEntry entry = new IndexEntry();
     277  644
                     entry.setVendor(doc.get(Fields.VENDOR));
     278  644
                     entry.setProduct(doc.get(Fields.PRODUCT));
     279  
     //                if (d.score < 0.08) {
     280  
     //                    System.out.println(d.score);
     285  
     //                }
     286  417
                     entry.setSearchScore(d.score);
     287  417
                     if (!ret.contains(entry)) {
     288  417
                         ret.add(entry);
     286  644
                     entry.setSearchScore(d.score);
     287  644
                     if (!ret.contains(entry)) {
     288  644
                         ret.add(entry);
     289  
                     }
     290  
                 }
     291  
             }
     292  41
             return ret;
     292  53
             return ret;
     293  
         }
     294  
         protected String buildSearch(String vendor, String product,
     312  
                 Set<String> vendorWeighting, Set<String> productWeightings) {
     313  45
             final String v = vendor; //.replaceAll("[^\\w\\d]", " ");
     314  45
             final String p = product; //.replaceAll("[^\\w\\d]", " ");
     315  45
             final StringBuilder sb = new StringBuilder(v.length() + p.length()
     313  57
             final String v = vendor; //.replaceAll("[^\\w\\d]", " ");
     314  57
             final String p = product; //.replaceAll("[^\\w\\d]", " ");
     315  57
             final StringBuilder sb = new StringBuilder(v.length() + p.length()
     316  
                     + Fields.PRODUCT.length() + Fields.VENDOR.length() + STRING_BUILDER_BUFFER);
     317  
     
     318  45
             if (!appendWeightedSearch(sb, Fields.PRODUCT, p, productWeightings)) {
     318  57
             if (!appendWeightedSearch(sb, Fields.PRODUCT, p, productWeightings)) {
     319  0
                 return null;
     320  
             }
     321  45
             sb.append(" AND ");
     322  45
             if (!appendWeightedSearch(sb, Fields.VENDOR, v, vendorWeighting)) {
     321  57
             sb.append(" AND ");
     322  57
             if (!appendWeightedSearch(sb, Fields.VENDOR, v, vendorWeighting)) {
     323  0
                 return null;
     324  
             }
     325  45
             return sb.toString();
     325  57
             return sb.toString();
     326  
         }
     327  
          */
     342  
         private boolean appendWeightedSearch(StringBuilder sb, String field, String searchText, Set<String> weightedText) {
     343  90
             sb.append(" ").append(field).append(":( ");
     343  114
             sb.append(" ").append(field).append(":( ");
     344  
     
     345  90
             final String cleanText = cleanseText(searchText);
     345  114
             final String cleanText = cleanseText(searchText);
     346  
     
     347  90
             if ("".equals(cleanText)) {
     347  114
             if ("".equals(cleanText)) {
     348  0
                 return false;
     349  
             }
     350  
     
     351  90
             if (weightedText == null || weightedText.isEmpty()) {
     352  12
                 LuceneUtils.appendEscapedLuceneQuery(sb, cleanText);
     351  114
             if (weightedText == null || weightedText.isEmpty()) {
     352  16
                 LuceneUtils.appendEscapedLuceneQuery(sb, cleanText);
     353  
             } else {
     354  78
                 final StringTokenizer tokens = new StringTokenizer(cleanText);
     355  920
                 while (tokens.hasMoreElements()) {
     356  842
                     final String word = tokens.nextToken();
     357  842
                     String temp = null;
     358  842
                     for (String weighted : weightedText) {
     359  1709
                         final String weightedStr = cleanseText(weighted);
     360  1709
                         if (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) {
     361  173
                             temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST;
     362  173
                             if (!word.equalsIgnoreCase(weightedStr)) {
     363  12
                                 temp += " " + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST;
     354  98
                 final StringTokenizer tokens = new StringTokenizer(cleanText);
     355  1123
                 while (tokens.hasMoreElements()) {
     356  1025
                     final String word = tokens.nextToken();
     357  1025
                     String temp = null;
     358  1025
                     for (String weighted : weightedText) {
     359  2110
                         final String weightedStr = cleanseText(weighted);
     360  2110
                         if (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) {
     361  225
                             temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST;
     362  225
                             if (!word.equalsIgnoreCase(weightedStr)) {
     363  18
                                 temp += " " + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST;
     364  
                             }
     365  
                         }
     366  1709
                     }
     367  842
                     if (temp == null) {
     368  669
                         temp = LuceneUtils.escapeLuceneQuery(word);
     366  2110
                     }
     367  1025
                     if (temp == null) {
     368  800
                         temp = LuceneUtils.escapeLuceneQuery(word);
     369  
                     }
     370  842
                     sb.append(" ").append(temp);
     371  842
                 }
     370  1025
                     sb.append(" ").append(temp);
     371  1025
                 }
     372  
             }
     373  90
             sb.append(" ) ");
     374  90
             return true;
     373  114
             sb.append(" ) ");
     374  114
             return true;
     375  
         }
     376  
          */
     384  
         private String cleanseText(String text) {
     385  1799
             return text.replaceAll(CLEANSE_CHARACTER_RX, " ");
     385  2224
             return text.replaceAll(CLEANSE_CHARACTER_RX, " ");
     386  
         }
     387  
          */
     396  
         private boolean equalsIgnoreCaseAndNonAlpha(String l, String r) {
     397  1709
             if (l == null || r == null) {
     397  2110
             if (l == null || r == null) {
     398  0
                 return false;
     399  
             }
     400  
     
     401  1709
             final String left = l.replaceAll(CLEANSE_NONALPHA_RX, "");
     402  1709
             final String right = r.replaceAll(CLEANSE_NONALPHA_RX, "");
     403  1709
             return left.equalsIgnoreCase(right);
     401  2110
             final String left = l.replaceAll(CLEANSE_NONALPHA_RX, "");
     402  2110
             final String right = r.replaceAll(CLEANSE_NONALPHA_RX, "");
     403  2110
             return left.equalsIgnoreCase(right);
     404  
         }
     405  
          */
     415  
         private boolean verifyEntry(final IndexEntry entry, final Dependency dependency) {
     416  397
             boolean isValid = false;
     416  624
             boolean isValid = false;
     417  
     
     418  397
             if (collectionContainsString(dependency.getProductEvidence(), entry.getProduct())
     418  624
             if (collectionContainsString(dependency.getProductEvidence(), entry.getProduct())
     419  
                     && collectionContainsString(dependency.getVendorEvidence(), entry.getVendor())) {
     420  
                 //&& collectionContainsVersion(dependency.getVersionEvidence(), entry.getVersion())
     421  27
                 isValid = true;
     421  51
                 isValid = true;
     422  
             }
     423  397
             return isValid;
     423  624
             return isValid;
     424  
         }
     425  
     
     446  
             //TODO - likely need to change the split... not sure if this will work for CPE with special chars
     447  428
             final String[] words = text.split("[\\s_-]");
     448  428
             final List<String> list = new ArrayList<String>();
     449  428
             String tempWord = null;
     450  1195
             for (String word : words) {
     447  681
             final String[] words = text.split("[\\s_-]");
     448  681
             final List<String> list = new ArrayList<String>();
     449  681
             String tempWord = null;
     450  1829
             for (String word : words) {
     451  
                 //single letter words should be concatonated with the next word.
     452  
                 // so { "m", "core", "sample" } -> { "mcore", "sample" }
     453  767
                 if (tempWord != null) {
     453  1148
                 if (tempWord != null) {
     454  17
                     list.add(tempWord + word);
     455  17
                     tempWord = null;
     456  750
                 } else if (word.length() <= 2) {
     457  28
                     tempWord = word;
     456  1131
                 } else if (word.length() <= 2) {
     457  40
                     tempWord = word;
     458  
                 } else {
     459  722
                     list.add(word);
     459  1091
                     list.add(word);
     460  
                 }
     461  
             }
     462  428
             if (tempWord != null && !list.isEmpty()) {
     463  9
                 String tmp = list.get(list.size() - 1) + tempWord;
     464  9
                 list.add(tmp);
     462  681
             if (tempWord != null && !list.isEmpty()) {
     463  19
                 final String tmp = list.get(list.size() - 1) + tempWord;
     464  19
                 list.add(tmp);
     465  
             }
     466  428
             boolean contains = true;
     467  428
             for (String word : list) {
     468  748
                 contains &= ec.containsUsedString(word);
     466  681
             boolean contains = true;
     467  681
             for (String word : list) {
     468  1127
                 contains &= ec.containsUsedString(word);
     469  
             }
     470  428
             return contains;
     470  681
             return contains;
     471  
         }
     472  
         public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
     484  
             try {
     485  6
                 determineCPE(dependency);
     485  9
                 determineCPE(dependency);
     486  0
             } catch (CorruptIndexException ex) {
     487  0
                 throw new AnalysisException("CPE Index is corrupt.", ex);
     488  0
             } catch (IOException ex) {
     489  0
                 throw new AnalysisException("Failure opening the CPE Index.", ex);
     490  0
             } catch (ParseException ex) {
     491  0
                 throw new AnalysisException("Unable to parse the generated Lucene query for this dependency.", ex);
     492  6
             }
     493  6
         }
     492  9
             }
     493  9
         }
     494  
     
     495  
         @Override
     501  
         public Set<String> getSupportedExtensions() {
     502  128
             return null;
     502  129
             return null;
     503  
         }
     504  
         @Override
     522  
         public boolean supportsExtension(String extension) {
     523  0
             return true;
     523  3
             return true;
     524  
         }
     525  
         @Override
     532  
         public AnalysisPhase getAnalysisPhase() {
     533  2
             return AnalysisPhase.IDENTIFIER_ANALYSIS;
     533  3
             return AnalysisPhase.IDENTIFIER_ANALYSIS;
     534  
         }
     535  
         @Override
     542  
         public void initialize() throws Exception {
     543  0
             this.open();
     544  0
         }
     543  1
             this.open();
     544  1
         }
     545  
     
     546  
          */
     558  
         private void determineIdentifiers(Dependency dependency, String vendor, String product) throws UnsupportedEncodingException {
     559  27
             final Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product);
     560  27
             DependencyVersion bestGuess = new DependencyVersion("-");
     561  27
             Confidence bestGuessConf = null;
     562  27
             final List<IdentifierMatch> collected = new ArrayList<IdentifierMatch>();
     563  135
             for (Confidence conf : Confidence.values()) {
     564  108
                 for (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) {
     565  84
                     final DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue());
     566  84
                     if (evVer == null) {
     559  51
             final Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product);
     560  51
             DependencyVersion bestGuess = new DependencyVersion("-");
     561  51
             Confidence bestGuessConf = null;
     562  51
             final List<IdentifierMatch> collected = new ArrayList<IdentifierMatch>();
     563  255
             for (Confidence conf : Confidence.values()) {
     564  204
                 for (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) {
     565  144
                     final DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue());
     566  144
                     if (evVer == null) {
     567  0
                         continue;
     568  
                     }
     569  84
                     for (VulnerableSoftware vs : cpes) {
     569  144
                     for (VulnerableSoftware vs : cpes) {
     570  
                         DependencyVersion dbVer;
     571  4216
                         if (vs.getRevision() != null && !vs.getRevision().isEmpty()) {
     572  1419
                             dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + "." + vs.getRevision());
     571  8188
                         if (vs.getRevision() != null && !vs.getRevision().isEmpty()) {
     572  2855
                             dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + "." + vs.getRevision());
     573  
                         } else {
     574  2797
                             dbVer = DependencyVersionUtil.parseVersion(vs.getVersion());
     574  5333
                             dbVer = DependencyVersionUtil.parseVersion(vs.getVersion());
     575  
                         }
     576  4216
                         if (dbVer == null //special case, no version specified - everything is vulnerable
     576  8188
                         if (dbVer == null //special case, no version specified - everything is vulnerable
     577  
                                 || evVer.equals(dbVer)) { //woot exect match
     578  77
                             final String url = String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(vs.getName(), "UTF-8"));
     579  77
                             final IdentifierMatch match = new IdentifierMatch("cpe", vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf);
     580  77
                             collected.add(match);
     581  77
                         } else {
     578  137
                             final String url = String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(vs.getName(), "UTF-8"));
     579  137
                             final IdentifierMatch match = new IdentifierMatch("cpe", vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf);
     580  137
                             collected.add(match);
     581  137
                         } else {
     582  
                             //TODO the following isn't quite right is it? need to think about this guessing game a bit more.
     583  4139
                             if (evVer.getVersionParts().size() <= dbVer.getVersionParts().size()
     583  8051
                             if (evVer.getVersionParts().size() <= dbVer.getVersionParts().size()
     584  
                                     && evVer.matchesAtLeastThreeLevels(dbVer)) {
     585  232
                                 if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) {
     586  6
                                     if (bestGuess.getVersionParts().size() < dbVer.getVersionParts().size()) {
     587  6
                                         bestGuess = dbVer;
     588  6
                                         bestGuessConf = conf;
     585  412
                                 if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) {
     586  10
                                     if (bestGuess.getVersionParts().size() < dbVer.getVersionParts().size()) {
     587  10
                                         bestGuess = dbVer;
     588  10
                                         bestGuessConf = conf;
     589  
                                     }
     590  
                             }
     592  
                         }
     593  4216
                     }
     594  84
                     if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) {
     595  21
                         if (bestGuess.getVersionParts().size() < evVer.getVersionParts().size()) {
     596  21
                             bestGuess = evVer;
     597  21
                             bestGuessConf = conf;
     593  8188
                     }
     594  144
                     if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) {
     595  41
                         if (bestGuess.getVersionParts().size() < evVer.getVersionParts().size()) {
     596  41
                             bestGuess = evVer;
     597  41
                             bestGuessConf = conf;
     598  
                         }
     599  
                     }
     600  84
                 }
     600  144
                 }
     601  
             }
     602  27
             final String cpeName = String.format("cpe:/a:%s:%s:%s", vendor, product, bestGuess.toString());
     603  27
             final String url = null; //String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8"));
     604  27
             if (bestGuessConf == null) {
     602  51
             final String cpeName = String.format("cpe:/a:%s:%s:%s", vendor, product, bestGuess.toString());
     603  51
             final String url = null; //String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8"));
     604  51
             if (bestGuessConf == null) {
     605  0
                 bestGuessConf = Confidence.LOW;
     606  
             }
     607  27
             final IdentifierMatch match = new IdentifierMatch("cpe", cpeName, url, IdentifierConfidence.BEST_GUESS, bestGuessConf);
     608  27
             collected.add(match);
     607  51
             final IdentifierMatch match = new IdentifierMatch("cpe", cpeName, url, IdentifierConfidence.BEST_GUESS, bestGuessConf);
     608  51
             collected.add(match);
     609  
     
     610  27
             Collections.sort(collected);
     611  27
             final IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence();
     612  27
             final Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence();
     613  27
             for (IdentifierMatch m : collected) {
     614  104
                 if (bestIdentifierQuality.equals(m.getConfidence())
     610  51
             Collections.sort(collected);
     611  51
             final IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence();
     612  51
             final Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence();
     613  51
             for (IdentifierMatch m : collected) {
     614  188
                 if (bestIdentifierQuality.equals(m.getConfidence())
     615  
                         && bestEvidenceQuality.equals(m.getEvidenceConfidence())) {
     616  32
                     dependency.addIdentifier(m.getIdentifier());
     616  60
                     dependency.addIdentifier(m.getIdentifier());
     617  
                 }
     618  
             }
     619  27
         }
     619  51
         }
     620  
     
     621  
          * confidence in the identifier.
     639  
          */
     640  101
         private static class IdentifierMatch implements Comparable<IdentifierMatch> {
     640  185
         private static class IdentifierMatch implements Comparable<IdentifierMatch> {
     641  
     
     642  
              * the identifier
     652  
              */
     653  104
             IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) {
     654  104
                 this.identifier = new Identifier(type, value, url);
     655  104
                 this.confidence = identifierConfidence;
     656  104
                 this.evidenceConfidence = evidenceConfidence;
     657  104
             }
     653  188
             IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) {
     654  188
                 this.identifier = new Identifier(type, value, url);
     655  188
                 this.confidence = identifierConfidence;
     656  188
                 this.evidenceConfidence = evidenceConfidence;
     657  188
             }
     658  
             //<editor-fold defaultstate="collapsed" desc="Property implementations: evidenceConfidence, confidence, identifier">
     659  
              */
     669  
             public Confidence getEvidenceConfidence() {
     670  111
                 return evidenceConfidence;
     670  199
                 return evidenceConfidence;
     671  
             }
     672  
              */
     691  
             public IdentifierConfidence getConfidence() {
     692  131
                 return confidence;
     692  239
                 return confidence;
     693  
             }
     694  
              */
     713  
             public Identifier getIdentifier() {
     714  32
                 return identifier;
     714  60
                 return identifier;
     715  
             }
     716  
             @Override
     789  
             public int compareTo(IdentifierMatch o) {
     790  101
                 int conf = this.confidence.compareTo(o.confidence);
     791  101
                 if (conf == 0) {
     792  81
                     conf = this.evidenceConfidence.compareTo(o.evidenceConfidence);
     793  81
                     if (conf == 0) {
     794  39
                         conf = identifier.compareTo(o.identifier);
     790  185
                 int conf = this.confidence.compareTo(o.confidence);
     791  185
                 if (conf == 0) {
     792  145
                     conf = this.evidenceConfidence.compareTo(o.evidenceConfidence);
     793  145
                     if (conf == 0) {
     794  67
                         conf = identifier.compareTo(o.identifier);
     795  
                     }
     796  
                 }
     797  101
                 return conf;
     797  185
                 return conf;
     798  
             }
     799  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html index fdf1116c3..e1dd08c8e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    DependencyBundlingAnalyzer
    6%
    7/105
    0%
    0/94
    7.1
    DependencyBundlingAnalyzer
    23%
    25/105
    17%
    16/94
    7.1
     
    @@ -162,7 +162,7 @@
          */
     75  
         public Set<String> getSupportedExtensions() {
    -  76  128
             return EXTENSIONS;
    +  76  129
             return EXTENSIONS;
     77  
         }
     78   @@ -200,7 +200,7 @@
          */
     95  
         public boolean supportsExtension(String extension) {
    -  96  0
             return true;
    +  96  3
             return true;
     97  
         }
     98   @@ -217,7 +217,7 @@
          */
     104  
         public AnalysisPhase getAnalysisPhase() {
    -  105  2
             return ANALYSIS_PHASE;
    +  105  3
             return ANALYSIS_PHASE;
     106  
         }
     107   @@ -248,21 +248,21 @@
         @Override
     120  
         public void analyze(Dependency ignore, Engine engine) throws AnalysisException {
    -  121  0
             if (!analyzed) {
    -  122  0
                 analyzed = true;
    -  123  0
                 final Set<Dependency> dependenciesToRemove = new HashSet<Dependency>();
    -  124  0
                 final ListIterator<Dependency> mainIterator = engine.getDependencies().listIterator();
    +  121  3
             if (!analyzed) {
    +  122  1
                 analyzed = true;
    +  123  1
                 final Set<Dependency> dependenciesToRemove = new HashSet<Dependency>();
    +  124  1
                 final ListIterator<Dependency> mainIterator = engine.getDependencies().listIterator();
     125  
                 //for (Dependency nextDependency : engine.getDependencies()) {
    -  126  0
                 while (mainIterator.hasNext()) {
    -  127  0
                     final Dependency dependency = mainIterator.next();
    -  128  0
                     if (mainIterator.hasNext()) {
    -  129  0
                         final ListIterator<Dependency> subIterator = engine.getDependencies().listIterator(mainIterator.nextIndex());
    -  130  0
                         while (subIterator.hasNext()) {
    -  131  0
                             final Dependency nextDependency = subIterator.next();
    +  126  4
                 while (mainIterator.hasNext()) {
    +  127  3
                     final Dependency dependency = mainIterator.next();
    +  128  3
                     if (mainIterator.hasNext()) {
    +  129  2
                         final ListIterator<Dependency> subIterator = engine.getDependencies().listIterator(mainIterator.nextIndex());
    +  130  5
                         while (subIterator.hasNext()) {
    +  131  3
                             final Dependency nextDependency = subIterator.next();
     132  
     
    -  133  0
                             if (identifiersMatch(dependency, nextDependency)
    +  133  3
                             if (identifiersMatch(dependency, nextDependency)
     134  
                                     && hasSameBasePath(dependency, nextDependency)
     135   @@ -298,21 +298,21 @@
                                 }
     158  
                             }
    -  159  0
                         }
    +  159  3
                         }
     160  
                     }
    -  161  0
                 }
    +  161  3
                 }
     162  
                 //removing dependencies here as ensuring correctness and avoiding ConcurrentUpdateExceptions
     163  
                 // was difficult because of the inner iterator.
    -  164  0
                 for (Dependency d : dependenciesToRemove) {
    +  164  1
                 for (Dependency d : dependenciesToRemove) {
     165  0
                     engine.getDependencies().remove(d);
     166  
                 }
     167  
             }
    -  168  0
         }
    +  168  3
         }
     169  
     
     170   @@ -456,13 +456,13 @@
          */
     258  
         private boolean identifiersMatch(Dependency dependency1, Dependency dependency2) {
    -  259  0
             if (dependency1 == null || dependency1.getIdentifiers() == null
    +  259  3
             if (dependency1 == null || dependency1.getIdentifiers() == null
     260  
                     || dependency2 == null || dependency2.getIdentifiers() == null) {
     261  0
                 return false;
     262  
             }
    -  263  0
             return dependency1.getIdentifiers().size() > 0
    +  263  3
             return dependency1.getIdentifiers().size() > 0
     264  
                     && dependency2.getIdentifiers().equals(dependency1.getIdentifiers());
     265   @@ -570,6 +570,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.html index c55cb8056..97465b18b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    FalsePositiveAnalyzer
    62%
    58/93
    38%
    29/76
    5.2
    FalsePositiveAnalyzer
    69%
    65/94
    46%
    39/84
    5.6
     
    @@ -144,7 +144,7 @@
          */
     65  
         public Set<String> getSupportedExtensions() {
    -  66  128
             return EXTENSIONS;
    +  66  129
             return EXTENSIONS;
     67  
         }
     68   @@ -182,7 +182,7 @@
          */
     85  
         public boolean supportsExtension(String extension) {
    -  86  0
             return true;
    +  86  3
             return true;
     87  
         }
     88   @@ -199,7 +199,7 @@
          */
     94  
         public AnalysisPhase getAnalysisPhase() {
    -  95  2
             return ANALYSIS_PHASE;
    +  95  3
             return ANALYSIS_PHASE;
     96  
         }
     97   @@ -228,11 +228,11 @@
         @Override
     109  
         public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
    -  110  6
             removeJreEntries(dependency);
    -  111  6
             removeBadMatches(dependency);
    -  112  6
             removeSpuriousCPE(dependency);
    -  113  6
             addFalseNegativeCPEs(dependency);
    -  114  6
         }
    +  110  9
             removeJreEntries(dependency);
    +  111  9
             removeBadMatches(dependency);
    +  112  9
             removeSpuriousCPE(dependency);
    +  113  9
             addFalseNegativeCPEs(dependency);
    +  114  9
         }
     115  
     
     116   @@ -269,321 +269,332 @@
          */
     132  
         private void removeSpuriousCPE(Dependency dependency) {
    -  133  6
             final List<Identifier> ids = new ArrayList<Identifier>();
    -  134  6
             ids.addAll(dependency.getIdentifiers());
    -  135  6
             Collections.sort(ids);
    -  136  6
             final ListIterator<Identifier> mainItr = ids.listIterator();
    -  137  13
             while (mainItr.hasNext()) {
    -  138  7
                 final Identifier currentId = mainItr.next();
    -  139  7
                 final VulnerableSoftware currentCpe = parseCpe(currentId.getType(), currentId.getValue());
    -  140  7
                 if (currentCpe == null) {
    +  133  9
             final List<Identifier> ids = new ArrayList<Identifier>();
    +  134  9
             ids.addAll(dependency.getIdentifiers());
    +  135  9
             Collections.sort(ids);
    +  136  9
             final ListIterator<Identifier> mainItr = ids.listIterator();
    +  137  23
             while (mainItr.hasNext()) {
    +  138  14
                 final Identifier currentId = mainItr.next();
    +  139  14
                 final VulnerableSoftware currentCpe = parseCpe(currentId.getType(), currentId.getValue());
    +  140  14
                 if (currentCpe == null) {
     141  0
                     continue;
     142  
                 }
    -  143  7
                 final ListIterator<Identifier> subItr = ids.listIterator(mainItr.nextIndex());
    -  144  12
                 while (subItr.hasNext()) {
    -  145  5
                     final Identifier nextId = subItr.next();
    -  146  5
                     final VulnerableSoftware nextCpe = parseCpe(nextId.getType(), nextId.getValue());
    -  147  5
                     if (nextCpe == null) {
    +  143  14
                 final ListIterator<Identifier> subItr = ids.listIterator(mainItr.nextIndex());
    +  144  24
                 while (subItr.hasNext()) {
    +  145  10
                     final Identifier nextId = subItr.next();
    +  146  10
                     final VulnerableSoftware nextCpe = parseCpe(nextId.getType(), nextId.getValue());
    +  147  10
                     if (nextCpe == null) {
     148  0
                         continue;
     149  
                     }
     150  
                     //TODO fix the version problem below
    -  151  5
                     if (currentCpe.getVendor().equals(nextCpe.getVendor())) {
    -  152  0
                         if (currentCpe.getProduct().equals(nextCpe.getProduct())) {
    +  151  10
                     if (currentCpe.getVendor().equals(nextCpe.getVendor())) {
    +  152  2
                         if (currentCpe.getProduct().equals(nextCpe.getProduct())) {
     153  
                             // see if one is contained in the other.. remove the contained one from dependency.getIdentifier
    -  154  0
                             final String currentVersion = currentCpe.getVersion();
    -  155  0
                             final String nextVersion = nextCpe.getVersion();
    -  156  0
                             if (currentVersion == null && nextVersion == null) {
    +  154  1
                             final String currentVersion = currentCpe.getVersion();
    +  155  1
                             final String nextVersion = nextCpe.getVersion();
    +  156  1
                             if (currentVersion == null && nextVersion == null) {
     157  
                                 //how did we get here?
    -  158  0
                             } else if (currentVersion == null && nextVersion != null) {
    -  159  0
                                 dependency.getIdentifiers().remove(currentId);
    -  160  0
                             } else if (nextVersion == null && currentVersion != null) {
    -  161  0
                                 dependency.getIdentifiers().remove(nextId);
    -  162  0
                             } else if (currentVersion.length() < nextVersion.length()) {
    -  163  0
                                 if (nextVersion.startsWith(currentVersion) || "-".equals(currentVersion)) {
    -  164  0
                                     dependency.getIdentifiers().remove(currentId);
    -  165   +  158  0
                                 Logger.getLogger(FalsePositiveAnalyzer.class
    +  159   +
                                         .getName()).log(Level.FINE, "currentVersion and nextVersion are both null?");
    +  160  1
                             } else if (currentVersion == null && nextVersion != null) {
    +  161  1
                                 dependency.getIdentifiers().remove(currentId);
    +  162  0
                             } else if (nextVersion == null && currentVersion != null) {
    +  163  0
                                 dependency.getIdentifiers().remove(nextId);
    +  164  0
                             } else if (currentVersion.length() < nextVersion.length()) {
    +  165  0
                                 if (nextVersion.startsWith(currentVersion) || "-".equals(currentVersion)) {
    +  166  0
                                     dependency.getIdentifiers().remove(currentId);
    +  167  
                                 }
    -  166   +  168  
                             } else {
    -  167  0
                                 if (currentVersion.startsWith(nextVersion) || "-".equals(nextVersion)) {
    -  168  0
                                     dependency.getIdentifiers().remove(nextId);
    -  169   -
                                 }
    -  170   -
                             }
    +  169  0
                                 if (currentVersion.startsWith(nextVersion) || "-".equals(nextVersion)) {
    +  170  0
                                     dependency.getIdentifiers().remove(nextId);
     171   -
                         }
    +
                                 }
     172   +
                             }
    +  173   +
                         }
    +  174  
                     }
    -  173  5
                 }
    -  174  7
             }
    -  175  6
         }
    -  176   -
         /**
    -  177   -
          * Regex to identify core java libraries and a few other commonly
    +  175  10
                 }
    +  176  14
             }
    +  177  9
         }
     178   -
          * misidentified ones.
    +
         /**
     179   -
          */
    -  180  1
         public static final Pattern CORE_JAVA = Pattern.compile("^cpe:/a:(sun|oracle|ibm):(j2[ems]e|"
    +
          * Regex to identify core java libraries and a few other commonly
    +  180   +
          * misidentified ones.
     181   -
                 + "java(_platfrom_micro_edition|_runtime_environment|_se|virtual_machine|se_development_kit|fx)?|"
    -  182   -
                 + "jdk|jre|jsf|jsse)($|:.*)");
    +
          */
    +  182  1
         public static final Pattern CORE_JAVA = Pattern.compile("^cpe:/a:(sun|oracle|ibm):(j2[ems]e|"
     183   -
         /**
    +
                 + "java(_platfrom_micro_edition|_runtime_environment|_se|virtual_machine|se_development_kit|fx)?|"
     184   -
          * Regex to identify core java library files. This is currently incomplete.
    +
                 + "jdk|jre|jsf|jsse)($|:.*)");
     185   -
          */
    -  186  1
         public static final Pattern CORE_FILES = Pattern.compile("^((alt[-])?rt|jsf[-].*|jsse|jfxrt|jfr|jce|javaws|deploy|charsets)\\.jar$");
    +
         /**
    +  186   +
          * Regex to identify core java library files. This is currently incomplete.
     187   -
     
    -  188   -
         /**
    +
          */
    +  188  1
         public static final Pattern CORE_FILES = Pattern.compile("^((alt[-])?rt|jsf[-].*|jsse|jfxrt|jfr|jce|javaws|deploy|charsets)\\.jar$");
     189   -
          * Removes any CPE entries for the JDK/JRE unless the filename ends with
    +
     
     190   -
          * rt.jar
    +
         /**
     191   -
          *
    +
          * Removes any CPE entries for the JDK/JRE unless the filename ends with
     192   -
          * @param dependency the dependency to remove JRE CPEs from
    +
          * rt.jar
     193   -
          */
    +
          *
     194   +
          * @param dependency the dependency to remove JRE CPEs from
    +  195   +
          */
    +  196  
         private void removeJreEntries(Dependency dependency) {
    -  195  6
             final Set<Identifier> identifiers = dependency.getIdentifiers();
    -  196  6
             final Iterator<Identifier> itr = identifiers.iterator();
    -  197  13
             while (itr.hasNext()) {
    -  198  7
                 final Identifier i = itr.next();
    -  199  7
                 final Matcher coreCPE = CORE_JAVA.matcher(i.getValue());
    -  200  7
                 final Matcher coreFiles = CORE_FILES.matcher(dependency.getFileName());
    -  201  7
                 if (coreCPE.matches() && !coreFiles.matches()) {
    -  202  0
                     itr.remove();
    -  203   -
                 }
    -  204   -
     
    +  197  9
             final Set<Identifier> identifiers = dependency.getIdentifiers();
    +  198  9
             final Iterator<Identifier> itr = identifiers.iterator();
    +  199  23
             while (itr.hasNext()) {
    +  200  14
                 final Identifier i = itr.next();
    +  201  14
                 final Matcher coreCPE = CORE_JAVA.matcher(i.getValue());
    +  202  14
                 final Matcher coreFiles = CORE_FILES.matcher(dependency.getFileName());
    +  203  14
                 if (coreCPE.matches() && !coreFiles.matches()) {
    +  204  0
                     itr.remove();
     205   -
                 //replacecd with the regex above.
    +
                 }
     206   -
                 //            if (("cpe:/a:sun:java".equals(i.getValue())
    +
     
     207   -
                 //                    || "cpe:/a:oracle:java".equals(i.getValue())
    +
                 //replacecd with the regex above.
     208   -
                 //                    || "cpe:/a:ibm:java".equals(i.getValue())
    +
                 //            if (("cpe:/a:sun:java".equals(i.getValue())
     209   -
                 //                    || "cpe:/a:sun:j2se".equals(i.getValue())
    +
                 //                    || "cpe:/a:oracle:java".equals(i.getValue())
     210   -
                 //                    || "cpe:/a:oracle:j2se".equals(i.getValue())
    +
                 //                    || "cpe:/a:ibm:java".equals(i.getValue())
     211   -
                 //                    || i.getValue().startsWith("cpe:/a:sun:java:")
    +
                 //                    || "cpe:/a:sun:j2se".equals(i.getValue())
     212   -
                 //                    || i.getValue().startsWith("cpe:/a:sun:j2se:")
    +
                 //                    || "cpe:/a:oracle:j2se".equals(i.getValue())
     213   -
                 //                    || i.getValue().startsWith("cpe:/a:sun:java:jre")
    +
                 //                    || i.getValue().startsWith("cpe:/a:sun:java:")
     214   -
                 //                    || i.getValue().startsWith("cpe:/a:sun:java:jdk")
    +
                 //                    || i.getValue().startsWith("cpe:/a:sun:j2se:")
     215   -
                 //                    || i.getValue().startsWith("cpe:/a:sun:java_se")
    +
                 //                    || i.getValue().startsWith("cpe:/a:sun:java:jre")
     216   -
                 //                    || i.getValue().startsWith("cpe:/a:oracle:java_se")
    +
                 //                    || i.getValue().startsWith("cpe:/a:sun:java:jdk")
     217   -
                 //                    || i.getValue().startsWith("cpe:/a:oracle:java:")
    +
                 //                    || i.getValue().startsWith("cpe:/a:sun:java_se")
     218   -
                 //                    || i.getValue().startsWith("cpe:/a:oracle:j2se:")
    +
                 //                    || i.getValue().startsWith("cpe:/a:oracle:java_se")
     219   -
                 //                    || i.getValue().startsWith("cpe:/a:oracle:jre")
    +
                 //                    || i.getValue().startsWith("cpe:/a:oracle:java:")
     220   -
                 //                    || i.getValue().startsWith("cpe:/a:oracle:jdk")
    +
                 //                    || i.getValue().startsWith("cpe:/a:oracle:j2se:")
     221   -
                 //                    || i.getValue().startsWith("cpe:/a:ibm:java:"))
    +
                 //                    || i.getValue().startsWith("cpe:/a:oracle:jre")
     222   -
                 //                    && !dependency.getFileName().toLowerCase().endsWith("rt.jar")) {
    +
                 //                    || i.getValue().startsWith("cpe:/a:oracle:jdk")
     223   -
                 //                itr.remove();
    +
                 //                    || i.getValue().startsWith("cpe:/a:ibm:java:"))
     224   +
                 //                    && !dependency.getFileName().toLowerCase().endsWith("rt.jar")) {
    +  225   +
                 //                itr.remove();
    +  226  
                 //            }
    -  225  7
             }
    -  226  6
         }
    -  227   -
     
    -  228   -
         /**
    +  227  14
             }
    +  228  9
         }
     229   -
          * Parses a CPE string into an IndexEntry.
    +
     
     230   -
          *
    -  231   -
          * @param type the type of identifier
    -  232   -
          * @param value the cpe identifier to parse
    -  233   -
          * @return an VulnerableSoftware object constructed from the identifier
    -  234   -
          */
    -  235   -
         private VulnerableSoftware parseCpe(String type, String value) {
    -  236  12
             if (!"cpe".equals(type)) {
    -  237  0
                 return null;
    -  238   -
             }
    -  239  12
             final VulnerableSoftware cpe = new VulnerableSoftware();
    -  240   -
             try {
    -  241  12
                 cpe.parseName(value);
    -  242  0
             } catch (UnsupportedEncodingException ex) {
    -  243  0
                 Logger.getLogger(FalsePositiveAnalyzer.class.getName()).log(Level.FINEST, null, ex);
    -  244  0
                 return null;
    -  245  12
             }
    -  246  12
             return cpe;
    -  247   -
         }
    -  248   -
     
    -  249  
         /**
    -  250   -
          * Removes bad CPE matches for a dependency. Unfortunately, right now these
    -  251   -
          * are hard-coded patches for specific problems identified when testing this
    -  252   -
          * on a LARGE volume of jar files.
    -  253   +  231   +
          * Parses a CPE string into an IndexEntry.
    +  232  
          *
    -  254   -
          * @param dependency the dependency to analyze
    -  255   +  233   +
          * @param type the type of identifier
    +  234   +
          * @param value the cpe identifier to parse
    +  235   +
          * @return an VulnerableSoftware object constructed from the identifier
    +  236  
          */
    +  237   +
         private VulnerableSoftware parseCpe(String type, String value) {
    +  238  24
             if (!"cpe".equals(type)) {
    +  239  0
                 return null;
    +  240   +
             }
    +  241  24
             final VulnerableSoftware cpe = new VulnerableSoftware();
    +  242   +
             try {
    +  243  24
                 cpe.parseName(value);
    +  244  0
             } catch (UnsupportedEncodingException ex) {
    +  245  0
                 Logger.getLogger(FalsePositiveAnalyzer.class.getName()).log(Level.FINEST, null, ex);
    +  246  0
                 return null;
    +  247  24
             }
    +  248  24
             return cpe;
    +  249   +
         }
    +  250   +
     
    +  251   +
         /**
    +  252   +
          * Removes bad CPE matches for a dependency. Unfortunately, right now these
    +  253   +
          * are hard-coded patches for specific problems identified when testing this
    +  254   +
          * on a LARGE volume of jar files.
    +  255   +
          *
     256   +
          * @param dependency the dependency to analyze
    +  257   +
          */
    +  258  
         private void removeBadMatches(Dependency dependency) {
    -  257  6
             final Set<Identifier> identifiers = dependency.getIdentifiers();
    -  258  6
             final Iterator<Identifier> itr = identifiers.iterator();
    -  259   -
     
    -  260   -
             /* TODO - can we utilize the pom's groupid and artifactId to filter??? most of
    +  259  9
             final Set<Identifier> identifiers = dependency.getIdentifiers();
    +  260  9
             final Iterator<Identifier> itr = identifiers.iterator();
     261   -
              * these are due to low quality data.  Other idea would be to say any CPE
    +
     
     262   -
              * found based on LOW confidence evidence should have a different CPE type? (this
    +
             /* TODO - can we utilize the pom's groupid and artifactId to filter??? most of
     263   -
              * might be a better solution then just removing the URL for "best-guess" matches).
    +
              * these are due to low quality data.  Other idea would be to say any CPE
     264   -
              */
    +
              * found based on LOW confidence evidence should have a different CPE type? (this
     265   -
     
    +
              * might be a better solution then just removing the URL for "best-guess" matches).
     266   -
             //Set<Evidence> groupId = dependency.getVendorEvidence().getEvidence("pom", "groupid");
    +
              */
     267   -
             //Set<Evidence> artifactId = dependency.getVendorEvidence().getEvidence("pom", "artifactid");
    -  268  
     
    -  269  13
             while (itr.hasNext()) {
    -  270  7
                 final Identifier i = itr.next();
    -  271   +  268   +
             //Set<Evidence> groupId = dependency.getVendorEvidence().getEvidence("pom", "groupid");
    +  269   +
             //Set<Evidence> artifactId = dependency.getVendorEvidence().getEvidence("pom", "artifactid");
    +  270   +
     
    +  271  23
             while (itr.hasNext()) {
    +  272  14
                 final Identifier i = itr.next();
    +  273  
                 //TODO move this startswith expression to a configuration file?
    -  272  7
                 if ("cpe".equals(i.getType())) {
    -  273  7
                     if ((i.getValue().matches(".*c\\+\\+.*")
    -  274   -
                             || i.getValue().startsWith("cpe:/a:jquery:jquery")
    -  275   -
                             || i.getValue().startsWith("cpe:/a:prototypejs:prototype")
    +  274  14
                 if ("cpe".equals(i.getType())) {
    +  275  14
                     if ((i.getValue().matches(".*c\\+\\+.*")
     276   -
                             || i.getValue().startsWith("cpe:/a:yahoo:yui"))
    +
                             || i.getValue().startsWith("cpe:/a:jquery:jquery")
     277   -
                             && dependency.getFileName().toLowerCase().endsWith(".jar")) {
    -  278  0
                         itr.remove();
    -  279  7
                     } else if (i.getValue().startsWith("cpe:/a:file:file")
    +
                             || i.getValue().startsWith("cpe:/a:prototypejs:prototype")
    +  278   +
                             || i.getValue().startsWith("cpe:/a:yahoo:yui")
    +  279   +
                             || i.getValue().startsWith("cpe:/a:file:file")
     280  
                             || i.getValue().startsWith("cpe:/a:mozilla:mozilla")
     281   -
                             || i.getValue().startsWith("cpe:/a:ssh:ssh")) {
    -  282  0
                         itr.remove();
    +
                             || i.getValue().startsWith("cpe:/a:cvs:cvs")
    +  282   +
                             || i.getValue().startsWith("cpe:/a:ftp:ftp")
     283   -
                     }
    +
                             || i.getValue().startsWith("cpe:/a:ssh:ssh"))
     284   -
                 }
    -  285  7
             }
    -  286  6
         }
    +
                             && dependency.getFileName().toLowerCase().endsWith(".jar")) {
    +  285  0
                         itr.remove();
    +  286  14
                     } else if (i.getValue().startsWith("cpe:/a:apache:maven")
     287   -
     
    -  288   -
         /**
    +
                             && !dependency.getFileName().toLowerCase().matches("maven-core-[\\d\\.]+\\.jar")) {
    +  288  0
                         itr.remove();
     289   -
          * There are some known CPE entries, specifically regarding sun and oracle
    +
                     }
     290   -
          * products due to the acquisition and changes in product names, that based
    -  291   -
          * on given evidence we can add the related CPE entries to ensure a complete
    -  292   -
          * list of CVE entries.
    +
                 }
    +  291  14
             }
    +  292  9
         }
     293   -
          *
    +
     
     294   -
          * @param dependency the dependency being analyzed
    +
         /**
     295   -
          */
    +
          * There are some known CPE entries, specifically regarding sun and oracle
     296   -
         private void addFalseNegativeCPEs(Dependency dependency) {
    -  297  6
             final Iterator<Identifier> itr = dependency.getIdentifiers().iterator();
    -  298  13
             while (itr.hasNext()) {
    -  299  7
                 final Identifier i = itr.next();
    -  300  7
                 if ("cpe".equals(i.getType()) && i.getValue() != null
    +
          * products due to the acquisition and changes in product names, that based
    +  297   +
          * on given evidence we can add the related CPE entries to ensure a complete
    +  298   +
          * list of CVE entries.
    +  299   +
          *
    +  300   +
          * @param dependency the dependency being analyzed
     301   -
                         && (i.getValue().startsWith("cpe:/a:oracle:opensso:")
    +
          */
     302   +
         private void addFalseNegativeCPEs(Dependency dependency) {
    +  303  9
             final Iterator<Identifier> itr = dependency.getIdentifiers().iterator();
    +  304  22
             while (itr.hasNext()) {
    +  305  13
                 final Identifier i = itr.next();
    +  306  13
                 if ("cpe".equals(i.getType()) && i.getValue() != null
    +  307   +
                         && (i.getValue().startsWith("cpe:/a:oracle:opensso:")
    +  308  
                         || i.getValue().startsWith("cpe:/a:oracle:opensso_enterprise:")
    -  303   -
                         || i.getValue().startsWith("cpe:/a:sun:opensso_enterprise:")
    -  304   -
                         || i.getValue().startsWith("cpe:/a:sun:opensso:"))) {
    -  305  0
                     final String newCpe = String.format("cpe:/a:sun:opensso_enterprise:%s", i.getValue().substring(22));
    -  306  0
                     final String newCpe2 = String.format("cpe:/a:oracle:opensso_enterprise:%s", i.getValue().substring(22));
    -  307  0
                     final String newCpe3 = String.format("cpe:/a:sun:opensso:%s", i.getValue().substring(22));
    -  308  0
                     final String newCpe4 = String.format("cpe:/a:oracle:opensso:%s", i.getValue().substring(22));
     309   -
                     try {
    -  310  0
                         dependency.addIdentifier("cpe",
    -  311   -
                                 newCpe,
    -  312   -
                                 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe, "UTF-8")));
    -  313  0
                         dependency.addIdentifier("cpe",
    -  314   -
                                 newCpe2,
    +
                         || i.getValue().startsWith("cpe:/a:sun:opensso_enterprise:")
    +  310   +
                         || i.getValue().startsWith("cpe:/a:sun:opensso:"))) {
    +  311  0
                     final String newCpe = String.format("cpe:/a:sun:opensso_enterprise:%s", i.getValue().substring(22));
    +  312  0
                     final String newCpe2 = String.format("cpe:/a:oracle:opensso_enterprise:%s", i.getValue().substring(22));
    +  313  0
                     final String newCpe3 = String.format("cpe:/a:sun:opensso:%s", i.getValue().substring(22));
    +  314  0
                     final String newCpe4 = String.format("cpe:/a:oracle:opensso:%s", i.getValue().substring(22));
     315   -
                                 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe2, "UTF-8")));
    +
                     try {
     316  0
                         dependency.addIdentifier("cpe",
     317   -
                                 newCpe3,
    +
                                 newCpe,
     318   -
                                 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe3, "UTF-8")));
    +
                                 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe, "UTF-8")));
     319  0
                         dependency.addIdentifier("cpe",
     320   -
                                 newCpe4,
    +
                                 newCpe2,
     321   -
                                 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe4, "UTF-8")));
    -  322  0
                     } catch (UnsupportedEncodingException ex) {
    -  323  0
                         Logger.getLogger(FalsePositiveAnalyzer.class
    +
                                 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe2, "UTF-8")));
    +  322  0
                         dependency.addIdentifier("cpe",
    +  323   +
                                 newCpe3,
     324   -
                                 .getName()).log(Level.FINE, null, ex);
    -  325  0
                     }
    +
                                 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe3, "UTF-8")));
    +  325  0
                         dependency.addIdentifier("cpe",
     326   +
                                 newCpe4,
    +  327   +
                                 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe4, "UTF-8")));
    +  328  0
                     } catch (UnsupportedEncodingException ex) {
    +  329  0
                         Logger.getLogger(FalsePositiveAnalyzer.class
    +  330   +
                                 .getName()).log(Level.FINE, null, ex);
    +  331  0
                     }
    +  332  
                 }
    -  327  7
             }
    -  328  6
         }
    -  329   +  333  13
             }
    +  334  9
         }
    +  335  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FileNameAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FileNameAnalyzer.html index e6e92a0d3..ad7912a50 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FileNameAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FileNameAnalyzer.html @@ -126,7 +126,7 @@
          */
     56  
         public Set<String> getSupportedExtensions() {
    -  57  129
             return EXTENSIONS;
    +  57  130
             return EXTENSIONS;
     58  
         }
     59   @@ -164,7 +164,7 @@
          */
     76  
         public boolean supportsExtension(String extension) {
    -  77  1
             return true;
    +  77  4
             return true;
     78  
         }
     79   @@ -181,7 +181,7 @@
          */
     85  
         public AnalysisPhase getAnalysisPhase() {
    -  86  3
             return ANALYSIS_PHASE;
    +  86  4
             return ANALYSIS_PHASE;
     87  
         }
     88   @@ -212,27 +212,27 @@
     
     101  
             //strip any path information that may get added by ArchiveAnalyzer, etc.
    -  102  9
             final File f = new File(dependency.getFileName());
    -  103  9
             String fileName = f.getName();
    +  102  12
             final File f = new File(dependency.getFileName());
    +  103  12
             String fileName = f.getName();
     104  
     
     105  
             //remove file extension
    -  106  9
             final int pos = fileName.lastIndexOf(".");
    -  107  9
             if (pos > 0) {
    -  108  9
                 fileName = fileName.substring(0, pos);
    +  106  12
             final int pos = fileName.lastIndexOf(".");
    +  107  12
             if (pos > 0) {
    +  108  12
                 fileName = fileName.substring(0, pos);
     109  
             }
     110  
     
     111  
             //add version evidence
    -  112  9
             final DependencyVersion version = DependencyVersionUtil.parseVersion(fileName);
    -  113  9
             if (version != null) {
    -  114  8
                 dependency.getVersionEvidence().addEvidence("file", "name",
    +  112  12
             final DependencyVersion version = DependencyVersionUtil.parseVersion(fileName);
    +  113  12
             if (version != null) {
    +  114  10
                 dependency.getVersionEvidence().addEvidence("file", "name",
     115  
                         version.toString(), Evidence.Confidence.HIGHEST);
    -  116  8
                 dependency.getVersionEvidence().addEvidence("file", "name",
    +  116  10
                 dependency.getVersionEvidence().addEvidence("file", "name",
     117  
                         fileName, Evidence.Confidence.MEDIUM);
     118   @@ -241,28 +241,28 @@
     
     120  
             //add as vendor and product evidence
    -  121  9
             if (fileName.contains("-")) {
    -  122  8
                 dependency.getProductEvidence().addEvidence("file", "name",
    +  121  12
             if (fileName.contains("-")) {
    +  122  10
                 dependency.getProductEvidence().addEvidence("file", "name",
     123  
                         fileName, Evidence.Confidence.HIGHEST);
    -  124  8
                 dependency.getVendorEvidence().addEvidence("file", "name",
    +  124  10
                 dependency.getVendorEvidence().addEvidence("file", "name",
     125  
                         fileName, Evidence.Confidence.HIGHEST);
     126  
             } else {
    -  127  1
                 dependency.getProductEvidence().addEvidence("file", "name",
    +  127  2
                 dependency.getProductEvidence().addEvidence("file", "name",
     128  
                         fileName, Evidence.Confidence.HIGH);
    -  129  1
                 dependency.getVendorEvidence().addEvidence("file", "name",
    +  129  2
                 dependency.getVendorEvidence().addEvidence("file", "name",
     130  
                         fileName, Evidence.Confidence.HIGH);
     131  
             }
    -  132  9
         }
    +  132  12
         }
     133  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.HintAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.HintAnalyzer.html index 14a63e883..58dfce4c9 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.HintAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.HintAnalyzer.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    HintAnalyzer
    87%
    29/33
    92%
    13/14
    2.4
    HintAnalyzer
    90%
    30/33
    92%
    13/14
    2.4
     
    @@ -120,7 +120,7 @@
          */
     53  
         public Set<String> getSupportedExtensions() {
    -  54  128
             return EXTENSIONS;
    +  54  129
             return EXTENSIONS;
     55  
         }
     56   @@ -158,7 +158,7 @@
          */
     73  
         public boolean supportsExtension(String extension) {
    -  74  0
             return true;
    +  74  3
             return true;
     75  
         }
     76   @@ -175,7 +175,7 @@
          */
     82  
         public AnalysisPhase getAnalysisPhase() {
    -  83  2
             return ANALYSIS_PHASE;
    +  83  3
             return ANALYSIS_PHASE;
     84  
         }
     85   @@ -204,7 +204,7 @@
         @Override
     97  
         public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
    -  98  6
             final Evidence springTest1 = new Evidence("Manifest",
    +  98  9
             final Evidence springTest1 = new Evidence("Manifest",
     99  
                     "Implementation-Title",
     100   @@ -213,7 +213,7 @@
                     Evidence.Confidence.HIGH);
     102  
     
    -  103  6
             final Evidence springTest2 = new Evidence("Manifest",
    +  103  9
             final Evidence springTest2 = new Evidence("Manifest",
     104  
                     "Implementation-Title",
     105   @@ -222,7 +222,7 @@
                     Evidence.Confidence.HIGH);
     107  
     
    -  108  6
             final Evidence springTest3 = new Evidence("Manifest",
    +  108  9
             final Evidence springTest3 = new Evidence("Manifest",
     109  
                     "Bundle-Vendor",
     110   @@ -233,8 +233,8 @@
     
     113  
     
    -  114  6
             Set<Evidence> evidence = dependency.getProductEvidence().getEvidence();
    -  115  6
             if (evidence.contains(springTest1) || evidence.contains(springTest2)) {
    +  114  9
             Set<Evidence> evidence = dependency.getProductEvidence().getEvidence();
    +  115  9
             if (evidence.contains(springTest1) || evidence.contains(springTest2)) {
     116  2
                 dependency.getProductEvidence().addEvidence("hint analyzer", "product", "springsource_spring_framework", Evidence.Confidence.HIGH);
     117  2
                 dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "SpringSource", Evidence.Confidence.HIGH);
     118  2
                 dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "vmware", Evidence.Confidence.HIGH);
    @@ -242,17 +242,17 @@
             }
     120  
     
    -  121  6
             evidence = dependency.getVendorEvidence().getEvidence();
    -  122  6
             if (evidence.contains(springTest3)) {
    +  121  9
             evidence = dependency.getVendorEvidence().getEvidence();
    +  122  9
             if (evidence.contains(springTest3)) {
     123  2
                 dependency.getProductEvidence().addEvidence("hint analyzer", "product", "springsource_spring_framework", Evidence.Confidence.HIGH);
     124  2
                 dependency.getVendorEvidence().addEvidence("hint analyzer", "vendor", "vmware", Evidence.Confidence.HIGH);
     125  
             }
    -  126  6
             final Iterator<Evidence> itr = dependency.getVendorEvidence().iterator();
    -  127  6
             final ArrayList<Evidence> newEntries = new ArrayList<Evidence>();
    -  128  65
             while (itr.hasNext()) {
    -  129  59
                 final Evidence e = itr.next();
    -  130  59
                 if ("sun".equalsIgnoreCase(e.getValue(false))) {
    +  126  9
             final Iterator<Evidence> itr = dependency.getVendorEvidence().iterator();
    +  127  9
             final ArrayList<Evidence> newEntries = new ArrayList<Evidence>();
    +  128  93
             while (itr.hasNext()) {
    +  129  84
                 final Evidence e = itr.next();
    +  130  84
                 if ("sun".equalsIgnoreCase(e.getValue(false))) {
     131  2
                     final Evidence newEvidence = new Evidence(e.getSource() + " (hint)", e.getName(), "oracle", e.getConfidence());
     132  2
                     newEntries.add(newEvidence);
     133  2
                 } else if ("oracle".equalsIgnoreCase(e.getValue(false))) {
    @@ -260,8 +260,8 @@  135  0
                     newEntries.add(newEvidence);
     136  
                 }
    -  137  59
             }
    -  138  6
             for (Evidence e : newEntries) {
    +  137  84
             }
    +  138  9
             for (Evidence e : newEntries) {
     139  2
                 dependency.getVendorEvidence().addEvidence(e);
     140  
             }
    @@ -269,11 +269,11 @@
     
     142  
     
    -  143  6
         }
    +  143  9
         }
     144  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JarAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JarAnalyzer.html index beffa3d0f..b33313dee 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JarAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JarAnalyzer.html @@ -12,8 +12,8 @@
     
    - - + +
    Classes in this File Line Coverage Branch Coverage Complexity
    JarAnalyzer
    80%
    320/399
    66%
    164/248
    6.103
    JarAnalyzer$ClassNameInformation
    80%
    17/21
    90%
    9/10
    6.103
    JarAnalyzer
    80%
    324/403
    66%
    169/256
    6.241
    JarAnalyzer$ClassNameInformation
    80%
    17/21
    90%
    9/10
    6.241
     
    @@ -342,7 +342,7 @@
          */
     169  
         public Set<String> getSupportedExtensions() {
    -  170  135
             return EXTENSIONS;
    +  170  137
             return EXTENSIONS;
     171  
         }
     172   @@ -380,7 +380,7 @@
          */
     189  
         public boolean supportsExtension(String extension) {
    -  190  130
             return EXTENSIONS.contains(extension);
    +  190  133
             return EXTENSIONS.contains(extension);
     191  
         }
     192   @@ -397,7 +397,7 @@
          */
     198  
         public AnalysisPhase getAnalysisPhase() {
    -  199  2
             return ANALYSIS_PHASE;
    +  199  3
             return ANALYSIS_PHASE;
     200  
         }
     201   @@ -428,9 +428,9 @@
         public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
     214  
             try {
    -  215  13
                 final ArrayList<ClassNameInformation> classNames = collectClassNames(dependency);
    -  216  13
                 final String fileName = dependency.getFileName().toLowerCase();
    -  217  13
                 if (classNames.isEmpty()
    +  215  16
                 final ArrayList<ClassNameInformation> classNames = collectClassNames(dependency);
    +  216  16
                 final String fileName = dependency.getFileName().toLowerCase();
    +  217  16
                 if (classNames.isEmpty()
     218  
                         && (fileName.endsWith("-sources.jar")
     219   @@ -442,14 +442,14 @@  222  0
                     engine.getDependencies().remove(dependency);
     223  
                 }
    -  224  13
                 final boolean hasManifest = parseManifest(dependency, classNames);
    -  225  13
                 final boolean hasPOM = analyzePOM(dependency, classNames);
    -  226  13
                 final boolean addPackagesAsEvidence = !(hasManifest && hasPOM);
    -  227  13
                 analyzePackageNames(classNames, dependency, addPackagesAsEvidence);
    +  224  16
                 final boolean hasManifest = parseManifest(dependency, classNames);
    +  225  16
                 final boolean hasPOM = analyzePOM(dependency, classNames);
    +  226  16
                 final boolean addPackagesAsEvidence = !(hasManifest && hasPOM);
    +  227  16
                 analyzePackageNames(classNames, dependency, addPackagesAsEvidence);
     228  0
             } catch (IOException ex) {
     229  0
                 throw new AnalysisException("Exception occurred reading the JAR file.", ex);
    -  230  13
             }
    -  231  13
         }
    +  230  16
             }
    +  231  16
         }
     232  
     
     233   @@ -476,12 +476,12 @@
          */
     244  
         protected boolean analyzePOM(Dependency dependency, ArrayList<ClassNameInformation> classes) throws AnalysisException {
    -  245  13
             boolean foundSomething = false;
    +  245  16
             boolean foundSomething = false;
     246  
             final JarFile jar;
     247  
             try {
    -  248  13
                 jar = new JarFile(dependency.getActualFilePath());
    +  248  16
                 jar = new JarFile(dependency.getActualFilePath());
     249  0
             } catch (IOException ex) {
     250  0
                 final String msg = String.format("Unable to read JarFile '%s'.", dependency.getActualFilePath());
     251  0
                 final AnalysisException ax = new AnalysisException(msg, ex);
    @@ -489,12 +489,12 @@  253  0
                 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.WARNING, msg);
     254  0
                 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINE, null, ex);
     255  0
                 return false;
    -  256  13
             }
    +  256  16
             }
     257  
             List<String> pomEntries;
     258  
             try {
    -  259  13
                 pomEntries = retrievePomListing(jar);
    +  259  16
                 pomEntries = retrievePomListing(jar);
     260  0
             } catch (IOException ex) {
     261  0
                 final String msg = String.format("Unable to read Jar file entries in '%s'.", dependency.getActualFilePath());
     262  0
                 final AnalysisException ax = new AnalysisException(msg, ex);
    @@ -502,27 +502,27 @@  264  0
                 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.WARNING, msg);
     265  0
                 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.INFO, msg, ex);
     266  0
                 return false;
    -  267  13
             }
    -  268  13
             if (pomEntries.isEmpty()) {
    -  269  8
                 return false;
    +  267  16
             }
    +  268  16
             if (pomEntries.isEmpty()) {
    +  269  9
                 return false;
     270  
             }
    -  271  5
             if (pomEntries.size() > 1) { //need to sort out which pom we will use
    +  271  7
             if (pomEntries.size() > 1) { //need to sort out which pom we will use
     272  0
                 pomEntries = filterPomEntries(pomEntries, classes);
     273  
             }
    -  274  5
             for (String path : pomEntries) {
    -  275  5
                 Properties pomProperties = null;
    +  274  7
             for (String path : pomEntries) {
    +  275  7
                 Properties pomProperties = null;
     276  
                 try {
    -  277  5
                     pomProperties = retrievePomProperties(path, jar);
    +  277  7
                     pomProperties = retrievePomProperties(path, jar);
     278  0
                 } catch (IOException ex) {
     279  0
                     Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINEST, "ignore this, failed reading a non-existent pom.properties", ex);
    -  280  5
                 }
    -  281  5
                 Model pom = null;
    +  280  7
                 }
    +  281  7
                 Model pom = null;
     282  
                 try {
    -  283  5
                     pom = retrievePom(path, jar);
    +  283  7
                     pom = retrievePom(path, jar);
     284  0
                 } catch (JAXBException ex) {
     285  0
                     final String msg = String.format("Unable to parse POM '%s' in '%s'",
     286   @@ -535,10 +535,10 @@  292  
                             path, dependency.getFilePath());
     293  0
                     Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINE, msg, ex);
    -  294  5
                 }
    -  295  5
                 foundSomething = setPomEvidence(dependency, pom, pomProperties, classes) || foundSomething;
    -  296  5
             }
    -  297  5
             return foundSomething;
    +  294  7
                 }
    +  295  7
                 foundSomething = setPomEvidence(dependency, pom, pomProperties, classes) || foundSomething;
    +  296  7
             }
    +  297  7
             return foundSomething;
     298  
         }
     299   @@ -569,16 +569,16 @@
                 justification = "The reader is closed by closing the zipEntry")
     312  
         private Properties retrievePomProperties(String path, final JarFile jar) throws IOException {
    -  313  5
             Properties pomProperties = null;
    -  314  5
             final String propPath = path.substring(0, path.length() - 7) + "pom.properies";
    -  315  5
             final ZipEntry propEntry = jar.getEntry(propPath);
    -  316  5
             if (propEntry != null) {
    +  313  7
             Properties pomProperties = null;
    +  314  7
             final String propPath = path.substring(0, path.length() - 7) + "pom.properies";
    +  315  7
             final ZipEntry propEntry = jar.getEntry(propPath);
    +  316  7
             if (propEntry != null) {
     317  0
                 final Reader reader = new InputStreamReader(jar.getInputStream(propEntry), "UTF-8");
     318  0
                 pomProperties = new Properties();
     319  0
                 pomProperties.load(reader);
     320  
             }
    -  321  5
             return pomProperties;
    +  321  7
             return pomProperties;
     322  
         }
     323   @@ -601,17 +601,17 @@
          */
     332  
         private List<String> retrievePomListing(final JarFile jar) throws IOException {
    -  333  13
             final List<String> pomEntries = new ArrayList<String>();
    -  334  13
             final Enumeration<JarEntry> entries = jar.entries();
    -  335  5523
             while (entries.hasMoreElements()) {
    -  336  5510
                 final JarEntry entry = entries.nextElement();
    -  337  5510
                 final String entryName = (new File(entry.getName())).getName().toLowerCase();
    -  338  5510
                 if (!entry.isDirectory() && "pom.xml".equals(entryName)) {
    -  339  5
                     pomEntries.add(entry.getName());
    +  333  16
             final List<String> pomEntries = new ArrayList<String>();
    +  334  16
             final Enumeration<JarEntry> entries = jar.entries();
    +  335  6838
             while (entries.hasMoreElements()) {
    +  336  6822
                 final JarEntry entry = entries.nextElement();
    +  337  6822
                 final String entryName = (new File(entry.getName())).getName().toLowerCase();
    +  338  6822
                 if (!entry.isDirectory() && "pom.xml".equals(entryName)) {
    +  339  7
                     pomEntries.add(entry.getName());
     340  
                 }
    -  341  5510
             }
    -  342  13
             return pomEntries;
    +  341  6822
             }
    +  342  16
             return pomEntries;
     343  
         }
     344   @@ -638,30 +638,30 @@
          */
     355  
         private Model retrievePom(String path, JarFile jar) throws JAXBException, IOException {
    -  356  5
             final ZipEntry entry = jar.getEntry(path);
    -  357  5
             if (entry != null) { //should never be null
    -  358  5
                 Model m = null;
    +  356  7
             final ZipEntry entry = jar.getEntry(path);
    +  357  7
             if (entry != null) { //should never be null
    +  358  7
                 Model m = null;
     359  
                 try {
    -  360  5
                     final XMLFilter filter = new MavenNamespaceFilter();
    -  361  5
                     final SAXParserFactory spf = SAXParserFactory.newInstance();
    -  362  5
                     final SAXParser sp = spf.newSAXParser();
    -  363  5
                     final XMLReader xr = sp.getXMLReader();
    -  364  5
                     filter.setParent(xr);
    -  365  5
                     final NonClosingStream stream = new NonClosingStream(jar.getInputStream(entry));
    -  366  5
                     final InputStreamReader reader = new InputStreamReader(stream, "UTF-8");
    -  367  5
                     final InputSource xml = new InputSource(reader);
    -  368  5
                     final SAXSource source = new SAXSource(filter, xml);
    -  369  5
                     final JAXBElement<Model> el = pomUnmarshaller.unmarshal(source, Model.class);
    -  370  5
                     m = el.getValue();
    +  360  7
                     final XMLFilter filter = new MavenNamespaceFilter();
    +  361  7
                     final SAXParserFactory spf = SAXParserFactory.newInstance();
    +  362  7
                     final SAXParser sp = spf.newSAXParser();
    +  363  7
                     final XMLReader xr = sp.getXMLReader();
    +  364  7
                     filter.setParent(xr);
    +  365  7
                     final NonClosingStream stream = new NonClosingStream(jar.getInputStream(entry));
    +  366  7
                     final InputStreamReader reader = new InputStreamReader(stream, "UTF-8");
    +  367  7
                     final InputSource xml = new InputSource(reader);
    +  368  7
                     final SAXSource source = new SAXSource(filter, xml);
    +  369  7
                     final JAXBElement<Model> el = pomUnmarshaller.unmarshal(source, Model.class);
    +  370  7
                     m = el.getValue();
     371  0
                 } catch (ParserConfigurationException ex) {
     372  0
                     final String msg = String.format("Unable to parse pom '%s' in jar '%s'", path, jar.getName());
     373  0
                     Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINE, msg, ex);
     374  0
                 } catch (SAXException ex) {
     375  0
                     final String msg = String.format("Unable to parse pom '%s' in jar '%s'", path, jar.getName());
     376  0
                     Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINE, msg, ex);
    -  377  5
                 }
    -  378  5
                 return m;
    +  377  7
                 }
    +  378  7
                 return m;
     379  
             }
     380  0
             return null;
    @@ -693,49 +693,49 @@
          */
     394  
         private boolean setPomEvidence(Dependency dependency, Model pom, Properties pomProperties, ArrayList<ClassNameInformation> classes) {
    -  395  5
             boolean foundSomething = false;
    -  396  5
             if (pom == null) {
    +  395  7
             boolean foundSomething = false;
    +  396  7
             if (pom == null) {
     397  0
                 return foundSomething;
     398  
             }
    -  399  5
             String groupid = interpolateString(pom.getGroupId(), pomProperties);
    -  400  5
             if (groupid != null && !groupid.isEmpty()) {
    -  401  3
                 if (groupid.startsWith("org.") || groupid.startsWith("com.")) {
    -  402  2
                     groupid = groupid.substring(4);
    +  399  7
             String groupid = interpolateString(pom.getGroupId(), pomProperties);
    +  400  7
             if (groupid != null && !groupid.isEmpty()) {
    +  401  4
                 if (groupid.startsWith("org.") || groupid.startsWith("com.")) {
    +  402  3
                     groupid = groupid.substring(4);
     403  
                 }
    -  404  3
                 foundSomething = true;
    -  405  3
                 dependency.getVendorEvidence().addEvidence("pom", "groupid", groupid, Evidence.Confidence.HIGH);
    -  406  3
                 dependency.getProductEvidence().addEvidence("pom", "groupid", groupid, Evidence.Confidence.LOW);
    -  407  3
                 addMatchingValues(classes, groupid, dependency.getVendorEvidence());
    -  408  3
                 addMatchingValues(classes, groupid, dependency.getProductEvidence());
    +  404  4
                 foundSomething = true;
    +  405  4
                 dependency.getVendorEvidence().addEvidence("pom", "groupid", groupid, Evidence.Confidence.HIGH);
    +  406  4
                 dependency.getProductEvidence().addEvidence("pom", "groupid", groupid, Evidence.Confidence.LOW);
    +  407  4
                 addMatchingValues(classes, groupid, dependency.getVendorEvidence());
    +  408  4
                 addMatchingValues(classes, groupid, dependency.getProductEvidence());
     409  
             }
    -  410  5
             String artifactid = interpolateString(pom.getArtifactId(), pomProperties);
    -  411  5
             if (artifactid != null && !artifactid.isEmpty()) {
    -  412  5
                 if (artifactid.startsWith("org.") || artifactid.startsWith("com.")) {
    +  410  7
             String artifactid = interpolateString(pom.getArtifactId(), pomProperties);
    +  411  7
             if (artifactid != null && !artifactid.isEmpty()) {
    +  412  7
                 if (artifactid.startsWith("org.") || artifactid.startsWith("com.")) {
     413  0
                     artifactid = artifactid.substring(4);
     414  
                 }
    -  415  5
                 foundSomething = true;
    -  416  5
                 dependency.getProductEvidence().addEvidence("pom", "artifactid", artifactid, Evidence.Confidence.HIGH);
    -  417  5
                 dependency.getVendorEvidence().addEvidence("pom", "artifactid", artifactid, Evidence.Confidence.LOW);
    -  418  5
                 addMatchingValues(classes, artifactid, dependency.getVendorEvidence());
    -  419  5
                 addMatchingValues(classes, artifactid, dependency.getProductEvidence());
    +  415  7
                 foundSomething = true;
    +  416  7
                 dependency.getProductEvidence().addEvidence("pom", "artifactid", artifactid, Evidence.Confidence.HIGH);
    +  417  7
                 dependency.getVendorEvidence().addEvidence("pom", "artifactid", artifactid, Evidence.Confidence.LOW);
    +  418  7
                 addMatchingValues(classes, artifactid, dependency.getVendorEvidence());
    +  419  7
                 addMatchingValues(classes, artifactid, dependency.getProductEvidence());
     420  
             }
     421  
             //version
    -  422  5
             final String version = interpolateString(pom.getVersion(), pomProperties);
    -  423  5
             if (version != null && !version.isEmpty()) {
    +  422  7
             final String version = interpolateString(pom.getVersion(), pomProperties);
    +  423  7
             if (version != null && !version.isEmpty()) {
     424  2
                 foundSomething = true;
     425  2
                 dependency.getVersionEvidence().addEvidence("pom", "version", version, Evidence.Confidence.HIGHEST);
     426  
             }
     427  
             // org name
    -  428  5
             final Organization org = pom.getOrganization();
    -  429  5
             if (org != null && org.getName() != null) {
    +  428  7
             final Organization org = pom.getOrganization();
    +  429  7
             if (org != null && org.getName() != null) {
     430  0
                 foundSomething = true;
     431  0
                 final String orgName = interpolateString(org.getName(), pomProperties);
     432  0
                 if (orgName != null && !orgName.isEmpty()) {
    @@ -747,26 +747,26 @@
             }
     437  
             //pom name
    -  438  5
             final String pomName = interpolateString(pom.getName(), pomProperties);
    -  439  5
             if (pomName != null && !pomName.isEmpty()) {
    -  440  5
                 foundSomething = true;
    -  441  5
                 dependency.getProductEvidence().addEvidence("pom", "name", pomName, Evidence.Confidence.HIGH);
    -  442  5
                 dependency.getVendorEvidence().addEvidence("pom", "name", pomName, Evidence.Confidence.HIGH);
    -  443  5
                 addMatchingValues(classes, pomName, dependency.getVendorEvidence());
    -  444  5
                 addMatchingValues(classes, pomName, dependency.getProductEvidence());
    +  438  7
             final String pomName = interpolateString(pom.getName(), pomProperties);
    +  439  7
             if (pomName != null && !pomName.isEmpty()) {
    +  440  7
                 foundSomething = true;
    +  441  7
                 dependency.getProductEvidence().addEvidence("pom", "name", pomName, Evidence.Confidence.HIGH);
    +  442  7
                 dependency.getVendorEvidence().addEvidence("pom", "name", pomName, Evidence.Confidence.HIGH);
    +  443  7
                 addMatchingValues(classes, pomName, dependency.getVendorEvidence());
    +  444  7
                 addMatchingValues(classes, pomName, dependency.getProductEvidence());
     445  
             }
     446  
     
     447  
             //Description
    -  448  5
             if (pom.getDescription() != null) {
    -  449  2
                 foundSomething = true;
    -  450  2
                 final String description = interpolateString(pom.getDescription(), pomProperties);
    -  451  2
                 if (description != null && !description.isEmpty()) {
    -  452  2
                     addDescription(dependency, description, "pom", "description");
    -  453  2
                     addMatchingValues(classes, description, dependency.getVendorEvidence());
    -  454  2
                     addMatchingValues(classes, description, dependency.getProductEvidence());
    +  448  7
             if (pom.getDescription() != null) {
    +  449  3
                 foundSomething = true;
    +  450  3
                 final String description = interpolateString(pom.getDescription(), pomProperties);
    +  451  3
                 if (description != null && !description.isEmpty()) {
    +  452  3
                     addDescription(dependency, description, "pom", "description");
    +  453  3
                     addMatchingValues(classes, description, dependency.getVendorEvidence());
    +  454  3
                     addMatchingValues(classes, description, dependency.getProductEvidence());
     455  
                 }
     456   @@ -775,7 +775,7 @@
     
     458  
             //license
    -  459  5
             if (pom.getLicenses() != null) {
    +  459  7
             if (pom.getLicenses() != null) {
     460  1
                 String license = null;
     461  1
                 for (License lic : pom.getLicenses().getLicense()) {
     462  1
                     String tmp = null;
    @@ -815,7 +815,7 @@
                 }
     488  
             }
    -  489  5
             return foundSomething;
    +  489  7
             return foundSomething;
     490  
         }
     491   @@ -846,41 +846,41 @@
         protected void analyzePackageNames(ArrayList<ClassNameInformation> classNames,
     504  
                 Dependency dependency, boolean addPackagesAsEvidence) {
    -  505  13
             final HashMap<String, Integer> vendorIdentifiers = new HashMap<String, Integer>();
    -  506  13
             final HashMap<String, Integer> productIdentifiers = new HashMap<String, Integer>();
    -  507  13
             analyzeFullyQualifiedClassNames(classNames, vendorIdentifiers, productIdentifiers);
    +  505  16
             final HashMap<String, Integer> vendorIdentifiers = new HashMap<String, Integer>();
    +  506  16
             final HashMap<String, Integer> productIdentifiers = new HashMap<String, Integer>();
    +  507  16
             analyzeFullyQualifiedClassNames(classNames, vendorIdentifiers, productIdentifiers);
     508  
     
    -  509  13
             final int classCount = classNames.size();
    -  510  13
             final EvidenceCollection vendor = dependency.getVendorEvidence();
    -  511  13
             final EvidenceCollection product = dependency.getProductEvidence();
    +  509  16
             final int classCount = classNames.size();
    +  510  16
             final EvidenceCollection vendor = dependency.getVendorEvidence();
    +  511  16
             final EvidenceCollection product = dependency.getProductEvidence();
     512  
     
    -  513  13
             for (Map.Entry<String, Integer> entry : vendorIdentifiers.entrySet()) {
    -  514  134
                 final float ratio = entry.getValue() / (float) classCount;
    -  515  134
                 if (ratio > 0.5) {
    +  513  16
             for (Map.Entry<String, Integer> entry : vendorIdentifiers.entrySet()) {
    +  514  160
                 final float ratio = entry.getValue() / (float) classCount;
    +  515  160
                 if (ratio > 0.5) {
     516  
                     //TODO remove weighting
    -  517  26
                     vendor.addWeighting(entry.getKey());
    -  518  26
                     if (addPackagesAsEvidence) {
    -  519  17
                         vendor.addEvidence("jar", "package", entry.getKey(), Evidence.Confidence.LOW);
    +  517  32
                     vendor.addWeighting(entry.getKey());
    +  518  32
                     if (addPackagesAsEvidence && entry.getKey().length() > 1) {
    +  519  18
                         vendor.addEvidence("jar", "package", entry.getKey(), Evidence.Confidence.LOW);
     520  
                     }
     521  
                 }
    -  522  134
             }
    -  523  13
             for (Map.Entry<String, Integer> entry : productIdentifiers.entrySet()) {
    -  524  2990
                 final float ratio = entry.getValue() / (float) classCount;
    -  525  2990
                 if (ratio > 0.5) {
    -  526  15
                     product.addWeighting(entry.getKey());
    -  527  15
                     if (addPackagesAsEvidence) {
    +  522  160
             }
    +  523  16
             for (Map.Entry<String, Integer> entry : productIdentifiers.entrySet()) {
    +  524  3476
                 final float ratio = entry.getValue() / (float) classCount;
    +  525  3476
                 if (ratio > 0.5) {
    +  526  19
                     product.addWeighting(entry.getKey());
    +  527  19
                     if (addPackagesAsEvidence && entry.getKey().length() > 1) {
     528  9
                         product.addEvidence("jar", "package", entry.getKey(), Evidence.Confidence.LOW);
     529  
                     }
     530  
                 }
    -  531  2990
             }
    -  532  13
         }
    +  531  3476
             }
    +  532  16
         }
     533  
     
     534   @@ -913,15 +913,15 @@
          */
     548  
         protected boolean parseManifest(Dependency dependency, ArrayList<ClassNameInformation> classInformation) throws IOException {
    -  549  13
             boolean foundSomething = false;
    -  550  13
             JarFile jar = null;
    +  549  16
             boolean foundSomething = false;
    +  550  16
             JarFile jar = null;
     551  
             try {
    -  552  13
                 jar = new JarFile(dependency.getActualFilePath());
    +  552  16
                 jar = new JarFile(dependency.getActualFilePath());
     553  
     
    -  554  13
                 final Manifest manifest = jar.getManifest();
    -  555  13
                 if (manifest == null) {
    +  554  16
                 final Manifest manifest = jar.getManifest();
    +  555  16
                 if (manifest == null) {
     556  
                     //don't log this for javadoc or sources jar files
     557  0
                     if (!dependency.getFileName().toLowerCase().endsWith("-sources.jar")
    @@ -941,60 +941,60 @@  565  0
                     return false;
     566  
                 }
    -  567  13
                 final Attributes atts = manifest.getMainAttributes();
    +  567  16
                 final Attributes atts = manifest.getMainAttributes();
     568  
     
    -  569  13
                 final EvidenceCollection vendorEvidence = dependency.getVendorEvidence();
    -  570  13
                 final EvidenceCollection productEvidence = dependency.getProductEvidence();
    -  571  13
                 final EvidenceCollection versionEvidence = dependency.getVersionEvidence();
    +  569  16
                 final EvidenceCollection vendorEvidence = dependency.getVendorEvidence();
    +  570  16
                 final EvidenceCollection productEvidence = dependency.getProductEvidence();
    +  571  16
                 final EvidenceCollection versionEvidence = dependency.getVersionEvidence();
     572  
     
    -  573  13
                 final String source = "Manifest";
    +  573  16
                 final String source = "Manifest";
     574  
     
    -  575  13
                 for (Entry<Object, Object> entry : atts.entrySet()) {
    -  576  194
                     String key = entry.getKey().toString();
    -  577  194
                     String value = atts.getValue(key);
    -  578  194
                     if (HTML_DETECTION_PATTERN.matcher(value).find()) {
    +  575  16
                 for (Entry<Object, Object> entry : atts.entrySet()) {
    +  576  236
                     String key = entry.getKey().toString();
    +  577  236
                     String value = atts.getValue(key);
    +  578  236
                     if (HTML_DETECTION_PATTERN.matcher(value).find()) {
     579  0
                         value = Jsoup.parse(value).text();
     580  
                     }
    -  581  194
                     if (IGNORE_VALUES.contains(value)) {
    +  581  236
                     if (IGNORE_VALUES.contains(value)) {
     582  0
                         continue;
    -  583  194
                     } else if (key.equals(Attributes.Name.IMPLEMENTATION_TITLE.toString())) {
    +  583  236
                     } else if (key.equalsIgnoreCase(Attributes.Name.IMPLEMENTATION_TITLE.toString())) {
     584  7
                         foundSomething = true;
     585  7
                         productEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
     586  7
                         addMatchingValues(classInformation, value, productEvidence);
    -  587  187
                     } else if (key.equals(Attributes.Name.IMPLEMENTATION_VERSION.toString())) {
    -  588  9
                         foundSomething = true;
    -  589  9
                         versionEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
    -  590  178
                     } else if (key.equals(Attributes.Name.IMPLEMENTATION_VENDOR.toString())) {
    -  591  5
                         foundSomething = true;
    -  592  5
                         vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
    -  593  5
                         addMatchingValues(classInformation, value, vendorEvidence);
    -  594  173
                     } else if (key.equals(Attributes.Name.IMPLEMENTATION_VENDOR_ID.toString())) {
    +  587  229
                     } else if (key.equalsIgnoreCase(Attributes.Name.IMPLEMENTATION_VERSION.toString())) {
    +  588  10
                         foundSomething = true;
    +  589  10
                         versionEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
    +  590  219
                     } else if (key.equalsIgnoreCase(Attributes.Name.IMPLEMENTATION_VENDOR.toString())) {
    +  591  6
                         foundSomething = true;
    +  592  6
                         vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
    +  593  6
                         addMatchingValues(classInformation, value, vendorEvidence);
    +  594  213
                     } else if (key.equalsIgnoreCase(Attributes.Name.IMPLEMENTATION_VENDOR_ID.toString())) {
     595  3
                         foundSomething = true;
     596  3
                         vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
     597  3
                         addMatchingValues(classInformation, value, vendorEvidence);
    -  598  170
                     } else if (key.equals(BUNDLE_DESCRIPTION)) {
    -  599  6
                         foundSomething = true;
    -  600  6
                         addDescription(dependency, value, "manifest", key);
    +  598  210
                     } else if (key.equalsIgnoreCase(BUNDLE_DESCRIPTION)) {
    +  599  7
                         foundSomething = true;
    +  600  7
                         addDescription(dependency, value, "manifest", key);
     601  
                         //productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    -  602  6
                         addMatchingValues(classInformation, value, productEvidence);
    -  603  164
                     } else if (key.equals(BUNDLE_NAME)) {
    -  604  8
                         foundSomething = true;
    -  605  8
                         productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    -  606  8
                         addMatchingValues(classInformation, value, productEvidence);
    -  607  156
                     } else if (key.equals(BUNDLE_VENDOR)) {
    -  608  6
                         foundSomething = true;
    -  609  6
                         vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
    -  610  6
                         addMatchingValues(classInformation, value, vendorEvidence);
    -  611  150
                     } else if (key.equals(BUNDLE_VERSION)) {
    -  612  8
                         foundSomething = true;
    -  613  8
                         versionEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
    -  614  142
                     } else if (key.equals(Attributes.Name.MAIN_CLASS.toString())) {
    -  615  4
                         continue;
    +  602  7
                         addMatchingValues(classInformation, value, productEvidence);
    +  603  203
                     } else if (key.equalsIgnoreCase(BUNDLE_NAME)) {
    +  604  10
                         foundSomething = true;
    +  605  10
                         productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    +  606  10
                         addMatchingValues(classInformation, value, productEvidence);
    +  607  193
                     } else if (key.equalsIgnoreCase(BUNDLE_VENDOR)) {
    +  608  8
                         foundSomething = true;
    +  609  8
                         vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
    +  610  8
                         addMatchingValues(classInformation, value, vendorEvidence);
    +  611  185
                     } else if (key.equalsIgnoreCase(BUNDLE_VERSION)) {
    +  612  10
                         foundSomething = true;
    +  613  10
                         versionEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH);
    +  614  175
                     } else if (key.equalsIgnoreCase(Attributes.Name.MAIN_CLASS.toString())) {
    +  615  5
                         continue;
     616  
                         //skipping main class as if this has important information to add
     617   @@ -1013,10 +1013,10 @@
     //                    addMatchingValues(classInformation, value, productEvidence);
     624  
                     } else {
    -  625  138
                         key = key.toLowerCase();
    +  625  170
                         key = key.toLowerCase();
     626  
     
    -  627  138
                         if (!IGNORE_KEYS.contains(key)
    +  627  170
                         if (!IGNORE_KEYS.contains(key)
     628  
                                 && !key.endsWith("jdk")
     629   @@ -1037,793 +1037,807 @@
                                 && !isPackage(key, value)) {
     637  
     
    -  638  42
                             foundSomething = true;
    -  639  42
                             if (key.contains("version")) {
    -  640  7
                                 versionEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    -  641  35
                             } else if (key.contains("title")) {
    -  642  5
                                 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    -  643  5
                                 addMatchingValues(classInformation, value, productEvidence);
    -  644  30
                             } else if (key.contains("vendor")) {
    -  645  3
                                 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    -  646  3
                                 addMatchingValues(classInformation, value, vendorEvidence);
    -  647  27
                             } else if (key.contains("name")) {
    -  648  9
                                 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    -  649  9
                                 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    -  650  9
                                 addMatchingValues(classInformation, value, vendorEvidence);
    -  651  9
                                 addMatchingValues(classInformation, value, productEvidence);
    -  652  18
                             } else if (key.contains("license")) {
    -  653  4
                                 addLicense(dependency, value);
    -  654   -
                             } else {
    -  655  14
                                 if (key.contains("description")) {
    -  656  0
                                     addDescription(dependency, value, "manifest", key);
    -  657   +  638  51
                             foundSomething = true;
    +  639  51
                             if (key.contains("version")) {
    +  640  8
                                 if (key.contains("specification")) {
    +  641  6
                                     versionEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW);
    +  642  
                                 } else {
    -  658  14
                                     productEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW);
    -  659  14
                                     vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW);
    -  660  14
                                     addMatchingValues(classInformation, value, vendorEvidence);
    -  661  14
                                     addMatchingValues(classInformation, value, productEvidence);
    -  662  14
                                     if (value.matches(".*\\d.*")) {
    -  663  6
                                         final StringTokenizer tokenizer = new StringTokenizer(value, " ");
    -  664  30
                                         while (tokenizer.hasMoreElements()) {
    -  665  24
                                             final String s = tokenizer.nextToken();
    -  666  24
                                             if (s.matches("^[0-9.]+$")) {
    -  667  0
                                                 versionEvidence.addEvidence(source, key, s, Evidence.Confidence.LOW);
    -  668   -
                                             }
    -  669  24
                                         }
    -  670   -
                                     }
    -  671   +  643  2
                                     versionEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    +  644  
                                 }
    -  672   -
                             }
    -  673   -
                         }
    -  674   -
                     }
    -  675  190
                 }
    -  676   -
             } finally {
    -  677  13
                 if (jar != null) {
    -  678  13
                     jar.close();
    +  645   +
     
    +  646  43
                             } else if (key.contains("title")) {
    +  647  6
                                 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    +  648  6
                                 addMatchingValues(classInformation, value, productEvidence);
    +  649  37
                             } else if (key.contains("vendor")) {
    +  650  3
                                 if (key.contains("specification")) {
    +  651  3
                                     vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW);
    +  652   +
                                 } else {
    +  653  0
                                     vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    +  654  0
                                     addMatchingValues(classInformation, value, vendorEvidence);
    +  655   +
                                 }
    +  656  34
                             } else if (key.contains("name")) {
    +  657  11
                                 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    +  658  11
                                 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM);
    +  659  11
                                 addMatchingValues(classInformation, value, vendorEvidence);
    +  660  11
                                 addMatchingValues(classInformation, value, productEvidence);
    +  661  23
                             } else if (key.contains("license")) {
    +  662  6
                                 addLicense(dependency, value);
    +  663   +
                             } else {
    +  664  17
                                 if (key.contains("description")) {
    +  665  0
                                     addDescription(dependency, value, "manifest", key);
    +  666   +
                                 } else {
    +  667  17
                                     productEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW);
    +  668  17
                                     vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW);
    +  669  17
                                     addMatchingValues(classInformation, value, vendorEvidence);
    +  670  17
                                     addMatchingValues(classInformation, value, productEvidence);
    +  671  17
                                     if (value.matches(".*\\d.*")) {
    +  672  6
                                         final StringTokenizer tokenizer = new StringTokenizer(value, " ");
    +  673  30
                                         while (tokenizer.hasMoreElements()) {
    +  674  24
                                             final String s = tokenizer.nextToken();
    +  675  24
                                             if (s.matches("^[0-9.]+$")) {
    +  676  0
                                                 versionEvidence.addEvidence(source, key, s, Evidence.Confidence.LOW);
    +  677   +
                                             }
    +  678  24
                                         }
     679   -
                 }
    +
                                     }
     680   -
             }
    -  681  13
             return foundSomething;
    +
                                 }
    +  681   +
                             }
     682   -
         }
    +
                         }
     683   -
     
    -  684   -
         /**
    +
                     }
    +  684  231
                 }
     685   -
          * Adds a description to the given dependency.
    -  686   -
          *
    -  687   -
          * @param dependency a dependency
    +
             } finally {
    +  686  16
                 if (jar != null) {
    +  687  16
                     jar.close();
     688   -
          * @param description the description
    +
                 }
     689   -
          * @param source the source of the evidence
    -  690   -
          * @param key the "name" of the evidence
    +
             }
    +  690  16
             return foundSomething;
     691   -
          */
    +
         }
     692   -
         private void addDescription(Dependency dependency, String description, String source, String key) {
    -  693  8
             if (dependency.getDescription() == null) {
    -  694  7
                 dependency.setDescription(description);
    +
     
    +  693   +
         /**
    +  694   +
          * Adds a description to the given dependency.
     695   -
             }
    +
          *
     696   -
             String desc;
    -  697  8
             if (HTML_DETECTION_PATTERN.matcher(description).find()) {
    -  698  0
                 desc = Jsoup.parse(description).text();
    +
          * @param dependency a dependency
    +  697   +
          * @param description the description
    +  698   +
          * @param source the source of the evidence
     699   -
             } else {
    -  700  8
                 desc = description;
    +
          * @param key the "name" of the evidence
    +  700   +
          */
     701   +
         private void addDescription(Dependency dependency, String description, String source, String key) {
    +  702  10
             if (dependency.getDescription() == null) {
    +  703  9
                 dependency.setDescription(description);
    +  704  
             }
    -  702  8
             dependency.setDescription(desc);
    -  703  8
             if (desc.length() > 100) {
    -  704  2
                 final int posSuchAs = desc.toLowerCase().indexOf("such as ", 100);
    -  705  2
                 final int posLike = desc.toLowerCase().indexOf("like ", 100);
    -  706  2
                 int pos = -1;
    -  707  2
                 if (posLike > 0 && posSuchAs > 0) {
    -  708  0
                     pos = posLike > posSuchAs ? posLike : posSuchAs;
    -  709  2
                 } else if (posLike > 0) {
    -  710  2
                     pos = posLike;
    -  711  0
                 } else if (posSuchAs > 0) {
    -  712  0
                     pos = posSuchAs;
    -  713   -
                 }
    -  714  2
                 String descToUse = desc;
    -  715  2
                 if (pos > 0) {
    -  716  2
                     final StringBuilder sb = new StringBuilder(pos + 3);
    -  717  2
                     sb.append(desc.substring(0, pos));
    -  718  2
                     sb.append("...");
    -  719  2
                     descToUse = sb.toString();
    -  720   -
                 }
    -  721  2
                 dependency.getProductEvidence().addEvidence(source, key, descToUse, Evidence.Confidence.LOW);
    -  722  2
                 dependency.getVendorEvidence().addEvidence(source, key, descToUse, Evidence.Confidence.LOW);
    -  723  2
             } else {
    -  724  6
                 dependency.getProductEvidence().addEvidence(source, key, desc, Evidence.Confidence.MEDIUM);
    -  725  6
                 dependency.getVendorEvidence().addEvidence(source, key, desc, Evidence.Confidence.MEDIUM);
    -  726   +  705   +
             String desc;
    +  706  10
             if (HTML_DETECTION_PATTERN.matcher(description).find()) {
    +  707  0
                 desc = Jsoup.parse(description).text();
    +  708   +
             } else {
    +  709  10
                 desc = description;
    +  710  
             }
    -  727  8
         }
    -  728   -
     
    +  711  10
             dependency.setDescription(desc);
    +  712  10
             if (desc.length() > 100) {
    +  713  2
                 final int posSuchAs = desc.toLowerCase().indexOf("such as ", 100);
    +  714  2
                 final int posLike = desc.toLowerCase().indexOf("like ", 100);
    +  715  2
                 int pos = -1;
    +  716  2
                 if (posLike > 0 && posSuchAs > 0) {
    +  717  0
                     pos = posLike > posSuchAs ? posLike : posSuchAs;
    +  718  2
                 } else if (posLike > 0) {
    +  719  2
                     pos = posLike;
    +  720  0
                 } else if (posSuchAs > 0) {
    +  721  0
                     pos = posSuchAs;
    +  722   +
                 }
    +  723  2
                 String descToUse = desc;
    +  724  2
                 if (pos > 0) {
    +  725  2
                     final StringBuilder sb = new StringBuilder(pos + 3);
    +  726  2
                     sb.append(desc.substring(0, pos));
    +  727  2
                     sb.append("...");
    +  728  2
                     descToUse = sb.toString();
     729   -
         /**
    -  730   -
          * Adds a license to the given dependency.
    -  731   -
          *
    -  732   -
          * @param d a dependency
    -  733   -
          * @param license the license
    -  734   -
          */
    +
                 }
    +  730  2
                 dependency.getProductEvidence().addEvidence(source, key, descToUse, Evidence.Confidence.LOW);
    +  731  2
                 dependency.getVendorEvidence().addEvidence(source, key, descToUse, Evidence.Confidence.LOW);
    +  732  2
             } else {
    +  733  8
                 dependency.getProductEvidence().addEvidence(source, key, desc, Evidence.Confidence.MEDIUM);
    +  734  8
                 dependency.getVendorEvidence().addEvidence(source, key, desc, Evidence.Confidence.MEDIUM);
     735   -
         private void addLicense(Dependency d, String license) {
    -  736  4
             if (d.getLicense() == null) {
    -  737  4
                 d.setLicense(license);
    -  738  0
             } else if (!d.getLicense().contains(license)) {
    -  739  0
                 d.setLicense(d.getLicense() + NEWLINE + license);
    +
             }
    +  736  10
         }
    +  737   +
     
    +  738   +
         /**
    +  739   +
          * Adds a license to the given dependency.
     740   -
             }
    -  741  4
         }
    -  742   -
     
    -  743   -
         /**
    -  744   -
          * The initialize method does nothing for this Analyzer.
    -  745   -
          */
    -  746   -
         public void initialize() {
    -  747   -
             //do nothing
    -  748  0
         }
    -  749   -
     
    -  750   -
         /**
    -  751   -
          * The close method does nothing for this Analyzer.
    -  752   -
          */
    -  753   -
         public void close() {
    -  754   -
             //do nothing
    -  755  0
         }
    -  756   -
     
    -  757   -
         /**
    -  758   -
          * <p>A utility function that will interpolate strings based on values given
    -  759   -
          * in the properties file. It will also interpolate the strings contained
    -  760   -
          * within the properties file so that properties can reference other
    -  761   -
          * properties.</p>
    -  762   -
          * <p><b>Note:</b> if there is no property found the reference will be
    -  763   -
          * removed. In other words, if the interpolated string will be replaced with
    -  764   -
          * an empty string.
    -  765   -
          * </p>
    -  766   -
          * <p>Example:</p>
    -  767   -
          * <code>
    -  768   -
          * Properties p = new Properties();
    -  769   -
          * p.setProperty("key", "value");
    -  770   -
          * String s = interpolateString("'${key}' and '${nothing}'", p);
    -  771   -
          * System.out.println(s);
    -  772   -
          * </code>
    -  773   -
          * <p>Will result in:</p>
    -  774   -
          * <code>
    -  775   -
          * 'value' and ''
    -  776   -
          * </code>
    -  777  
          *
    -  778   -
          * @param text the string that contains references to properties.
    -  779   -
          * @param properties a collection of properties that may be referenced
    -  780   -
          * within the text.
    -  781   -
          * @return the interpolated text.
    -  782   +  741   +
          * @param d a dependency
    +  742   +
          * @param license the license
    +  743  
          */
    -  783   -
         protected String interpolateString(String text, Properties properties) {
    -  784  31
             Properties props = properties;
    -  785  31
             if (text == null) {
    -  786  5
                 return text;
    -  787   +  744   +
         private void addLicense(Dependency d, String license) {
    +  745  6
             if (d.getLicense() == null) {
    +  746  6
                 d.setLicense(license);
    +  747  0
             } else if (!d.getLicense().contains(license)) {
    +  748  0
                 d.setLicense(d.getLicense() + NEWLINE + license);
    +  749  
             }
    -  788  26
             if (props == null) {
    -  789  19
                 props = new Properties();
    -  790   -
             }
    -  791   +  750  6
         }
    +  751  
     
    -  792  26
             final int pos = text.indexOf("${");
    -  793  26
             if (pos < 0) {
    -  794  23
                 return text;
    -  795   +  752   +
         /**
    +  753   +
          * The initialize method does nothing for this Analyzer.
    +  754   +
          */
    +  755   +
         public void initialize() {
    +  756   +
             //do nothing
    +  757  1
         }
    +  758   +
     
    +  759   +
         /**
    +  760   +
          * The close method does nothing for this Analyzer.
    +  761   +
          */
    +  762   +
         public void close() {
    +  763   +
             //do nothing
    +  764  1
         }
    +  765   +
     
    +  766   +
         /**
    +  767   +
          * <p>A utility function that will interpolate strings based on values given
    +  768   +
          * in the properties file. It will also interpolate the strings contained
    +  769   +
          * within the properties file so that properties can reference other
    +  770   +
          * properties.</p>
    +  771   +
          * <p><b>Note:</b> if there is no property found the reference will be
    +  772   +
          * removed. In other words, if the interpolated string will be replaced with
    +  773   +
          * an empty string.
    +  774   +
          * </p>
    +  775   +
          * <p>Example:</p>
    +  776   +
          * <code>
    +  777   +
          * Properties p = new Properties();
    +  778   +
          * p.setProperty("key", "value");
    +  779   +
          * String s = interpolateString("'${key}' and '${nothing}'", p);
    +  780   +
          * System.out.println(s);
    +  781   +
          * </code>
    +  782   +
          * <p>Will result in:</p>
    +  783   +
          * <code>
    +  784   +
          * 'value' and ''
    +  785   +
          * </code>
    +  786   +
          *
    +  787   +
          * @param text the string that contains references to properties.
    +  788   +
          * @param properties a collection of properties that may be referenced
    +  789   +
          * within the text.
    +  790   +
          * @return the interpolated text.
    +  791   +
          */
    +  792   +
         protected String interpolateString(String text, Properties properties) {
    +  793  40
             Properties props = properties;
    +  794  40
             if (text == null) {
    +  795  8
                 return text;
    +  796  
             }
    -  796  3
             final int end = text.indexOf("}");
    -  797  3
             if (end < pos) {
    -  798  0
                 return text;
    +  797  32
             if (props == null) {
    +  798  25
                 props = new Properties();
     799  
             }
     800  
     
    -  801  3
             final String propName = text.substring(pos + 2, end);
    -  802  3
             String propValue = interpolateString(props.getProperty(propName), props);
    -  803  3
             if (propValue == null) {
    -  804  0
                 propValue = "";
    -  805   +  801  32
             final int pos = text.indexOf("${");
    +  802  32
             if (pos < 0) {
    +  803  29
                 return text;
    +  804  
             }
    -  806  3
             final StringBuilder sb = new StringBuilder(propValue.length() + text.length());
    -  807  3
             sb.append(text.subSequence(0, pos));
    -  808  3
             sb.append(propValue);
    -  809  3
             sb.append(text.substring(end + 1));
    -  810  3
             return interpolateString(sb.toString(), props); //yes yes, this should be a loop...
    -  811   -
         }
    -  812   +  805  3
             final int end = text.indexOf("}");
    +  806  3
             if (end < pos) {
    +  807  0
                 return text;
    +  808   +
             }
    +  809  
     
    -  813   -
         /**
    +  810  3
             final String propName = text.substring(pos + 2, end);
    +  811  3
             String propValue = interpolateString(props.getProperty(propName), props);
    +  812  3
             if (propValue == null) {
    +  813  0
                 propValue = "";
     814   -
          * Determines if the key value pair from the manifest is for an "import"
    -  815   -
          * type entry for package names.
    -  816   -
          *
    -  817   -
          * @param key the key from the manifest
    -  818   -
          * @param value the value from the manifest
    -  819   -
          * @return true or false depending on if it is believed the entry is an
    +
             }
    +  815  3
             final StringBuilder sb = new StringBuilder(propValue.length() + text.length());
    +  816  3
             sb.append(text.subSequence(0, pos));
    +  817  3
             sb.append(propValue);
    +  818  3
             sb.append(text.substring(end + 1));
    +  819  3
             return interpolateString(sb.toString(), props); //yes yes, this should be a loop...
     820   -
          * "import" entry
    +
         }
     821   -
          */
    +
     
     822   -
         private boolean isImportPackage(String key, String value) {
    -  823  44
             final Pattern packageRx = Pattern.compile("^((([a-zA-Z_#\\$0-9]\\.)+)\\s*\\;\\s*)+$");
    -  824  44
             if (packageRx.matcher(value).matches()) {
    -  825  0
                 return (key.contains("import") || key.contains("include"));
    +
         /**
    +  823   +
          * Determines if the key value pair from the manifest is for an "import"
    +  824   +
          * type entry for package names.
    +  825   +
          *
     826   -
             }
    -  827  44
             return false;
    +
          * @param key the key from the manifest
    +  827   +
          * @param value the value from the manifest
     828   -
         }
    +
          * @return true or false depending on if it is believed the entry is an
     829   -
     
    +
          * "import" entry
     830   -
         /**
    +
          */
     831   -
          * Cycles through an enumeration of JarEntries, contained within the
    -  832   -
          * dependency, and returns a list of the class names. This does not include
    -  833   -
          * core Java package names (i.e. java.* or javax.*).
    -  834   -
          *
    +
         private boolean isImportPackage(String key, String value) {
    +  832  53
             final Pattern packageRx = Pattern.compile("^((([a-zA-Z_#\\$0-9]\\.)+)\\s*\\;\\s*)+$");
    +  833  53
             if (packageRx.matcher(value).matches()) {
    +  834  0
                 return (key.contains("import") || key.contains("include"));
     835   -
          * @param dependency the dependency being analyzed
    -  836   -
          * @return an list of fully qualified class names
    +
             }
    +  836  53
             return false;
     837   -
          */
    +
         }
     838   -
         private ArrayList<ClassNameInformation> collectClassNames(Dependency dependency) {
    -  839  13
             final ArrayList<ClassNameInformation> classNames = new ArrayList<ClassNameInformation>();
    -  840  13
             JarFile jar = null;
    +
     
    +  839   +
         /**
    +  840   +
          * Cycles through an enumeration of JarEntries, contained within the
     841   -
             try {
    -  842  13
                 jar = new JarFile(dependency.getActualFilePath());
    -  843  13
                 final Enumeration entries = jar.entries();
    -  844  5523
                 while (entries.hasMoreElements()) {
    -  845  5510
                     final JarEntry entry = (JarEntry) entries.nextElement();
    -  846  5510
                     final String name = entry.getName().toLowerCase();
    +
          * dependency, and returns a list of the class names. This does not include
    +  842   +
          * core Java package names (i.e. java.* or javax.*).
    +  843   +
          *
    +  844   +
          * @param dependency the dependency being analyzed
    +  845   +
          * @return an list of fully qualified class names
    +  846   +
          */
     847   +
         private ArrayList<ClassNameInformation> collectClassNames(Dependency dependency) {
    +  848  16
             final ArrayList<ClassNameInformation> classNames = new ArrayList<ClassNameInformation>();
    +  849  16
             JarFile jar = null;
    +  850   +
             try {
    +  851  16
                 jar = new JarFile(dependency.getActualFilePath());
    +  852  16
                 final Enumeration entries = jar.entries();
    +  853  6838
                 while (entries.hasMoreElements()) {
    +  854  6822
                     final JarEntry entry = (JarEntry) entries.nextElement();
    +  855  6822
                     final String name = entry.getName().toLowerCase();
    +  856  
                     //no longer stripping "|com\\.sun" - there are some com.sun jar files with CVEs.
    -  848  5510
                     if (name.endsWith(".class") && !name.matches("^javax?\\..*$")) {
    -  849  4741
                         final ClassNameInformation className = new ClassNameInformation(name.substring(0, name.length() - 6));
    -  850  4741
                         classNames.add(className);
    -  851   +  857  6822
                     if (name.endsWith(".class") && !name.matches("^javax?\\..*$")) {
    +  858  5781
                         final ClassNameInformation className = new ClassNameInformation(name.substring(0, name.length() - 6));
    +  859  5781
                         classNames.add(className);
    +  860  
                     }
    -  852  5510
                 }
    -  853  0
             } catch (IOException ex) {
    -  854  0
                 final String msg = String.format("Unable to open jar file '%s'.", dependency.getFileName());
    -  855  0
                 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.WARNING, msg);
    -  856  0
                 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINE, null, ex);
    -  857   +  861  6822
                 }
    +  862  0
             } catch (IOException ex) {
    +  863  0
                 final String msg = String.format("Unable to open jar file '%s'.", dependency.getFileName());
    +  864  0
                 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.WARNING, msg);
    +  865  0
                 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINE, null, ex);
    +  866  
             } finally {
    -  858  13
                 if (jar != null) {
    -  859   -
                     try {
    -  860  13
                         jar.close();
    -  861  0
                     } catch (IOException ex) {
    -  862  0
                         Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINEST, null, ex);
    -  863  13
                     }
    -  864   -
                 }
    -  865   -
             }
    -  866  13
             return classNames;
    -  867   -
         }
    +  867  16
                 if (jar != null) {
     868   -
     
    -  869   -
         /**
    -  870   -
          * Cycles through the list of class names and places the package levels 0-3
    -  871   -
          * into the provided maps for vendor and product. This is helpful when
    -  872   -
          * analyzing vendor/product as many times this is included in the package
    +
                     try {
    +  869  16
                         jar.close();
    +  870  0
                     } catch (IOException ex) {
    +  871  0
                         Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINEST, null, ex);
    +  872  16
                     }
     873   -
          * name.
    +
                 }
     874   -
          *
    -  875   -
          * @param classNames a list of class names
    +
             }
    +  875  16
             return classNames;
     876   -
          * @param vendor HashMap of possible vendor names from package names (e.g.
    +
         }
     877   -
          * owasp)
    +
     
     878   -
          * @param product HashMap of possible product names from package names (e.g.
    +
         /**
     879   -
          * dependencycheck)
    +
          * Cycles through the list of class names and places the package levels 0-3
     880   -
          */
    +
          * into the provided maps for vendor and product. This is helpful when
     881   -
         private void analyzeFullyQualifiedClassNames(ArrayList<ClassNameInformation> classNames,
    +
          * analyzing vendor/product as many times this is included in the package
     882   -
                 HashMap<String, Integer> vendor, HashMap<String, Integer> product) {
    -  883  13
             for (ClassNameInformation entry : classNames) {
    -  884  4741
                 final ArrayList<String> list = entry.getPackageStructure();
    -  885  4741
                 addEntry(vendor, list.get(0));
    -  886   -
     
    -  887  4741
                 if (list.size() == 2) {
    -  888  0
                     addEntry(product, list.get(1));
    -  889   -
                 }
    -  890  4741
                 if (list.size() == 3) {
    -  891  1777
                     addEntry(vendor, list.get(1));
    -  892  1777
                     addEntry(product, list.get(1));
    -  893  1777
                     addEntry(product, list.get(2));
    -  894   -
                 }
    -  895  4741
                 if (list.size() >= 4) {
    -  896  2964
                     addEntry(vendor, list.get(1));
    -  897  2964
                     addEntry(vendor, list.get(2));
    -  898  2964
                     addEntry(product, list.get(1));
    -  899  2964
                     addEntry(product, list.get(2));
    -  900  2964
                     addEntry(product, list.get(3));
    -  901   -
                 }
    -  902  4741
             }
    -  903  13
         }
    -  904   -
     
    -  905   -
         /**
    -  906   -
          * Adds an entry to the specified collection and sets the Integer (e.g. the
    -  907   -
          * count) to 1. If the entry already exists in the collection then the
    -  908   -
          * Integer is incremented by 1.
    -  909   -
          *
    -  910   -
          * @param collection a collection of strings and their occurrence count
    -  911   -
          * @param key the key to add to the collection
    -  912   -
          */
    -  913   -
         private void addEntry(HashMap<String, Integer> collection, String key) {
    -  914  24892
             if (collection.containsKey(key)) {
    -  915  21768
                 collection.put(key, collection.get(key) + 1);
    -  916   -
             } else {
    -  917  3124
                 collection.put(key, 1);
    -  918   -
             }
    -  919  24892
         }
    -  920   -
     
    -  921   -
         /**
    -  922   -
          * Cycles through the collection of class name information to see if parts
    -  923   -
          * of the package names are contained in the provided value. If found, it
    -  924   -
          * will be added as the HIGHEST confidence evidence because we have more
    -  925   -
          * then one source corroborating the value.
    -  926   -
          *
    -  927   -
          * @param classes a collection of class name information
    -  928   -
          * @param value the value to check to see if it contains a package name
    -  929   -
          * @param evidence the evidence collection to add new entries too
    -  930   -
          */
    -  931   -
         private void addMatchingValues(ArrayList<ClassNameInformation> classes, String value, EvidenceCollection evidence) {
    -  932  119
             if (value == null || value.isEmpty()) {
    -  933  0
                 return;
    -  934   -
             }
    -  935  119
             final String text = value.toLowerCase();
    -  936  119
             for (ClassNameInformation cni : classes) {
    -  937  50994
                 for (String key : cni.getPackageStructure()) {
    -  938  183012
                     if (text.contains(key)) { //note, package structure elements are already lowercase.
    -  939  57140
                         evidence.addEvidence("jar", "package name", key, Evidence.Confidence.HIGHEST);
    -  940   -
                     }
    -  941   -
                 }
    -  942   -
             }
    -  943  119
         }
    -  944   -
     
    -  945   -
         /**
    -  946   -
          * <p><b>This is currently a failed implementation.</b> Part of the issue is
    -  947   -
          * I was trying to solve the wrong problem. Instead of multiple POMs being
    -  948   -
          * in the JAR to just add information about dependencies - I didn't realize
    -  949   -
          * until later that I was looking at an uber-jar (aka fat-jar) that included
    -  950   -
          * all of its dependencies.</p>
    -  951   -
          * <p>I'm leaving this method in the source tree, entirely commented out
    -  952   -
          * until a solution https://github.com/jeremylong/DependencyCheck/issues/11
    -  953   -
          * has been implemented.</p>
    -  954   -
          * <p>Takes a list of pom entries from a JAR file and attempts to filter it
    -  955   -
          * down to the pom related to the jar (rather then the pom entry for a
    -  956   -
          * dependency).</p>
    -  957   -
          *
    -  958   -
          * @param pomEntries a list of pom entries
    -  959   -
          * @param classes a list of fully qualified classes from the JAR file
    -  960   -
          * @return the list of pom entries that are associated with the jar being
    -  961   -
          * analyzed rather then the dependent poms
    -  962   -
          */
    -  963   -
         private List<String> filterPomEntries(List<String> pomEntries, ArrayList<ClassNameInformation> classes) {
    -  964  0
             return pomEntries;
    -  965   -
     //        final HashMap<String, Integer> usePoms = new HashMap<String, Integer>();
    -  966   -
     //        final ArrayList<String> possiblePoms = new ArrayList<String>();
    -  967   -
     //        for (String entry : pomEntries) {
    -  968   -
     //            //todo validate that the starts with is correct... or does it start with a ./ or /?
    -  969   -
     //            // is it different on different platforms?
    -  970   -
     //            if (entry.startsWith("META-INF/maven/")) {
    -  971   -
     //                //trim the meta-inf/maven and pom.xml...
    -  972   -
     //                final String pomPath = entry.substring(15, entry.length() - 8).toLowerCase();
    -  973   -
     //                final String[] parts = pomPath.split("/");
    -  974   -
     //                if (parts == null || parts.length != 2) { //misplaced pom?
    -  975   -
     //                    //TODO add logging to FINE
    -  976   -
     //                    possiblePoms.add(entry);
    -  977   -
     //                }
    -  978   -
     //                parts[0] = parts[0].replace('.', '/');
    -  979   -
     //                parts[1] = parts[1].replace('.', '/');
    -  980   -
     //                for (ClassNameInformation cni : classes) {
    -  981   -
     //                    final String name = cni.getName();
    -  982   -
     //                    if (StringUtils.containsIgnoreCase(name, parts[0])) {
    -  983   -
     //                        addEntry(usePoms, entry);
    -  984   -
     //                    }
    -  985   -
     //                    if (StringUtils.containsIgnoreCase(name, parts[1])) {
    -  986   -
     //                        addEntry(usePoms, entry);
    -  987   -
     //                    }
    -  988   -
     //                }
    -  989   -
     //            } else { // we have a JAR file with an incorrect POM layout...
    -  990   -
     //                //TODO add logging to FINE
    -  991   -
     //                possiblePoms.add(entry);
    -  992   -
     //            }
    -  993   -
     //        }
    -  994   -
     //        List<String> retValue;
    -  995   -
     //        if (usePoms.isEmpty()) {
    -  996   -
     //            if (possiblePoms.isEmpty()) {
    -  997   -
     //                retValue = pomEntries;
    -  998   -
     //            } else {
    -  999   -
     //                retValue = possiblePoms;
    -  1000   -
     //            }
    -  1001   -
     //        } else {
    -  1002   -
     //            retValue = new ArrayList<String>();
    -  1003   -
     //            int maxCount = 0;
    -  1004   -
     //            for (Map.Entry<String, Integer> entry : usePoms.entrySet()) {
    -  1005   -
     //                final int current = entry.getValue().intValue();
    -  1006   -
     //                if (current > maxCount) {
    -  1007   -
     //                    maxCount = current;
    -  1008   -
     //                    retValue.clear();
    -  1009   -
     //                    retValue.add(entry.getKey());
    -  1010   -
     //                } else if (current == maxCount) {
    -  1011   -
     //                    retValue.add(entry.getKey());
    -  1012   -
     //                }
    -  1013   -
     //            }
    -  1014   -
     //        }
    -  1015   -
     //        return retValue;
    -  1016   -
         }
    -  1017   -
     
    -  1018   -
         /**
    -  1019   -
          * Simple check to see if the attribute from a manifest is just a package
    -  1020  
          * name.
    -  1021   +  883  
          *
    -  1022   -
          * @param key the key of the value to check
    -  1023   -
          * @param value the value to check
    -  1024   -
          * @return true if the value looks like a java package name, otherwise false
    -  1025   +  884   +
          * @param classNames a list of class names
    +  885   +
          * @param vendor HashMap of possible vendor names from package names (e.g.
    +  886   +
          * owasp)
    +  887   +
          * @param product HashMap of possible product names from package names (e.g.
    +  888   +
          * dependencycheck)
    +  889  
          */
    -  1026   -
         private boolean isPackage(String key, String value) {
    -  1027   +  890   +
         private void analyzeFullyQualifiedClassNames(ArrayList<ClassNameInformation> classNames,
    +  891   +
                 HashMap<String, Integer> vendor, HashMap<String, Integer> product) {
    +  892  16
             for (ClassNameInformation entry : classNames) {
    +  893  5781
                 final ArrayList<String> list = entry.getPackageStructure();
    +  894  5781
                 addEntry(vendor, list.get(0));
    +  895  
     
    -  1028  44
             return !key.matches(".*(version|title|vendor|name|license|description).*")
    -  1029   -
                     && value.matches("^([a-zA-Z_][a-zA-Z0-9_\\$]*(\\.[a-zA-Z_][a-zA-Z0-9_\\$]*)*)?$");
    -  1030   -
         }
    -  1031   +  896  5781
                 if (list.size() == 2) {
    +  897  0
                     addEntry(product, list.get(1));
    +  898   +
                 }
    +  899  5781
                 if (list.size() == 3) {
    +  900  1989
                     addEntry(vendor, list.get(1));
    +  901  1989
                     addEntry(product, list.get(1));
    +  902  1989
                     addEntry(product, list.get(2));
    +  903   +
                 }
    +  904  5781
                 if (list.size() >= 4) {
    +  905  3792
                     addEntry(vendor, list.get(1));
    +  906  3792
                     addEntry(vendor, list.get(2));
    +  907  3792
                     addEntry(product, list.get(1));
    +  908  3792
                     addEntry(product, list.get(2));
    +  909  3792
                     addEntry(product, list.get(3));
    +  910   +
                 }
    +  911  5781
             }
    +  912  16
         }
    +  913  
     
    -  1032   +  914  
         /**
    +  915   +
          * Adds an entry to the specified collection and sets the Integer (e.g. the
    +  916   +
          * count) to 1. If the entry already exists in the collection then the
    +  917   +
          * Integer is incremented by 1.
    +  918   +
          *
    +  919   +
          * @param collection a collection of strings and their occurrence count
    +  920   +
          * @param key the key to add to the collection
    +  921   +
          */
    +  922   +
         private void addEntry(HashMap<String, Integer> collection, String key) {
    +  923  30708
             if (collection.containsKey(key)) {
    +  924  27072
                 collection.put(key, collection.get(key) + 1);
    +  925   +
             } else {
    +  926  3636
                 collection.put(key, 1);
    +  927   +
             }
    +  928  30708
         }
    +  929   +
     
    +  930   +
         /**
    +  931   +
          * Cycles through the collection of class name information to see if parts
    +  932   +
          * of the package names are contained in the provided value. If found, it
    +  933   +
          * will be added as the HIGHEST confidence evidence because we have more
    +  934   +
          * then one source corroborating the value.
    +  935   +
          *
    +  936   +
          * @param classes a collection of class name information
    +  937   +
          * @param value the value to check to see if it contains a package name
    +  938   +
          * @param evidence the evidence collection to add new entries too
    +  939   +
          */
    +  940   +
         private void addMatchingValues(ArrayList<ClassNameInformation> classes, String value, EvidenceCollection evidence) {
    +  941  145
             if (value == null || value.isEmpty()) {
    +  942  0
                 return;
    +  943   +
             }
    +  944  145
             final String text = value.toLowerCase();
    +  945  145
             for (ClassNameInformation cni : classes) {
    +  946  59610
                 for (String key : cni.getPackageStructure()) {
    +  947  217618
                     if (text.contains(key)) { //note, package structure elements are already lowercase.
    +  948  66967
                         evidence.addEvidence("jar", "package name", key, Evidence.Confidence.HIGHEST);
    +  949   +
                     }
    +  950   +
                 }
    +  951   +
             }
    +  952  145
         }
    +  953   +
     
    +  954   +
         /**
    +  955   +
          * <p><b>This is currently a failed implementation.</b> Part of the issue is
    +  956   +
          * I was trying to solve the wrong problem. Instead of multiple POMs being
    +  957   +
          * in the JAR to just add information about dependencies - I didn't realize
    +  958   +
          * until later that I was looking at an uber-jar (aka fat-jar) that included
    +  959   +
          * all of its dependencies.</p>
    +  960   +
          * <p>I'm leaving this method in the source tree, entirely commented out
    +  961   +
          * until a solution https://github.com/jeremylong/DependencyCheck/issues/11
    +  962   +
          * has been implemented.</p>
    +  963   +
          * <p>Takes a list of pom entries from a JAR file and attempts to filter it
    +  964   +
          * down to the pom related to the jar (rather then the pom entry for a
    +  965   +
          * dependency).</p>
    +  966   +
          *
    +  967   +
          * @param pomEntries a list of pom entries
    +  968   +
          * @param classes a list of fully qualified classes from the JAR file
    +  969   +
          * @return the list of pom entries that are associated with the jar being
    +  970   +
          * analyzed rather then the dependent poms
    +  971   +
          */
    +  972   +
         private List<String> filterPomEntries(List<String> pomEntries, ArrayList<ClassNameInformation> classes) {
    +  973  0
             return pomEntries;
    +  974   +
     //        final HashMap<String, Integer> usePoms = new HashMap<String, Integer>();
    +  975   +
     //        final ArrayList<String> possiblePoms = new ArrayList<String>();
    +  976   +
     //        for (String entry : pomEntries) {
    +  977   +
     //            //todo validate that the starts with is correct... or does it start with a ./ or /?
    +  978   +
     //            // is it different on different platforms?
    +  979   +
     //            if (entry.startsWith("META-INF/maven/")) {
    +  980   +
     //                //trim the meta-inf/maven and pom.xml...
    +  981   +
     //                final String pomPath = entry.substring(15, entry.length() - 8).toLowerCase();
    +  982   +
     //                final String[] parts = pomPath.split("/");
    +  983   +
     //                if (parts == null || parts.length != 2) { //misplaced pom?
    +  984   +
     //                    //TODO add logging to FINE
    +  985   +
     //                    possiblePoms.add(entry);
    +  986   +
     //                }
    +  987   +
     //                parts[0] = parts[0].replace('.', '/');
    +  988   +
     //                parts[1] = parts[1].replace('.', '/');
    +  989   +
     //                for (ClassNameInformation cni : classes) {
    +  990   +
     //                    final String name = cni.getName();
    +  991   +
     //                    if (StringUtils.containsIgnoreCase(name, parts[0])) {
    +  992   +
     //                        addEntry(usePoms, entry);
    +  993   +
     //                    }
    +  994   +
     //                    if (StringUtils.containsIgnoreCase(name, parts[1])) {
    +  995   +
     //                        addEntry(usePoms, entry);
    +  996   +
     //                    }
    +  997   +
     //                }
    +  998   +
     //            } else { // we have a JAR file with an incorrect POM layout...
    +  999   +
     //                //TODO add logging to FINE
    +  1000   +
     //                possiblePoms.add(entry);
    +  1001   +
     //            }
    +  1002   +
     //        }
    +  1003   +
     //        List<String> retValue;
    +  1004   +
     //        if (usePoms.isEmpty()) {
    +  1005   +
     //            if (possiblePoms.isEmpty()) {
    +  1006   +
     //                retValue = pomEntries;
    +  1007   +
     //            } else {
    +  1008   +
     //                retValue = possiblePoms;
    +  1009   +
     //            }
    +  1010   +
     //        } else {
    +  1011   +
     //            retValue = new ArrayList<String>();
    +  1012   +
     //            int maxCount = 0;
    +  1013   +
     //            for (Map.Entry<String, Integer> entry : usePoms.entrySet()) {
    +  1014   +
     //                final int current = entry.getValue().intValue();
    +  1015   +
     //                if (current > maxCount) {
    +  1016   +
     //                    maxCount = current;
    +  1017   +
     //                    retValue.clear();
    +  1018   +
     //                    retValue.add(entry.getKey());
    +  1019   +
     //                } else if (current == maxCount) {
    +  1020   +
     //                    retValue.add(entry.getKey());
    +  1021   +
     //                }
    +  1022   +
     //            }
    +  1023   +
     //        }
    +  1024   +
     //        return retValue;
    +  1025   +
         }
    +  1026   +
     
    +  1027   +
         /**
    +  1028   +
          * Simple check to see if the attribute from a manifest is just a package
    +  1029   +
          * name.
    +  1030   +
          *
    +  1031   +
          * @param key the key of the value to check
    +  1032   +
          * @param value the value to check
     1033   -
          * Stores information about a class name.
    +
          * @return true if the value looks like a java package name, otherwise false
     1034  
          */
     1035   -
         protected static class ClassNameInformation {
    +
         private boolean isPackage(String key, String value) {
     1036  
     
    -  1037   -
             /**
    +  1037  53
             return !key.matches(".*(version|title|vendor|name|license|description).*")
     1038   -
              * Stores information about a given class name. This class will keep the
    +
                     && value.matches("^([a-zA-Z_][a-zA-Z0-9_\\$]*(\\.[a-zA-Z_][a-zA-Z0-9_\\$]*)*)?$");
     1039   -
              * fully qualified class name and a list of the important parts of the
    +
         }
     1040   -
              * package structure. Up to the first four levels of the package
    -  1041   -
              * structure are stored, excluding a leading "org" or "com". Example:
    -  1042   -
              * <code>ClassNameInformation obj = new ClassNameInformation("org.owasp.dependencycheck.analyzer.JarAnalyzer");
    -  1043   -
              * System.out.println(obj.getName());
    -  1044   -
              * for (String p : obj.getPackageStructure())
    -  1045   -
              *     System.out.println(p);
    -  1046   -
              * </code> Would result in:
    -  1047   -
              * <code>org.owasp.dependencycheck.analyzer.JarAnalyzer
    -  1048   -
              * owasp
    -  1049   -
              * dependencycheck
    -  1050   -
              * analyzer
    -  1051   -
              * jaranalyzer</code>
    -  1052   -
              *
    -  1053   -
              * @param className a fully qualified class name
    -  1054   -
              */
    -  1055  4741
             ClassNameInformation(String className) {
    -  1056  4741
                 name = className;
    -  1057  4741
                 if (name.contains("/")) {
    -  1058  4741
                     final String[] tmp = className.toLowerCase().split("/");
    -  1059  4741
                     int start = 0;
    -  1060  4741
                     int end = 3;
    -  1061  4741
                     if ("com".equals(tmp[0]) || "org".equals(tmp[0])) {
    -  1062  4314
                         start = 1;
    -  1063  4314
                         end = 4;
    -  1064   -
                     }
    -  1065  4741
                     if (tmp.length <= end) {
    -  1066  1777
                         end = tmp.length - 1;
    -  1067   -
                     }
    -  1068  21928
                     for (int i = start; i <= end; i++) {
    -  1069  17187
                         packageStructure.add(tmp[i]);
    -  1070   -
                     }
    -  1071  4741
                 } else {
    -  1072  0
                     packageStructure.add(name);
    -  1073   -
                 }
    -  1074  4741
             }
    -  1075   -
             /**
    -  1076   -
              * The fully qualified class name.
    -  1077   -
              */
    -  1078   -
             private String name;
    -  1079  
     
    -  1080   +  1041   +
         /**
    +  1042   +
          * Stores information about a class name.
    +  1043   +
          */
    +  1044   +
         protected static class ClassNameInformation {
    +  1045   +
     
    +  1046  
             /**
    -  1081   -
              * Get the value of name
    -  1082   +  1047   +
              * Stores information about a given class name. This class will keep the
    +  1048   +
              * fully qualified class name and a list of the important parts of the
    +  1049   +
              * package structure. Up to the first four levels of the package
    +  1050   +
              * structure are stored, excluding a leading "org" or "com". Example:
    +  1051   +
              * <code>ClassNameInformation obj = new ClassNameInformation("org.owasp.dependencycheck.analyzer.JarAnalyzer");
    +  1052   +
              * System.out.println(obj.getName());
    +  1053   +
              * for (String p : obj.getPackageStructure())
    +  1054   +
              *     System.out.println(p);
    +  1055   +
              * </code> Would result in:
    +  1056   +
              * <code>org.owasp.dependencycheck.analyzer.JarAnalyzer
    +  1057   +
              * owasp
    +  1058   +
              * dependencycheck
    +  1059   +
              * analyzer
    +  1060   +
              * jaranalyzer</code>
    +  1061  
              *
    -  1083   -
              * @return the value of name
    -  1084   +  1062   +
              * @param className a fully qualified class name
    +  1063  
              */
    +  1064  5781
             ClassNameInformation(String className) {
    +  1065  5781
                 name = className;
    +  1066  5781
                 if (name.contains("/")) {
    +  1067  5781
                     final String[] tmp = className.toLowerCase().split("/");
    +  1068  5781
                     int start = 0;
    +  1069  5781
                     int end = 3;
    +  1070  5781
                     if ("com".equals(tmp[0]) || "org".equals(tmp[0])) {
    +  1071  5354
                         start = 1;
    +  1072  5354
                         end = 4;
    +  1073   +
                     }
    +  1074  5781
                     if (tmp.length <= end) {
    +  1075  1989
                         end = tmp.length - 1;
    +  1076   +
                     }
    +  1077  26916
                     for (int i = start; i <= end; i++) {
    +  1078  21135
                         packageStructure.add(tmp[i]);
    +  1079   +
                     }
    +  1080  5781
                 } else {
    +  1081  0
                     packageStructure.add(name);
    +  1082   +
                 }
    +  1083  5781
             }
    +  1084   +
             /**
     1085   -
             public String getName() {
    -  1086  0
                 return name;
    +
              * The fully qualified class name.
    +  1086   +
              */
     1087   -
             }
    +
             private String name;
     1088  
     
     1089  
             /**
     1090   -
              * Set the value of name
    +
              * Get the value of name
     1091  
              *
     1092   -
              * @param name new value of name
    +
              * @return the value of name
     1093  
              */
     1094   -
             public void setName(String name) {
    -  1095  0
                 this.name = name;
    -  1096  0
             }
    -  1097   -
             /**
    -  1098   -
              * Up to the first four levels of the package structure, excluding a
    -  1099   -
              * leading "org" or "com".
    -  1100   -
              */
    -  1101  4741
             private ArrayList<String> packageStructure = new ArrayList<String>();
    -  1102   -
     
    -  1103   -
             /**
    -  1104   -
              * Get the value of packageStructure
    -  1105   -
              *
    -  1106   -
              * @return the value of packageStructure
    -  1107   -
              */
    -  1108   -
             public ArrayList<String> getPackageStructure() {
    -  1109  55735
                 return packageStructure;
    -  1110   +
             public String getName() {
    +  1095  0
                 return name;
    +  1096  
             }
    +  1097   +
     
    +  1098   +
             /**
    +  1099   +
              * Set the value of name
    +  1100   +
              *
    +  1101   +
              * @param name new value of name
    +  1102   +
              */
    +  1103   +
             public void setName(String name) {
    +  1104  0
                 this.name = name;
    +  1105  0
             }
    +  1106   +
             /**
    +  1107   +
              * Up to the first four levels of the package structure, excluding a
    +  1108   +
              * leading "org" or "com".
    +  1109   +
              */
    +  1110  5781
             private ArrayList<String> packageStructure = new ArrayList<String>();
     1111   -
         }
    +
     
     1112   +
             /**
    +  1113   +
              * Get the value of packageStructure
    +  1114   +
              *
    +  1115   +
              * @return the value of packageStructure
    +  1116   +
              */
    +  1117   +
             public ArrayList<String> getPackageStructure() {
    +  1118  65391
                 return packageStructure;
    +  1119   +
             }
    +  1120   +
         }
    +  1121  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.html index c1027326a..eecc3290c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.html @@ -252,6 +252,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html index 07866aec7..a47a2895e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    NvdCveAnalyzer
    11%
    3/27
    0%
    0/8
    1.5
    NvdCveAnalyzer
    70%
    19/27
    37%
    3/8
    1.5
     
    @@ -134,9 +134,9 @@
          */
     59  
         public void open() throws SQLException, IOException, DatabaseException, ClassNotFoundException {
    -  60  0
             cveDB = new CveDB();
    -  61  0
             cveDB.open();
    -  62  0
         }
    +  60  1
             cveDB = new CveDB();
    +  61  1
             cveDB.open();
    +  62  1
         }
     63  
     
     64   @@ -147,9 +147,9 @@
          */
     67  
         public void close() {
    -  68  0
             cveDB.close();
    -  69  0
             cveDB = null;
    -  70  0
         }
    +  68  1
             cveDB.close();
    +  69  1
             cveDB = null;
    +  70  1
         }
     71  
     
     72   @@ -211,13 +211,13 @@
          */
     103  
         public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
    -  104  0
             for (Identifier id : dependency.getIdentifiers()) {
    -  105  0
                 if ("cpe".equals(id.getType())) {
    +  104  3
             for (Identifier id : dependency.getIdentifiers()) {
    +  105  6
                 if ("cpe".equals(id.getType())) {
     106  
                     try {
    -  107  0
                         final String value = id.getValue();
    -  108  0
                         final List<Vulnerability> vulns = cveDB.getVulnerabilities(value);
    -  109  0
                         dependency.getVulnerabilities().addAll(vulns);
    +  107  6
                         final String value = id.getValue();
    +  108  6
                         final List<Vulnerability> vulns = cveDB.getVulnerabilities(value);
    +  109  6
                         dependency.getVulnerabilities().addAll(vulns);
     110  
     //TODO - remove this comment block after additional testing is completed
     111   @@ -234,12 +234,12 @@
     ////                    }
     117  0
                     } catch (DatabaseException ex) {
     118  0
                         throw new AnalysisException(ex);
    -  119  0
                     }
    +  119  6
                     }
     120  
                 }
     121  
             }
    -  122  0
         }
    +  122  3
         }
     123  
     
     124   @@ -254,7 +254,7 @@
          */
     129  
         public Set<String> getSupportedExtensions() {
    -  130  128
             return null;
    +  130  129
             return null;
     131  
         }
     132   @@ -290,7 +290,7 @@
          */
     148  
         public boolean supportsExtension(String extension) {
    -  149  0
             return true;
    +  149  3
             return true;
     150  
         }
     151   @@ -307,7 +307,7 @@
          */
     157  
         public AnalysisPhase getAnalysisPhase() {
    -  158  2
             return AnalysisPhase.FINDING_ANALYSIS;
    +  158  3
             return AnalysisPhase.FINDING_ANALYSIS;
     159  
         }
     160   @@ -324,8 +324,8 @@
          */
     166  
         public void initialize() throws Exception {
    -  167  0
             this.open();
    -  168  0
         }
    +  167  1
             this.open();
    +  168  1
         }
     169  
     //TODO - remove this comment block after additional testing is completed
     170   @@ -436,6 +436,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectoryLockException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectoryLockException.html index 4a99ab3fa..c99dc4279 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectoryLockException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectoryLockException.html @@ -145,6 +145,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectorySpinLock.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectorySpinLock.html index 52ba35056..4da8cc050 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectorySpinLock.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectorySpinLock.html @@ -475,6 +475,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.InvalidDirectoryException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.InvalidDirectoryException.html index 703cd20ac..f1d0d9125 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.InvalidDirectoryException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.InvalidDirectoryException.html @@ -145,6 +145,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.CachedWebDataSource.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.CachedWebDataSource.html index 247687cd1..9bf1b6ee3 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.CachedWebDataSource.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.CachedWebDataSource.html @@ -95,6 +95,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateException.html index f6ef44286..67722011a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateException.html @@ -149,6 +149,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateService.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateService.html index 061a55186..47a7824fd 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateService.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateService.html @@ -146,6 +146,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.BaseIndex.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.BaseIndex.html index 484e41de8..de4897d6b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.BaseIndex.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.BaseIndex.html @@ -174,7 +174,7 @@
          */
     86  
         public boolean isOpen() {
    -  87  6
             return indexOpen;
    +  87  8
             return indexOpen;
     88  
         }
     89   @@ -230,6 +230,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CPEAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CPEAnalyzer.html deleted file mode 100644 index 05f86dd4b..000000000 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CPEAnalyzer.html +++ /dev/null @@ -1,1385 +0,0 @@ - - - - -Coverage Report - - - - -
    Coverage Report - org.owasp.dependencycheck.data.cpe.CPEAnalyzer
    -
     
    - - - - - - -
    Classes in this File Line Coverage Branch Coverage Complexity
    CPEAnalyzer
    86%
    163/188
    83%
    97/116
    3.844
    CPEAnalyzer$IdentifierConfidence
    100%
    3/3
    N/A
    3.844
    CPEAnalyzer$IdentifierMatch
    38%
    15/39
    16%
    4/24
    3.844
    -
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.cpe;
     20  
     
     21  
     import java.io.IOException;
     22  
     import java.io.UnsupportedEncodingException;
     23  
     import java.net.URLEncoder;
     24  
     import java.sql.SQLException;
     25  
     import java.util.ArrayList;
     26  
     import java.util.Collections;
     27  
     import java.util.List;
     28  
     import java.util.Set;
     29  
     import java.util.StringTokenizer;
     30  
     import java.util.logging.Level;
     31  
     import java.util.logging.Logger;
     32  
     import org.apache.lucene.document.Document;
     33  
     import org.apache.lucene.index.CorruptIndexException;
     34  
     import org.apache.lucene.queryparser.classic.ParseException;
     35  
     import org.apache.lucene.search.ScoreDoc;
     36  
     import org.apache.lucene.search.TopDocs;
     37  
     import org.owasp.dependencycheck.Engine;
     38  
     import org.owasp.dependencycheck.analyzer.AnalysisException;
     39  
     import org.owasp.dependencycheck.analyzer.AnalysisPhase;
     40  
     import org.owasp.dependencycheck.data.lucene.LuceneUtils;
     41  
     import org.owasp.dependencycheck.dependency.Dependency;
     42  
     import org.owasp.dependencycheck.dependency.Evidence;
     43  
     import org.owasp.dependencycheck.dependency.Evidence.Confidence;
     44  
     import org.owasp.dependencycheck.dependency.EvidenceCollection;
     45  
     import org.owasp.dependencycheck.analyzer.Analyzer;
     46  
     import org.owasp.dependencycheck.data.nvdcve.CveDB;
     47  
     import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
     48  
     import org.owasp.dependencycheck.dependency.Identifier;
     49  
     import org.owasp.dependencycheck.dependency.VulnerableSoftware;
     50  
     import org.owasp.dependencycheck.utils.DependencyVersion;
     51  
     import org.owasp.dependencycheck.utils.DependencyVersionUtil;
     52  
     
     53  
     /**
     54  
      * CPEAnalyzer is a utility class that takes a project dependency and attempts
     55  
      * to discern if there is an associated CPE. It uses the evidence contained
     56  
      * within the dependency to search the Lucene index.
     57  
      *
     58  
      * @author Jeremy Long (jeremy.long@owasp.org)
     59  
      */
     60  30
     public class CPEAnalyzer implements Analyzer {
     61  
     
     62  
         /**
     63  
          * The maximum number of query results to return.
     64  
          */
     65  
         static final int MAX_QUERY_RESULTS = 25;
     66  
         /**
     67  
          * The weighting boost to give terms when constructing the Lucene query.
     68  
          */
     69  
         static final String WEIGHTING_BOOST = "^5";
     70  
         /**
     71  
          * A string representation of a regular expression defining characters
     72  
          * utilized within the CPE Names.
     73  
          */
     74  
         static final String CLEANSE_CHARACTER_RX = "[^A-Za-z0-9 ._-]";
     75  
         /**
     76  
          * A string representation of a regular expression used to remove all but
     77  
          * alpha characters.
     78  
          */
     79  
         static final String CLEANSE_NONALPHA_RX = "[^A-Za-z]*";
     80  
         /**
     81  
          * The additional size to add to a new StringBuilder to account for extra
     82  
          * data that will be written into the string.
     83  
          */
     84  
         static final int STRING_BUILDER_BUFFER = 20;
     85  
         /**
     86  
          * The CPE Index.
     87  
          */
     88  
         private Index cpe;
     89  
         /**
     90  
          * The CVE Database.
     91  
          */
     92  
         private CveDB cve;
     93  
     
     94  
         /**
     95  
          * Opens the data source.
     96  
          *
     97  
          * @throws IOException when the Lucene directory to be queried does not
     98  
          * exist or is corrupt.
     99  
          * @throws DatabaseException when the database throws an exception. This
     100  
          * usually occurs when the database is in use by another process.
     101  
          */
     102  
         public void open() throws IOException, DatabaseException {
     103  24
             cpe = new Index();
     104  24
             cpe.open();
     105  24
             cve = new CveDB();
     106  
             try {
     107  24
                 cve.open();
     108  0
             } catch (SQLException ex) {
     109  0
                 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex);
     110  0
                 throw new DatabaseException("Unable to open the cve db", ex);
     111  0
             } catch (ClassNotFoundException ex) {
     112  0
                 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex);
     113  0
                 throw new DatabaseException("Unable to open the cve db", ex);
     114  24
             }
     115  24
         }
     116  
     
     117  
         /**
     118  
          * Closes the data source.
     119  
          */
     120  
         @Override
     121  
         public void close() {
     122  24
             cpe.close();
     123  24
             cve.close();
     124  24
         }
     125  
     
     126  
         /**
     127  
          * Returns the status of the data source - is the index open.
     128  
          *
     129  
          * @return true or false.
     130  
          */
     131  
         public boolean isOpen() {
     132  22
             return (cpe != null) && cpe.isOpen();
     133  
         }
     134  
     
     135  
         /**
     136  
          * Ensures that the Lucene index is closed.
     137  
          *
     138  
          * @throws Throwable when a throwable is thrown.
     139  
          */
     140  
         @Override
     141  
         protected void finalize() throws Throwable {
     142  13
             super.finalize();
     143  13
             if (isOpen()) {
     144  0
                 close();
     145  
             }
     146  13
         }
     147  
     
     148  
         /**
     149  
          * Searches the data store of CPE entries, trying to identify the CPE for
     150  
          * the given dependency based on the evidence contained within. The
     151  
          * dependency passed in is updated with any identified CPE values.
     152  
          *
     153  
          * @param dependency the dependency to search for CPE entries on.
     154  
          * @throws CorruptIndexException is thrown when the Lucene index is corrupt.
     155  
          * @throws IOException is thrown when an IOException occurs.
     156  
          * @throws ParseException is thrown when the Lucene query cannot be parsed.
     157  
          */
     158  
         protected void determineCPE(Dependency dependency) throws CorruptIndexException, IOException, ParseException {
     159  27
             Confidence vendorConf = Confidence.HIGHEST;
     160  27
             Confidence productConf = Confidence.HIGHEST;
     161  
     
     162  27
             String vendors = addEvidenceWithoutDuplicateTerms("", dependency.getVendorEvidence(), vendorConf);
     163  27
             String products = addEvidenceWithoutDuplicateTerms("", dependency.getProductEvidence(), productConf);
     164  
     
     165  
             //boolean found = false;
     166  27
             int ctr = 0;
     167  
             do {
     168  108
                 if (!vendors.isEmpty() && !products.isEmpty()) {
     169  108
                     final List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(),
     170  
                             dependency.getVendorEvidence().getWeighting());
     171  
     
     172  108
                     for (IndexEntry e : entries) {
     173  468
                         if (verifyEntry(e, dependency)) {
     174  
                             //found = true; // we found a vendor/product pair. Now find version from the cve db.
     175  39
                             final String vendor = e.getVendor();
     176  39
                             final String product = e.getProduct();
     177  
                             // cve.getVersions(vendor, product);
     178  39
                             determineIdentifiers(dependency, vendor, product);
     179  468
                         }
     180  
                     }
     181  
                 }
     182  
                 //if (!found) {
     183  108
                 vendorConf = reduceConfidence(vendorConf);
     184  108
                 if (dependency.getVendorEvidence().contains(vendorConf)) {
     185  
                     //vendors += " " + dependency.getVendorEvidence().toString(vendorConf);
     186  102
                     vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf);
     187  
                 }
     188  108
                 productConf = reduceConfidence(productConf);
     189  108
                 if (dependency.getProductEvidence().contains(productConf)) {
     190  
                     //products += " " + dependency.getProductEvidence().toString(productConf);
     191  108
                     products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf);
     192  
                 }
     193  
                 //}
     194  
                 //} while (!found && (++ctr) < 4);
     195  108
             } while ((++ctr) < 4);
     196  27
         }
     197  
     
     198  
         /**
     199  
          * Returns the text created by concatenating the text and the values from
     200  
          * the EvidenceCollection (filtered for a specific confidence). This
     201  
          * attempts to prevent duplicate terms from being added.<br/<br/> Note, if
     202  
          * the evidence is longer then 200 characters it will be truncated.
     203  
          *
     204  
          * @param text the base text.
     205  
          * @param ec an EvidenceCollection
     206  
          * @param confidenceFilter a Confidence level to filter the evidence by.
     207  
          * @return the new evidence text
     208  
          */
     209  
         private String addEvidenceWithoutDuplicateTerms(final String text, final EvidenceCollection ec, Confidence confidenceFilter) {
     210  264
             final String txt = (text == null) ? "" : text;
     211  264
             final StringBuilder sb = new StringBuilder(txt.length() + (20 * ec.size()));
     212  264
             sb.append(' ').append(txt).append(' ');
     213  264
             for (Evidence e : ec.iterator(confidenceFilter)) {
     214  672
                 String value = e.getValue();
     215  
     
     216  
                 //hack to get around the fact that lucene does a really good job of recognizing domains and not
     217  
                 // splitting them. TODO - put together a better lucene analyzer specific to the domain.
     218  672
                 if (value.startsWith("http://")) {
     219  48
                     value = value.substring(7).replaceAll("\\.", " ");
     220  
                 }
     221  672
                 if (value.startsWith("https://")) {
     222  0
                     value = value.substring(8).replaceAll("\\.", " ");
     223  
                 }
     224  672
                 if (sb.indexOf(" " + value + " ") < 0) {
     225  429
                     sb.append(value).append(' ');
     226  
                 }
     227  672
             }
     228  264
             return sb.toString().trim();
     229  
         }
     230  
     
     231  
         /**
     232  
          * Reduces the given confidence by one level. This returns LOW if the
     233  
          * confidence passed in is not HIGH.
     234  
          *
     235  
          * @param c the confidence to reduce.
     236  
          * @return One less then the confidence passed in.
     237  
          */
     238  
         private Confidence reduceConfidence(final Confidence c) {
     239  216
             if (c == Confidence.HIGHEST) {
     240  54
                 return Confidence.HIGH;
     241  162
             } else if (c == Confidence.HIGH) {
     242  54
                 return Confidence.MEDIUM;
     243  
             } else {
     244  108
                 return Confidence.LOW;
     245  
             }
     246  
         }
     247  
     
     248  
         /**
     249  
          * <p>Searches the Lucene CPE index to identify possible CPE entries
     250  
          * associated with the supplied vendor, product, and version.</p>
     251  
          *
     252  
          * <p>If either the vendorWeightings or productWeightings lists have been
     253  
          * populated this data is used to add weighting factors to the search.</p>
     254  
          *
     255  
          * @param vendor the text used to search the vendor field
     256  
          * @param product the text used to search the product field
     257  
          * @param vendorWeightings a list of strings to use to add weighting factors
     258  
          * to the vendor field
     259  
          * @param productWeightings Adds a list of strings that will be used to add
     260  
          * weighting factors to the product search
     261  
          * @return a list of possible CPE values
     262  
          * @throws CorruptIndexException when the Lucene index is corrupt
     263  
          * @throws IOException when the Lucene index is not found
     264  
          * @throws ParseException when the generated query is not valid
     265  
          */
     266  
         protected List<IndexEntry> searchCPE(String vendor, String product,
     267  
                 Set<String> vendorWeightings, Set<String> productWeightings)
     268  
                 throws CorruptIndexException, IOException, ParseException {
     269  111
             final ArrayList<IndexEntry> ret = new ArrayList<IndexEntry>(MAX_QUERY_RESULTS);
     270  
     
     271  111
             final String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings);
     272  111
             if (searchString == null) {
     273  0
                 return ret;
     274  
             }
     275  
     
     276  111
             final TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS);
     277  2820
             for (ScoreDoc d : docs.scoreDocs) {
     278  2709
                 final Document doc = cpe.getDocument(d.doc);
     279  2709
                 final IndexEntry entry = new IndexEntry();
     280  2709
                 entry.setVendor(doc.get(Fields.VENDOR));
     281  2709
                 entry.setProduct(doc.get(Fields.PRODUCT));
     282  2709
                 entry.setSearchScore(d.score);
     283  2709
                 if (!ret.contains(entry)) {
     284  474
                     ret.add(entry);
     285  
                 }
     286  
             }
     287  111
             return ret;
     288  
         }
     289  
     
     290  
         /**
     291  
          * <p>Builds a Lucene search string by properly escaping data and
     292  
          * constructing a valid search query.</p>
     293  
          *
     294  
          * <p>If either the possibleVendor or possibleProducts lists have been
     295  
          * populated this data is used to add weighting factors to the search string
     296  
          * generated.</p>
     297  
          *
     298  
          * @param vendor text to search the vendor field
     299  
          * @param product text to search the product field
     300  
          * @param vendorWeighting a list of strings to apply to the vendor to boost
     301  
          * the terms weight
     302  
          * @param productWeightings a list of strings to apply to the product to
     303  
          * boost the terms weight
     304  
          * @return the Lucene query
     305  
          */
     306  
         protected String buildSearch(String vendor, String product,
     307  
                 Set<String> vendorWeighting, Set<String> productWeightings) {
     308  123
             final String v = vendor; //.replaceAll("[^\\w\\d]", " ");
     309  123
             final String p = product; //.replaceAll("[^\\w\\d]", " ");
     310  123
             final StringBuilder sb = new StringBuilder(v.length() + p.length()
     311  
                     + Fields.PRODUCT.length() + Fields.VENDOR.length() + STRING_BUILDER_BUFFER);
     312  
     
     313  123
             if (!appendWeightedSearch(sb, Fields.PRODUCT, p, productWeightings)) {
     314  0
                 return null;
     315  
             }
     316  123
             sb.append(" AND ");
     317  123
             if (!appendWeightedSearch(sb, Fields.VENDOR, v, vendorWeighting)) {
     318  0
                 return null;
     319  
             }
     320  123
             return sb.toString();
     321  
         }
     322  
     
     323  
         /**
     324  
          * This method constructs a Lucene query for a given field. The searchText
     325  
          * is split into separate words and if the word is within the list of
     326  
          * weighted words then an additional weighting is applied to the term as it
     327  
          * is appended into the query.
     328  
          *
     329  
          * @param sb a StringBuilder that the query text will be appended to.
     330  
          * @param field the field within the Lucene index that the query is
     331  
          * searching.
     332  
          * @param searchText text used to construct the query.
     333  
          * @param weightedText a list of terms that will be considered higher
     334  
          * importance when searching.
     335  
          * @return if the append was successful.
     336  
          */
     337  
         private boolean appendWeightedSearch(StringBuilder sb, String field, String searchText, Set<String> weightedText) {
     338  246
             sb.append(" ").append(field).append(":( ");
     339  
     
     340  246
             final String cleanText = cleanseText(searchText);
     341  
     
     342  246
             if ("".equals(cleanText)) {
     343  0
                 return false;
     344  
             }
     345  
     
     346  246
             if (weightedText == null || weightedText.isEmpty()) {
     347  36
                 LuceneUtils.appendEscapedLuceneQuery(sb, cleanText);
     348  
             } else {
     349  210
                 final StringTokenizer tokens = new StringTokenizer(cleanText);
     350  2628
                 while (tokens.hasMoreElements()) {
     351  2418
                     final String word = tokens.nextToken();
     352  2418
                     String temp = null;
     353  2418
                     for (String weighted : weightedText) {
     354  4968
                         final String weightedStr = cleanseText(weighted);
     355  4968
                         if (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) {
     356  492
                             temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST;
     357  492
                             if (!word.equalsIgnoreCase(weightedStr)) {
     358  24
                                 temp += " " + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST;
     359  
                             }
     360  
                         }
     361  4968
                     }
     362  2418
                     if (temp == null) {
     363  1926
                         temp = LuceneUtils.escapeLuceneQuery(word);
     364  
                     }
     365  2418
                     sb.append(" ").append(temp);
     366  2418
                 }
     367  
             }
     368  246
             sb.append(" ) ");
     369  246
             return true;
     370  
         }
     371  
     
     372  
         /**
     373  
          * Removes characters from the input text that are not used within the CPE
     374  
          * index.
     375  
          *
     376  
          * @param text is the text to remove the characters from.
     377  
          * @return the text having removed some characters.
     378  
          */
     379  
         private String cleanseText(String text) {
     380  5214
             return text.replaceAll(CLEANSE_CHARACTER_RX, " ");
     381  
         }
     382  
     
     383  
         /**
     384  
          * Compares two strings after lower casing them and removing the non-alpha
     385  
          * characters.
     386  
          *
     387  
          * @param l string one to compare.
     388  
          * @param r string two to compare.
     389  
          * @return whether or not the two strings are similar.
     390  
          */
     391  
         private boolean equalsIgnoreCaseAndNonAlpha(String l, String r) {
     392  4968
             if (l == null || r == null) {
     393  0
                 return false;
     394  
             }
     395  
     
     396  4968
             final String left = l.replaceAll(CLEANSE_NONALPHA_RX, "");
     397  4968
             final String right = r.replaceAll(CLEANSE_NONALPHA_RX, "");
     398  4968
             return left.equalsIgnoreCase(right);
     399  
         }
     400  
     
     401  
         /**
     402  
          * Ensures that the CPE Identified matches the dependency. This validates
     403  
          * that the product, vendor, and version information for the CPE are
     404  
          * contained within the dependencies evidence.
     405  
          *
     406  
          * @param entry a CPE entry.
     407  
          * @param dependency the dependency that the CPE entries could be for.
     408  
          * @return whether or not the entry is valid.
     409  
          */
     410  
         private boolean verifyEntry(final IndexEntry entry, final Dependency dependency) {
     411  468
             boolean isValid = false;
     412  
     
     413  468
             if (collectionContainsString(dependency.getProductEvidence(), entry.getProduct())
     414  
                     && collectionContainsString(dependency.getVendorEvidence(), entry.getVendor())) {
     415  
                 //&& collectionContainsVersion(dependency.getVersionEvidence(), entry.getVersion())
     416  39
                 isValid = true;
     417  
             }
     418  468
             return isValid;
     419  
         }
     420  
     
     421  
         /**
     422  
          * Used to determine if the EvidenceCollection contains a specific string.
     423  
          *
     424  
          * @param ec an EvidenceCollection
     425  
          * @param text the text to search for
     426  
          * @return whether or not the EvidenceCollection contains the string
     427  
          */
     428  
         private boolean collectionContainsString(EvidenceCollection ec, String text) {
     429  
     
     430  
             //<editor-fold defaultstate="collapsed" desc="This code fold contains an old version of the code, delete once more testing is done">
     431  
             //        String[] splitText = text.split("[\\s_-]");
     432  
             //
     433  
             //        for (String search : splitText) {
     434  
             //            //final String search = text.replaceAll("[\\s_-]", "").toLowerCase();
     435  
             //            if (ec.containsUsedString(search)) {
     436  
             //                return true;
     437  
             //            }
     438  
             //        }
     439  
             //</editor-fold>
     440  
     
     441  
             //TODO - likely need to change the split... not sure if this will work for CPE with special chars
     442  513
             final String[] words = text.split("[\\s_-]");
     443  513
             final List<String> list = new ArrayList<String>();
     444  513
             String tempWord = null;
     445  1410
             for (String word : words) {
     446  
                 //single letter words should be concatonated with the next word.
     447  
                 // so { "m", "core", "sample" } -> { "mcore", "sample" }
     448  897
                 if (tempWord != null) {
     449  48
                     list.add(tempWord + word);
     450  48
                     tempWord = null;
     451  849
                 } else if (word.length() <= 2) {
     452  51
                     tempWord = word;
     453  
                 } else {
     454  798
                     list.add(word);
     455  
                 }
     456  
             }
     457  
     //        if (tempWord != null) {
     458  
     //            //for now ignore any last single letter words...
     459  
     //        }
     460  513
             boolean contains = true;
     461  513
             for (String word : list) {
     462  846
                 contains &= ec.containsUsedString(word);
     463  
             }
     464  513
             return contains;
     465  
         }
     466  
     
     467  
         /**
     468  
          * Analyzes a dependency and attempts to determine if there are any CPE
     469  
          * identifiers for this dependency.
     470  
          *
     471  
          * @param dependency The Dependency to analyze.
     472  
          * @param engine The analysis engine
     473  
          * @throws AnalysisException is thrown if there is an issue analyzing the
     474  
          * dependency.
     475  
          */
     476  
         @Override
     477  
         public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
     478  
             try {
     479  15
                 determineCPE(dependency);
     480  0
             } catch (CorruptIndexException ex) {
     481  0
                 throw new AnalysisException("CPE Index is corrupt.", ex);
     482  0
             } catch (IOException ex) {
     483  0
                 throw new AnalysisException("Failure opening the CPE Index.", ex);
     484  0
             } catch (ParseException ex) {
     485  0
                 throw new AnalysisException("Unable to parse the generated Lucene query for this dependency.", ex);
     486  15
             }
     487  15
         }
     488  
     
     489  
         /**
     490  
          * Returns true because this analyzer supports all dependency types.
     491  
          *
     492  
          * @return true.
     493  
          */
     494  
         @Override
     495  
         public Set<String> getSupportedExtensions() {
     496  17289
             return null;
     497  
         }
     498  
     
     499  
         /**
     500  
          * Returns the name of this analyzer.
     501  
          *
     502  
          * @return the name of this analyzer.
     503  
          */
     504  
         @Override
     505  
         public String getName() {
     506  0
             return "CPE Analyzer";
     507  
         }
     508  
     
     509  
         /**
     510  
          * Returns true because this analyzer supports all dependency types.
     511  
          *
     512  
          * @param extension the file extension of the dependency being analyzed.
     513  
          * @return true.
     514  
          */
     515  
         @Override
     516  
         public boolean supportsExtension(String extension) {
     517  0
             return true;
     518  
         }
     519  
     
     520  
         /**
     521  
          * Returns the analysis phase that this analyzer should run in.
     522  
          *
     523  
          * @return the analysis phase that this analyzer should run in.
     524  
          */
     525  
         @Override
     526  
         public AnalysisPhase getAnalysisPhase() {
     527  3
             return AnalysisPhase.IDENTIFIER_ANALYSIS;
     528  
         }
     529  
     
     530  
         /**
     531  
          * Opens the CPE Lucene Index.
     532  
          *
     533  
          * @throws Exception is thrown if there is an issue opening the index.
     534  
          */
     535  
         @Override
     536  
         public void initialize() throws Exception {
     537  0
             this.open();
     538  0
         }
     539  
     
     540  
         /**
     541  
          * Retrieves a list of CPE values from the CveDB based on the vendor and
     542  
          * product passed in. The list is then validated to find only CPEs that are
     543  
          * valid for the given dependency. It is possible that the CPE identified is
     544  
          * a best effort "guess" based on the vendor, product, and version
     545  
          * information.
     546  
          *
     547  
          * @param dependency the Dependency being analyzed
     548  
          * @param vendor the vendor for the CPE being analyzed
     549  
          * @param product the product for the CPE being analyzed
     550  
          * @throws UnsupportedEncodingException is thrown if UTF-8 is not supported
     551  
          */
     552  
         private void determineIdentifiers(Dependency dependency, String vendor, String product) throws UnsupportedEncodingException {
     553  39
             final Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product);
     554  39
             DependencyVersion bestGuess = new DependencyVersion("-");
     555  39
             Confidence bestGuessConf = null;
     556  39
             final List<IdentifierMatch> collected = new ArrayList<IdentifierMatch>();
     557  195
             for (Confidence conf : Confidence.values()) {
     558  156
                 for (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) {
     559  126
                     final DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue());
     560  126
                     if (evVer == null) {
     561  0
                         continue;
     562  
                     }
     563  126
                     for (VulnerableSoftware vs : cpes) {
     564  
                         DependencyVersion dbVer;
     565  2757
                         if (vs.getRevision() != null && !vs.getRevision().isEmpty()) {
     566  495
                             dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + "." + vs.getRevision());
     567  
                         } else {
     568  2262
                             dbVer = DependencyVersionUtil.parseVersion(vs.getVersion());
     569  
                         }
     570  2757
                         if (dbVer == null //special case, no version specified - everything is vulnerable
     571  
                                 || evVer.equals(dbVer)) { //woot exect match
     572  87
                             final String url = String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(vs.getName(), "UTF-8"));
     573  87
                             final IdentifierMatch match = new IdentifierMatch("cpe", vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf);
     574  87
                             collected.add(match);
     575  87
                         } else {
     576  
                             //TODO the following isn't quite right is it? need to think about this guessing game a bit more.
     577  2670
                             if (evVer.getVersionParts().size() <= dbVer.getVersionParts().size()
     578  
                                     && evVer.matchesAtLeastThreeLevels(dbVer)) {
     579  195
                                 if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) {
     580  15
                                     if (bestGuess.getVersionParts().size() < dbVer.getVersionParts().size()) {
     581  15
                                         bestGuess = dbVer;
     582  15
                                         bestGuessConf = conf;
     583  
                                     }
     584  
                                 }
     585  
                             }
     586  
                         }
     587  2757
                     }
     588  126
                     if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) {
     589  24
                         if (bestGuess.getVersionParts().size() < evVer.getVersionParts().size()) {
     590  24
                             bestGuess = evVer;
     591  24
                             bestGuessConf = conf;
     592  
                         }
     593  
                     }
     594  126
                 }
     595  
             }
     596  39
             final String cpeName = String.format("cpe:/a:%s:%s:%s", vendor, product, bestGuess.toString());
     597  39
             final String url = null; //String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8"));
     598  39
             if (bestGuessConf == null) {
     599  0
                 bestGuessConf = Confidence.LOW;
     600  
             }
     601  39
             final IdentifierMatch match = new IdentifierMatch("cpe", cpeName, url, IdentifierConfidence.BEST_GUESS, bestGuessConf);
     602  39
             collected.add(match);
     603  
     
     604  39
             Collections.sort(collected);
     605  39
             final IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence();
     606  39
             final Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence();
     607  39
             for (IdentifierMatch m : collected) {
     608  126
                 if (bestIdentifierQuality.equals(m.getConfidence())
     609  
                         && bestEvidenceQuality.equals(m.getEvidenceConfidence())) {
     610  48
                     dependency.addIdentifier(m.getIdentifier());
     611  
                 }
     612  
             }
     613  39
         }
     614  
     
     615  
         /**
     616  
          * The confidence whether the identifier is an exact match, or a best guess.
     617  
          */
     618  9
         private enum IdentifierConfidence {
     619  
     
     620  
             /**
     621  
              * An exact match for the CPE.
     622  
              */
     623  3
             EXACT_MATCH,
     624  
             /**
     625  
              * A best guess for the CPE.
     626  
              */
     627  3
             BEST_GUESS
     628  
         }
     629  
     
     630  
         /**
     631  
          * A simple object to hold an identifier and carry information about the
     632  
          * confidence in the identifier.
     633  
          */
     634  117
         private static class IdentifierMatch implements Comparable<IdentifierMatch> {
     635  
     
     636  
             /**
     637  
              * Constructs an IdentiferMatch.
     638  
              *
     639  
              * @param type the type of identifier (such as CPE)
     640  
              * @param value the value of the identifier
     641  
              * @param url the URL of the identifier
     642  
              * @param identifierConfidence the confidence in the identifier: best
     643  
              * guess or exact match
     644  
              * @param evidenceConfidence the confidence of the evidence used to find
     645  
              * the identifier
     646  
              */
     647  126
             IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) {
     648  126
                 this.identifier = new Identifier(type, value, url);
     649  126
                 this.confidence = identifierConfidence;
     650  126
                 this.evidenceConfidence = evidenceConfidence;
     651  126
             }
     652  
             //<editor-fold defaultstate="collapsed" desc="Property implementations: evidenceConfidence, confidence, identifier">
     653  
             /**
     654  
              * The confidence in the evidence used to identify this match.
     655  
              */
     656  
             private Confidence evidenceConfidence;
     657  
     
     658  
             /**
     659  
              * Get the value of evidenceConfidence
     660  
              *
     661  
              * @return the value of evidenceConfidence
     662  
              */
     663  
             public Confidence getEvidenceConfidence() {
     664  135
                 return evidenceConfidence;
     665  
             }
     666  
     
     667  
             /**
     668  
              * Set the value of evidenceConfidence
     669  
              *
     670  
              * @param evidenceConfidence new value of evidenceConfidence
     671  
              */
     672  
             public void setEvidenceConfidence(Confidence evidenceConfidence) {
     673  0
                 this.evidenceConfidence = evidenceConfidence;
     674  0
             }
     675  
             /**
     676  
              * The confidence whether this is an exact match, or a best guess.
     677  
              */
     678  
             private IdentifierConfidence confidence;
     679  
     
     680  
             /**
     681  
              * Get the value of confidence.
     682  
              *
     683  
              * @return the value of confidence
     684  
              */
     685  
             public IdentifierConfidence getConfidence() {
     686  165
                 return confidence;
     687  
             }
     688  
     
     689  
             /**
     690  
              * Set the value of confidence.
     691  
              *
     692  
              * @param confidence new value of confidence
     693  
              */
     694  
             public void setConfidence(IdentifierConfidence confidence) {
     695  0
                 this.confidence = confidence;
     696  0
             }
     697  
             /**
     698  
              * The CPE identifier.
     699  
              */
     700  
             private Identifier identifier;
     701  
     
     702  
             /**
     703  
              * Get the value of identifier.
     704  
              *
     705  
              * @return the value of identifier
     706  
              */
     707  
             public Identifier getIdentifier() {
     708  48
                 return identifier;
     709  
             }
     710  
     
     711  
             /**
     712  
              * Set the value of identifier.
     713  
              *
     714  
              * @param identifier new value of identifier
     715  
              */
     716  
             public void setIdentifier(Identifier identifier) {
     717  0
                 this.identifier = identifier;
     718  0
             }
     719  
             //</editor-fold>
     720  
             //<editor-fold defaultstate="collapsed" desc="Standard implementations of toString, hashCode, and equals">
     721  
     
     722  
             /**
     723  
              * Standard toString() implementation.
     724  
              *
     725  
              * @return the string representation of the object
     726  
              */
     727  
             @Override
     728  
             public String toString() {
     729  0
                 return "IdentifierMatch{" + "evidenceConfidence=" + evidenceConfidence
     730  
                         + ", confidence=" + confidence + ", identifier=" + identifier + '}';
     731  
             }
     732  
     
     733  
             /**
     734  
              * Standard hashCode() implementation.
     735  
              *
     736  
              * @return the hashCode
     737  
              */
     738  
             @Override
     739  
             public int hashCode() {
     740  0
                 int hash = 5;
     741  0
                 hash = 97 * hash + (this.evidenceConfidence != null ? this.evidenceConfidence.hashCode() : 0);
     742  0
                 hash = 97 * hash + (this.confidence != null ? this.confidence.hashCode() : 0);
     743  0
                 hash = 97 * hash + (this.identifier != null ? this.identifier.hashCode() : 0);
     744  0
                 return hash;
     745  
             }
     746  
     
     747  
             /**
     748  
              * Standard equals implementation.
     749  
              *
     750  
              * @param obj the object to compare
     751  
              * @return true if the objects are equal, otherwise false
     752  
              */
     753  
             @Override
     754  
             public boolean equals(Object obj) {
     755  0
                 if (obj == null) {
     756  0
                     return false;
     757  
                 }
     758  0
                 if (getClass() != obj.getClass()) {
     759  0
                     return false;
     760  
                 }
     761  0
                 final IdentifierMatch other = (IdentifierMatch) obj;
     762  0
                 if (this.evidenceConfidence != other.evidenceConfidence) {
     763  0
                     return false;
     764  
                 }
     765  0
                 if (this.confidence != other.confidence) {
     766  0
                     return false;
     767  
                 }
     768  0
                 if (this.identifier != other.identifier && (this.identifier == null || !this.identifier.equals(other.identifier))) {
     769  0
                     return false;
     770  
                 }
     771  0
                 return true;
     772  
             }
     773  
             //</editor-fold>
     774  
     
     775  
             /**
     776  
              * Standard implementation of compareTo that compares identifier
     777  
              * confidence, evidence confidence, and then the identifier.
     778  
              *
     779  
              * @param o the IdentifierMatch to compare to
     780  
              * @return the natural ordering of IdentifierMatch
     781  
              */
     782  
             @Override
     783  
             public int compareTo(IdentifierMatch o) {
     784  117
                 int conf = this.confidence.compareTo(o.confidence);
     785  117
                 if (conf == 0) {
     786  87
                     conf = this.evidenceConfidence.compareTo(o.evidenceConfidence);
     787  87
                     if (conf == 0) {
     788  33
                         conf = identifier.compareTo(o.identifier);
     789  
                     }
     790  
                 }
     791  117
                 return conf;
     792  
             }
     793  
         }
     794  
     }
    - - - - diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CpeIndexReader.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CpeIndexReader.html index 79e9d1207..a74d2fdbf 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CpeIndexReader.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CpeIndexReader.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    CpeIndexReader
    75%
    28/37
    25%
    2/8
    1.714
    CpeIndexReader
    60%
    30/50
    31%
    5/16
    2.429
     
    @@ -107,7 +107,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     45  
      */
    -  46  9
     public class CpeIndexReader extends BaseIndex {
    +  46  10
     public class CpeIndexReader extends BaseIndex {
     47  
     
     48   @@ -176,12 +176,12 @@
         public void open() throws IOException {
     80  
             //TODO add spinlock (shared)
    -  81  9
             super.open();
    -  82  9
             indexReader = DirectoryReader.open(getDirectory());
    -  83  9
             indexSearcher = new IndexSearcher(indexReader);
    -  84  9
             searchingAnalyzer = createSearchingAnalyzer();
    -  85  9
             queryParser = new QueryParser(Version.LUCENE_43, Fields.DOCUMENT_KEY, searchingAnalyzer);
    -  86  9
         }
    +  81  10
             super.open();
    +  82  10
             indexReader = DirectoryReader.open(getDirectory());
    +  83  10
             indexSearcher = new IndexSearcher(indexReader);
    +  84  10
             searchingAnalyzer = createSearchingAnalyzer();
    +  85  10
             queryParser = new QueryParser(Version.LUCENE_43, Fields.DOCUMENT_KEY, searchingAnalyzer);
    +  86  10
         }
     87  
     
     88   @@ -196,25 +196,25 @@
         public void close() {
     93  
             //TODO remove spinlock (shared)
    -  94  9
             if (searchingAnalyzer != null) {
    -  95  9
                 searchingAnalyzer.close();
    -  96  9
                 searchingAnalyzer = null;
    +  94  10
             if (searchingAnalyzer != null) {
    +  95  10
                 searchingAnalyzer.close();
    +  96  10
                 searchingAnalyzer = null;
     97  
             }
    -  98  9
             if (indexReader != null) {
    +  98  10
             if (indexReader != null) {
     99  
                 try {
    -  100  9
                     indexReader.close();
    +  100  10
                     indexReader.close();
     101  0
                 } catch (IOException ex) {
     102  0
                     Logger.getLogger(CpeIndexReader.class.getName()).log(Level.FINEST, null, ex);
    -  103  9
                 }
    -  104  9
                 indexReader = null;
    +  103  10
                 }
    +  104  10
                 indexReader = null;
     105  
             }
    -  106  9
             queryParser = null;
    -  107  9
             indexSearcher = null;
    -  108  9
             super.close();
    -  109  9
         }
    +  106  10
             queryParser = null;
    +  107  10
             indexSearcher = null;
    +  108  10
             super.close();
    +  109  10
         }
     110  
     
     111   @@ -239,107 +239,130 @@
          */
     121  
         public TopDocs search(String searchString, int maxQueryResults) throws ParseException, IOException {
    -  122  41
             final Query query = queryParser.parse(searchString);
    -  123  41
             return indexSearcher.search(query, maxQueryResults);
    +  122  53
             if (searchString == null || searchString.trim().isEmpty()) {
    +  123  0
                 throw new ParseException("Query is null or empty");
     124   -
         }
    -  125   -
     
    -  126   -
         /**
    -  127   -
          * Searches the index using the given query.
    +
             }
    +  125  53
             if (queryParser == null) {
    +  126  0
                 if (isOpen()) {
    +  127  0
                     final String msg = String.format("QueryParser is null for query: '%s'. Attempting to reopen index.",
     128   -
          *
    -  129   -
          * @param query the query used to search the index
    -  130   -
          * @param maxQueryResults the max number of results to return
    -  131   -
          * @return the TopDocs found be the query
    -  132   -
          * @throws CorruptIndexException thrown if the Index is corrupt
    -  133   -
          * @throws IOException thrown if there is an IOException
    +
                             searchString);
    +  129  0
                     Logger.getLogger(CpeIndexReader.class.getName()).log(Level.WARNING, msg);
    +  130  0
                     close();
    +  131  0
                     open();
    +  132  0
                 } else {
    +  133  0
                     final String msg = String.format("QueryParser is null, but data source is open, for query: '%s'. Attempting to reopen index.",
     134   -
          */
    -  135   -
         public TopDocs search(Query query, int maxQueryResults) throws CorruptIndexException, IOException {
    -  136  0
             resetSearchingAnalyzer();
    -  137  0
             return indexSearcher.search(query, maxQueryResults);
    +
                             searchString);
    +  135  0
                     Logger.getLogger(CpeIndexReader.class.getName()).log(Level.WARNING, msg);
    +  136  0
                     close();
    +  137  0
                     open();
     138   -
         }
    +
                 }
     139   -
     
    -  140   -
         /**
    -  141   -
          * Retrieves a document from the Index.
    +
             }
    +  140  53
             final Query query = queryParser.parse(searchString);
    +  141  53
             return indexSearcher.search(query, maxQueryResults);
     142   -
          *
    +
         }
     143   -
          * @param documentId the id of the document to retrieve
    +
     
     144   -
          * @return the Document
    +
         /**
     145   -
          * @throws IOException thrown if there is an IOException
    +
          * Searches the index using the given query.
     146   -
          */
    -  147   -
         public Document getDocument(int documentId) throws IOException {
    -  148  417
             return indexSearcher.doc(documentId);
    -  149   -
         }
    -  150   -
     
    -  151   -
         /**
    -  152   -
          * Creates an Analyzer for searching the CPE Index.
    -  153  
          *
    -  154   -
          * @return the CPE Analyzer.
    -  155   +  147   +
          * @param query the query used to search the index
    +  148   +
          * @param maxQueryResults the max number of results to return
    +  149   +
          * @return the TopDocs found be the query
    +  150   +
          * @throws CorruptIndexException thrown if the Index is corrupt
    +  151   +
          * @throws IOException thrown if there is an IOException
    +  152  
          */
    +  153   +
         public TopDocs search(Query query, int maxQueryResults) throws CorruptIndexException, IOException {
    +  154  0
             resetSearchingAnalyzer();
    +  155  0
             return indexSearcher.search(query, maxQueryResults);
     156   -
         @SuppressWarnings("unchecked")
    -  157   -
         private Analyzer createSearchingAnalyzer() {
    -  158  9
             final Map fieldAnalyzers = new HashMap();
    -  159  9
             fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer());
    -  160  9
             productSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43);
    -  161  9
             vendorSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43);
    -  162  9
             fieldAnalyzers.put(Fields.PRODUCT, productSearchFieldAnalyzer);
    -  163  9
             fieldAnalyzers.put(Fields.VENDOR, vendorSearchFieldAnalyzer);
    -  164   -
     
    -  165  9
             return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers);
    -  166  
         }
    -  167   +  157  
     
    -  168   +  158  
         /**
    -  169   -
          * Resets the searching analyzers
    -  170   +  159   +
          * Retrieves a document from the Index.
    +  160   +
          *
    +  161   +
          * @param documentId the id of the document to retrieve
    +  162   +
          * @return the Document
    +  163   +
          * @throws IOException thrown if there is an IOException
    +  164  
          */
    +  165   +
         public Document getDocument(int documentId) throws IOException {
    +  166  644
             return indexSearcher.doc(documentId);
    +  167   +
         }
    +  168   +
     
    +  169   +
         /**
    +  170   +
          * Creates an Analyzer for searching the CPE Index.
     171   -
         private void resetSearchingAnalyzer() {
    -  172  0
             if (productSearchFieldAnalyzer != null) {
    -  173  0
                 productSearchFieldAnalyzer.clear();
    +
          *
    +  172   +
          * @return the CPE Analyzer.
    +  173   +
          */
     174   +
         @SuppressWarnings("unchecked")
    +  175   +
         private Analyzer createSearchingAnalyzer() {
    +  176  10
             final Map fieldAnalyzers = new HashMap();
    +  177  10
             fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer());
    +  178  10
             productSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43);
    +  179  10
             vendorSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43);
    +  180  10
             fieldAnalyzers.put(Fields.PRODUCT, productSearchFieldAnalyzer);
    +  181  10
             fieldAnalyzers.put(Fields.VENDOR, vendorSearchFieldAnalyzer);
    +  182   +
     
    +  183  10
             return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers);
    +  184   +
         }
    +  185   +
     
    +  186   +
         /**
    +  187   +
          * Resets the searching analyzers
    +  188   +
          */
    +  189   +
         private void resetSearchingAnalyzer() {
    +  190  0
             if (productSearchFieldAnalyzer != null) {
    +  191  0
                 productSearchFieldAnalyzer.clear();
    +  192  
             }
    -  175  0
             if (vendorSearchFieldAnalyzer != null) {
    -  176  0
                 vendorSearchFieldAnalyzer.clear();
    -  177   +  193  0
             if (vendorSearchFieldAnalyzer != null) {
    +  194  0
                 vendorSearchFieldAnalyzer.clear();
    +  195  
             }
    -  178  0
         }
    -  179   +  196  0
         }
    +  197  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CpeIndexWriter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CpeIndexWriter.html index 190b2cd05..b3184ec37 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CpeIndexWriter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.CpeIndexWriter.html @@ -103,7 +103,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     43  
      */
    -  44  2
     public class CpeIndexWriter extends BaseIndex {
    +  44  1
     public class CpeIndexWriter extends BaseIndex {
     45  
     
     46   @@ -140,11 +140,11 @@
         public void open() throws IOException {
     62  
             //TODO add spinlock
    -  63  2
             super.open();
    -  64  2
             indexingAnalyzer = createIndexingAnalyzer();
    -  65  2
             final IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_43, indexingAnalyzer);
    -  66  2
             indexWriter = new IndexWriter(getDirectory(), conf);
    -  67  2
         }
    +  63  1
             super.open();
    +  64  1
             indexingAnalyzer = createIndexingAnalyzer();
    +  65  1
             final IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_43, indexingAnalyzer);
    +  66  1
             indexWriter = new IndexWriter(getDirectory(), conf);
    +  67  1
         }
     68  
     
     69   @@ -159,11 +159,11 @@
         public void close() {
     74  
             //TODO remove spinlock
    -  75  2
             if (indexWriter != null) {
    -  76  2
                 commit();
    +  75  1
             if (indexWriter != null) {
    +  76  1
                 commit();
     77  
                 try {
    -  78  2
                     indexWriter.close(true);
    +  78  1
                     indexWriter.close(true);
     79  0
                 } catch (CorruptIndexException ex) {
     80  0
                     final String msg = "Unable to update database, there is a corrupt index.";
     81  0
                     Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.SEVERE, msg);
    @@ -174,17 +174,17 @@  86  0
                     Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.FINE, null, ex);
     87  
                 } finally {
    -  88  2
                     indexWriter = null;
    -  89  2
                 }
    +  88  1
                     indexWriter = null;
    +  89  1
                 }
     90  
             }
    -  91  2
             if (indexingAnalyzer != null) {
    -  92  2
                 indexingAnalyzer.close();
    -  93  2
                 indexingAnalyzer = null;
    +  91  1
             if (indexingAnalyzer != null) {
    +  92  1
                 indexingAnalyzer.close();
    +  93  1
                 indexingAnalyzer = null;
     94  
             }
    -  95  2
             super.close();
    -  96  2
         }
    +  95  1
             super.close();
    +  96  1
         }
     97  
     
     98   @@ -195,11 +195,11 @@
          */
     101  
         public void commit() {
    -  102  2
             if (indexWriter != null) {
    +  102  1
             if (indexWriter != null) {
     103  
                 try {
    -  104  2
                     indexWriter.forceMerge(1);
    -  105  2
                     indexWriter.commit();
    +  104  1
                     indexWriter.forceMerge(1);
    +  105  1
                     indexWriter.commit();
     106  0
                 } catch (CorruptIndexException ex) {
     107  0
                     final String msg = "Unable to update database, there is a corrupt index.";
     108  0
                     Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.SEVERE, msg);
    @@ -208,10 +208,10 @@  111  0
                     final String msg = "Unable to update database due to an IO error.";
     112  0
                     Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.SEVERE, msg);
     113  0
                     Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.FINE, null, ex);
    -  114  2
                 }
    +  114  1
                 }
     115  
             }
    -  116  2
         }
    +  116  1
         }
     117  
     
     118   @@ -228,9 +228,9 @@
         @SuppressWarnings("unchecked")
     124  
         private Analyzer createIndexingAnalyzer() {
    -  125  2
             final Map fieldAnalyzers = new HashMap();
    -  126  2
             fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer());
    -  127  2
             return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers);
    +  125  1
             final Map fieldAnalyzers = new HashMap();
    +  126  1
             fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer());
    +  127  1
             return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers);
     128  
         }
     129   @@ -267,6 +267,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Fields.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Fields.html index 0b0101c68..b27fea56a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Fields.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Fields.html @@ -106,6 +106,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.IndexEntry.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.IndexEntry.html index f45c509aa..c0616e869 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.IndexEntry.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.IndexEntry.html @@ -75,7 +75,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     29  
      */
    -  30  3902
     public class IndexEntry implements Serializable {
    +  30  9562
     public class IndexEntry implements Serializable {
     31  
     
     32   @@ -153,7 +153,7 @@
          */
     71  
         public String getVendor() {
    -  72  452
             return vendor;
    +  72  2118
             return vendor;
     73  
         }
     74   @@ -170,8 +170,8 @@
          */
     80  
         public void setVendor(String vendor) {
    -  81  3901
             this.vendor = vendor;
    -  82  3901
         }
    +  81  9561
             this.vendor = vendor;
    +  82  9561
         }
     83  
         /**
     84   @@ -194,7 +194,7 @@
          */
     93  
         public String getProduct() {
    -  94  808
             return product;
    +  94  2669
             return product;
     95  
         }
     96   @@ -211,8 +211,8 @@
          */
     102  
         public void setProduct(String product) {
    -  103  3901
             this.product = product;
    -  104  3901
         }
    +  103  9561
             this.product = product;
    +  104  9561
         }
     105  
         /**
     106   @@ -252,8 +252,8 @@
          */
     124  
         public void setSearchScore(float searchScore) {
    -  125  417
             this.searchScore = searchScore;
    -  126  417
         }
    +  125  644
             this.searchScore = searchScore;
    +  126  644
         }
     127  
     
     128   @@ -318,21 +318,21 @@
         @Override
     163  
         public boolean equals(Object obj) {
    -  164  3586
             if (obj == null) {
    +  164  6074
             if (obj == null) {
     165  0
                 return false;
     166  
             }
    -  167  3586
             if (getClass() != obj.getClass()) {
    +  167  6074
             if (getClass() != obj.getClass()) {
     168  0
                 return false;
     169  
             }
    -  170  3586
             final IndexEntry other = (IndexEntry) obj;
    -  171  3586
             if ((this.vendor == null) ? (other.vendor != null) : !this.vendor.equals(other.vendor)) {
    -  172  2633
                 return false;
    +  170  6074
             final IndexEntry other = (IndexEntry) obj;
    +  171  6074
             if ((this.vendor == null) ? (other.vendor != null) : !this.vendor.equals(other.vendor)) {
    +  172  4850
                 return false;
     173  
             }
    -  174  953
             if ((this.product == null) ? (other.product != null) : !this.product.equals(other.product)) {
    -  175  953
                 return false;
    +  174  1224
             if ((this.product == null) ? (other.product != null) : !this.product.equals(other.product)) {
    +  175  1224
                 return false;
     176  
             }
     177  0
             return true;
    @@ -361,6 +361,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweDB.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweDB.html index cda3372d8..41b47c620 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweDB.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweDB.html @@ -159,8 +159,8 @@
          */
     81  
         public static String getCweName(String cweId) {
    -  82  18
             if (cweId != null) {
    -  83  18
                 return CWE.get(cweId);
    +  82  48
             if (cweId != null) {
    +  83  48
                 return CWE.get(cweId);
     84  
             }
     85  0
             return null;
    @@ -170,6 +170,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweHandler.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweHandler.html index 3bfeda1ac..d9d385cf5 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweHandler.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweHandler.html @@ -123,6 +123,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractIndex.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractIndex.html deleted file mode 100644 index 7d2829e65..000000000 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractIndex.html +++ /dev/null @@ -1,621 +0,0 @@ - - - - -Coverage Report - - - - -
    Coverage Report - org.owasp.dependencycheck.data.lucene.AbstractIndex
    -
     
    - - - - -
    Classes in this File Line Coverage Branch Coverage Complexity
    AbstractIndex
    54%
    46/85
    57%
    15/26
    1.947
    -
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.lucene;
     20  
     
     21  
     import java.io.IOException;
     22  
     import java.util.logging.Level;
     23  
     import java.util.logging.Logger;
     24  
     import org.apache.lucene.analysis.Analyzer;
     25  
     import org.apache.lucene.document.Document;
     26  
     import org.apache.lucene.index.CorruptIndexException;
     27  
     import org.apache.lucene.index.DirectoryReader;
     28  
     import org.apache.lucene.index.IndexReader;
     29  
     import org.apache.lucene.index.IndexWriter;
     30  
     import org.apache.lucene.index.IndexWriterConfig;
     31  
     import org.apache.lucene.queryparser.classic.ParseException;
     32  
     import org.apache.lucene.queryparser.classic.QueryParser;
     33  
     import org.apache.lucene.search.IndexSearcher;
     34  
     import org.apache.lucene.search.Query;
     35  
     import org.apache.lucene.search.TopDocs;
     36  
     import org.apache.lucene.store.Directory;
     37  
     import org.apache.lucene.store.LockObtainFailedException;
     38  
     import org.apache.lucene.util.Version;
     39  
     
     40  
     /**
     41  
      * The base Index for other index objects. Implements the open and close
     42  
      * methods.
     43  
      *
     44  
      * @author Jeremy Long (jeremy.long@owasp.org)
     45  
      */
     46  30
     public abstract class AbstractIndex {
     47  
     
     48  
         /**
     49  
          * The Lucene directory containing the index.
     50  
          */
     51  
         private Directory directory;
     52  
         /**
     53  
          * The IndexWriter for the Lucene index.
     54  
          */
     55  
         private IndexWriter indexWriter;
     56  
         /**
     57  
          * The Lucene IndexReader.
     58  
          */
     59  
         private IndexReader indexReader;
     60  
         /**
     61  
          * The Lucene IndexSearcher.
     62  
          */
     63  
         private IndexSearcher indexSearcher;
     64  
         /**
     65  
          * The Lucene Analyzer used for Indexing.
     66  
          */
     67  
         private Analyzer indexingAnalyzer;
     68  
         /**
     69  
          * The Lucene Analyzer used for Searching.
     70  
          */
     71  
         private Analyzer searchingAnalyzer;
     72  
         /**
     73  
          * The Lucene QueryParser used for Searching.
     74  
          */
     75  
         private QueryParser queryParser;
     76  
         /**
     77  
          * Indicates whether or not the Lucene Index is open.
     78  
          */
     79  30
         private boolean indexOpen = false;
     80  
     
     81  
         /**
     82  
          * Opens the CPE Index.
     83  
          *
     84  
          * @throws IOException is thrown if an IOException occurs opening the index.
     85  
          */
     86  
         public void open() throws IOException {
     87  27
             directory = this.getDirectory();
     88  27
             indexingAnalyzer = this.getIndexingAnalyzer();
     89  27
             searchingAnalyzer = this.getSearchingAnalyzer();
     90  27
             indexOpen = true;
     91  27
         }
     92  
     
     93  
         /**
     94  
          * Commits any pending changes.
     95  
          */
     96  
         public void commit() {
     97  0
             if (indexWriter != null) {
     98  
                 try {
     99  0
                     indexWriter.commit();
     100  0
                 } catch (CorruptIndexException ex) {
     101  0
                     final String msg = "Unable to update database, there is a corrupt index.";
     102  0
                     Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
     103  0
                     Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
     104  0
                 } catch (IOException ex) {
     105  0
                     final String msg = "Unable to update database due to an IO error.";
     106  0
                     Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
     107  0
                     Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
     108  0
                 }
     109  
             }
     110  0
         }
     111  
     
     112  
         /**
     113  
          * Closes the CPE Index.
     114  
          */
     115  
         public void close() {
     116  27
             if (indexWriter != null) {
     117  0
                 commit();
     118  
                 try {
     119  0
                     indexWriter.close(true);
     120  0
                 } catch (CorruptIndexException ex) {
     121  0
                     final String msg = "Unable to update database, there is a corrupt index.";
     122  0
                     Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
     123  0
                     Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
     124  0
                 } catch (IOException ex) {
     125  0
                     final String msg = "Unable to update database due to an IO error.";
     126  0
                     Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
     127  0
                     Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
     128  
                 } finally {
     129  0
                     indexWriter = null;
     130  0
                 }
     131  
             }
     132  27
             if (indexSearcher != null) {
     133  21
                 indexSearcher = null;
     134  
             }
     135  
     
     136  27
             if (indexingAnalyzer != null) {
     137  27
                 indexingAnalyzer.close();
     138  27
                 indexingAnalyzer = null;
     139  
             }
     140  
     
     141  27
             if (searchingAnalyzer != null) {
     142  27
                 searchingAnalyzer.close();
     143  27
                 searchingAnalyzer = null;
     144  
             }
     145  
     
     146  
             try {
     147  27
                 directory.close();
     148  0
             } catch (IOException ex) {
     149  0
                 final String msg = "Unable to update database due to an IO error.";
     150  0
                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
     151  0
                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
     152  
             } finally {
     153  27
                 directory = null;
     154  27
             }
     155  27
             indexOpen = false;
     156  27
         }
     157  
     
     158  
         /**
     159  
          * Returns the status of the data source - is the index open.
     160  
          *
     161  
          * @return true or false.
     162  
          */
     163  
         public boolean isOpen() {
     164  37
             return indexOpen;
     165  
         }
     166  
     
     167  
         /**
     168  
          * Opens the Lucene Index Writer.
     169  
          *
     170  
          * @throws CorruptIndexException is thrown if the Lucene index is corrupt.
     171  
          * @throws IOException is thrown if an IOException occurs opening the index.
     172  
          */
     173  
         public void openIndexWriter() throws CorruptIndexException, IOException {
     174  0
             if (!isOpen()) {
     175  0
                 open();
     176  
             }
     177  0
             final IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_43, indexingAnalyzer);
     178  0
             indexWriter = new IndexWriter(directory, conf);
     179  0
         }
     180  
     
     181  
         /**
     182  
          * Retrieves the IndexWriter for the Lucene Index.
     183  
          *
     184  
          * @return an IndexWriter.
     185  
          * @throws CorruptIndexException is thrown if the Lucene Index is corrupt.
     186  
          * @throws LockObtainFailedException is thrown if there is an exception
     187  
          * obtaining a lock on the Lucene index.
     188  
          * @throws IOException is thrown if an IOException occurs opening the index.
     189  
          */
     190  
         public IndexWriter getIndexWriter() throws CorruptIndexException, LockObtainFailedException, IOException {
     191  0
             if (indexWriter == null) {
     192  0
                 openIndexWriter();
     193  
             }
     194  0
             return indexWriter;
     195  
         }
     196  
     
     197  
         /**
     198  
          * Opens the Lucene Index for reading.
     199  
          *
     200  
          * @throws CorruptIndexException is thrown if the index is corrupt.
     201  
          * @throws IOException is thrown if there is an exception reading the index.
     202  
          */
     203  
         public void openIndexReader() throws CorruptIndexException, IOException {
     204  21
             if (!isOpen()) {
     205  0
                 open();
     206  
             }
     207  
             //indexReader = IndexReader.open(directory, true);
     208  21
             indexReader = DirectoryReader.open(directory);
     209  21
         }
     210  
     
     211  
         /**
     212  
          * Returns an IndexSearcher for the Lucene Index.
     213  
          *
     214  
          * @return an IndexSearcher.
     215  
          * @throws CorruptIndexException is thrown if the index is corrupt.
     216  
          * @throws IOException is thrown if there is an exception reading the index.
     217  
          */
     218  
         protected IndexSearcher getIndexSearcher() throws CorruptIndexException, IOException {
     219  2820
             if (indexReader == null) {
     220  21
                 openIndexReader();
     221  
             }
     222  2820
             if (indexSearcher == null) {
     223  21
                 indexSearcher = new IndexSearcher(indexReader);
     224  
             }
     225  2820
             return indexSearcher;
     226  
         }
     227  
     
     228  
         /**
     229  
          * Returns an Analyzer to be used when indexing.
     230  
          *
     231  
          * @return an Analyzer.
     232  
          */
     233  
         public Analyzer getIndexingAnalyzer() {
     234  27
             if (indexingAnalyzer == null) {
     235  27
                 indexingAnalyzer = createIndexingAnalyzer();
     236  
             }
     237  27
             return indexingAnalyzer;
     238  
         }
     239  
     
     240  
         /**
     241  
          * Returns an analyzer used for searching the index
     242  
          *
     243  
          * @return a lucene analyzer
     244  
          */
     245  
         protected Analyzer getSearchingAnalyzer() {
     246  48
             if (searchingAnalyzer == null) {
     247  27
                 searchingAnalyzer = createSearchingAnalyzer();
     248  
             }
     249  48
             return searchingAnalyzer;
     250  
         }
     251  
     
     252  
         /**
     253  
          * Gets a query parser
     254  
          *
     255  
          * @return a query parser
     256  
          */
     257  
         protected QueryParser getQueryParser() {
     258  111
             if (queryParser == null) {
     259  21
                 queryParser = createQueryParser();
     260  
             }
     261  111
             return queryParser;
     262  
         }
     263  
     
     264  
         /**
     265  
          * Searches the index using the given search string.
     266  
          *
     267  
          * @param searchString the query text
     268  
          * @param maxQueryResults the maximum number of documents to return
     269  
          * @return the TopDocs found by the search
     270  
          * @throws ParseException thrown when the searchString is invalid
     271  
          * @throws IOException is thrown if there is an issue with the underlying
     272  
          * Index
     273  
          */
     274  
         public TopDocs search(String searchString, int maxQueryResults) throws ParseException, IOException {
     275  111
             final QueryParser parser = getQueryParser();
     276  111
             final Query query = parser.parse(searchString);
     277  111
             resetSearchingAnalyzer();
     278  111
             final IndexSearcher is = getIndexSearcher();
     279  111
             return is.search(query, maxQueryResults);
     280  
         }
     281  
     
     282  
         /**
     283  
          * Searches the index using the given query.
     284  
          *
     285  
          * @param query the query used to search the index
     286  
          * @param maxQueryResults the max number of results to return
     287  
          * @return the TopDocs found be the query
     288  
          * @throws CorruptIndexException thrown if the Index is corrupt
     289  
          * @throws IOException thrown if there is an IOException
     290  
          */
     291  
         public TopDocs search(Query query, int maxQueryResults) throws CorruptIndexException, IOException {
     292  0
             final IndexSearcher is = getIndexSearcher();
     293  0
             return is.search(query, maxQueryResults);
     294  
         }
     295  
     
     296  
         /**
     297  
          * Retrieves a document from the Index.
     298  
          *
     299  
          * @param documentId the id of the document to retrieve
     300  
          * @return the Document
     301  
          * @throws IOException thrown if there is an IOException
     302  
          */
     303  
         public Document getDocument(int documentId) throws IOException {
     304  2709
             final IndexSearcher is = getIndexSearcher();
     305  2709
             return is.doc(documentId);
     306  
         }
     307  
     
     308  
         /**
     309  
          * Gets the directory that contains the Lucene Index.
     310  
          *
     311  
          * @return a Lucene Directory
     312  
          * @throws IOException is thrown when an IOException occurs
     313  
          */
     314  
         public abstract Directory getDirectory() throws IOException;
     315  
     
     316  
         /**
     317  
          * Creates the Lucene Analyzer used when indexing.
     318  
          *
     319  
          * @return a Lucene Analyzer
     320  
          */
     321  
         public abstract Analyzer createIndexingAnalyzer();
     322  
     
     323  
         /**
     324  
          * Creates the Lucene Analyzer used when querying the index.
     325  
          *
     326  
          * @return a Lucene Analyzer
     327  
          */
     328  
         public abstract Analyzer createSearchingAnalyzer();
     329  
     
     330  
         /**
     331  
          * Creates the Lucene QueryParser used when querying the index.
     332  
          *
     333  
          * @return a QueryParser
     334  
          */
     335  
         public abstract QueryParser createQueryParser();
     336  
     
     337  
         /**
     338  
          * Resets the searching analyzers
     339  
          */
     340  
         protected abstract void resetSearchingAnalyzer();
     341  
     }
    - - - - diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html index 95107d377..e34bd382b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html @@ -89,7 +89,7 @@
          * The char term attribute.
     36  
          */
    -  37  24
         private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
    +  37  25
         private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
     38  
     
     39   @@ -104,7 +104,7 @@
          */
     44  
         protected CharTermAttribute getTermAtt() {
    -  45  30745
             return termAtt;
    +  45  26021
             return termAtt;
     46  
         }
     47   @@ -129,7 +129,7 @@
          */
     57  
         protected LinkedList<String> getTokens() {
    -  58  30745
             return tokens;
    +  58  26021
             return tokens;
     59  
         }
     60   @@ -146,9 +146,9 @@
          */
     66  
         public AbstractTokenizingFilter(TokenStream stream) {
    -  67  24
             super(stream);
    -  68  24
             tokens = new LinkedList<String>();
    -  69  24
         }
    +  67  25
             super(stream);
    +  68  25
             tokens = new LinkedList<String>();
    +  69  25
         }
     70  
     
     71   @@ -163,20 +163,20 @@
          */
     76  
         protected boolean addTerm() {
    -  77  30677
             final boolean termAdded = tokens.size() > 0;
    -  78  30677
             if (termAdded) {
    -  79  18698
                 final String term = tokens.pop();
    -  80  18698
                 clearAttributes();
    -  81  18698
                 termAtt.append(term);
    +  77  25958
             final boolean termAdded = tokens.size() > 0;
    +  78  25958
             if (termAdded) {
    +  79  14823
                 final String term = tokens.pop();
    +  80  14823
                 clearAttributes();
    +  81  14823
                 termAtt.append(term);
     82  
             }
    -  83  30677
             return termAdded;
    +  83  25958
             return termAdded;
     84  
         }
     85  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer.html index 1fc258f7b..aff82aa7a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer.html @@ -95,8 +95,8 @@
          */
     39  
         public AlphaNumericTokenizer(Version matchVersion, Reader in) {
    -  40  19
             super(matchVersion, in);
    -  41  19
         }
    +  40  21
             super(matchVersion, in);
    +  41  21
         }
     42  
     
     43   @@ -135,13 +135,13 @@
         @Override
     61  
         protected boolean isTokenChar(int c) {
    -  62  7775
             return Character.isLetter(c) || Character.isDigit(c);
    +  62  9457
             return Character.isLetter(c) || Character.isDigit(c);
     63  
         }
     64  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.DependencySimilarity.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.DependencySimilarity.html index 8a0a4b0c5..10be6e22e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.DependencySimilarity.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.DependencySimilarity.html @@ -117,6 +117,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html index 47eb48415..63b4535df 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html @@ -172,6 +172,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.LuceneUtils.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.LuceneUtils.html index c9ed2f340..b1b9d169e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.LuceneUtils.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.LuceneUtils.html @@ -111,15 +111,15 @@
                 final CharSequence text) {
     48  
     
    -  49  869
             if (text == null || buf == null) {
    +  49  1062
             if (text == null || buf == null) {
     50  1
                 return;
     51  
             }
     52  
     
    -  53  8869
             for (int i = 0; i < text.length(); i++) {
    -  54  8001
                 final char c = text.charAt(i);
    -  55  8001
                 switch (c) {
    +  53  10776
             for (int i = 0; i < text.length(); i++) {
    +  54  9715
                 final char c = text.charAt(i);
    +  55  9715
                 switch (c) {
     56  
                     case '+':
     57   @@ -156,17 +156,17 @@
                     case ':':
     73  
                     case '\\': //it is supposed to fall through here
    -  74  176
                         buf.append('\\');
    +  74  226
                         buf.append('\\');
     75  
                     default:
    -  76  8001
                         buf.append(c);
    +  76  9715
                         buf.append(c);
     77  
                         break;
     78  
                 }
     79  
             }
    -  80  868
         }
    +  80  1061
         }
     81  
     
     82   @@ -187,27 +187,27 @@
         public static String escapeLuceneQuery(final CharSequence text) {
     90  
     
    -  91  856
             if (text == null) {
    +  91  1045
             if (text == null) {
     92  1
                 return null;
     93  
             }
     94  
     
    -  95  855
             int size = text.length();
    -  96  855
             size = size >> 1;
    -  97  855
             final StringBuilder buf = new StringBuilder(size);
    +  95  1044
             int size = text.length();
    +  96  1044
             size = size >> 1;
    +  97  1044
             final StringBuilder buf = new StringBuilder(size);
     98  
     
    -  99  855
             appendEscapedLuceneQuery(buf, text);
    +  99  1044
             appendEscapedLuceneQuery(buf, text);
     100  
     
    -  101  855
             return buf.toString();
    +  101  1044
             return buf.toString();
     102  
         }
     103  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html index 01dc62a94..3bacd840d 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html @@ -121,9 +121,9 @@
          * @param version the Lucene version
     52  
          */
    -  53  20
         public SearchFieldAnalyzer(Version version) {
    -  54  20
             this.version = version;
    -  55  20
         }
    +  53  22
         public SearchFieldAnalyzer(Version version) {
    +  54  22
             this.version = version;
    +  55  22
         }
     56  
     
     57   @@ -144,13 +144,13 @@
         @Override
     65  
         protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
    -  66  18
             final Tokenizer source = new AlphaNumericTokenizer(version, reader);
    +  66  20
             final Tokenizer source = new AlphaNumericTokenizer(version, reader);
     67  
     
    -  68  18
             TokenStream stream = source;
    +  68  20
             TokenStream stream = source;
     69  
     
    -  70  18
             stream = new WordDelimiterFilter(stream,
    +  70  20
             stream = new WordDelimiterFilter(stream,
     71  
                     WordDelimiterFilter.GENERATE_WORD_PARTS
     72   @@ -165,14 +165,14 @@
                     | WordDelimiterFilter.STEM_ENGLISH_POSSESSIVE, null);
     77  
     
    -  78  18
             stream = new LowerCaseFilter(version, stream);
    -  79  18
             stream = new UrlTokenizingFilter(stream);
    -  80  18
             concatenatingFilter = new TokenPairConcatenatingFilter(stream);
    -  81  18
             stream = concatenatingFilter;
    -  82  18
             stream = new StopFilter(version, stream, StopAnalyzer.ENGLISH_STOP_WORDS_SET);
    +  78  20
             stream = new LowerCaseFilter(version, stream);
    +  79  20
             stream = new UrlTokenizingFilter(stream);
    +  80  20
             concatenatingFilter = new TokenPairConcatenatingFilter(stream);
    +  81  20
             stream = concatenatingFilter;
    +  82  20
             stream = new StopFilter(version, stream, StopAnalyzer.ENGLISH_STOP_WORDS_SET);
     83  
     
    -  84  18
             return new TokenStreamComponents(source, stream);
    +  84  20
             return new TokenStreamComponents(source, stream);
     85  
         }
     86   @@ -200,6 +200,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer.html index c0bf0a7b5..913e45c28 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer.html @@ -159,6 +159,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html index f8461a672..6d090d5b5 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    TokenPairConcatenatingFilter
    100%
    24/24
    100%
    8/8
    3
    TokenPairConcatenatingFilter
    100%
    26/26
    100%
    8/8
    2.2
     
    @@ -95,7 +95,7 @@
          * The char term attribute.
     39  
          */
    -  40  18
         private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
    +  40  22
         private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
     41  
         /**
     42   @@ -117,98 +117,132 @@  50  
         /**
     51   -
          * Constructs a new TokenPairConcatenatingFilter.
    +
          * Returns the previous word. This is needed in the test cases.
     52  
          *
     53   -
          * @param stream the TokenStream that this filter will process
    +
          * @return te previous word
     54  
          */
     55   -
         public TokenPairConcatenatingFilter(TokenStream stream) {
    -  56  18
             super(stream);
    -  57  18
             words = new LinkedList<String>();
    -  58  18
         }
    -  59   -
     
    -  60   -
         /**
    -  61   -
          * Increments the underlying TokenStream and sets CharTermAttributes to
    -  62   -
          * construct an expanded set of tokens by concatenating tokens with the
    -  63   -
          * previous token.
    -  64   -
          *
    -  65   -
          * @return whether or not we have hit the end of the TokenStream
    -  66   -
          * @throws IOException is thrown when an IOException occurs
    -  67   -
          */
    -  68   -
         @Override
    -  69   -
         public boolean incrementToken() throws IOException {
    -  70   -
     
    -  71   -
             //collect all the terms into the words collection
    -  72  5526
             while (input.incrementToken()) {
    -  73  1550
                 final String word = new String(termAtt.buffer(), 0, termAtt.length());
    -  74  1550
                 words.add(word);
    -  75  1550
             }
    -  76   -
     
    -  77   -
             //if we have a previousTerm - write it out as its own token concatenated
    -  78   -
             // with the current word (if one is available).
    -  79  3976
             if (previousWord != null && words.size() > 0) {
    -  80  1530
                 final String word = words.getFirst();
    -  81  1530
                 clearAttributes();
    -  82  1530
                 termAtt.append(previousWord).append(word);
    -  83  1530
                 previousWord = null;
    -  84  1530
                 return true;
    -  85   -
             }
    -  86   -
             //if we have words, write it out as a single token
    -  87  2446
             if (words.size() > 0) {
    -  88  1550
                 final String word = words.removeFirst();
    -  89  1550
                 clearAttributes();
    -  90  1550
                 termAtt.append(word);
    -  91  1550
                 previousWord = word;
    -  92  1550
                 return true;
    -  93   -
             }
    -  94  896
             return false;
    -  95   +
         protected String getPreviousWord() {
    +  56  2
             return previousWord;
    +  57  
         }
    -  96   +  58  
     
    -  97   +  59  
         /**
    -  98   -
          * <p>Resets the Filter and clears any internal state data that may have
    -  99   -
          * been left-over from previous uses of the Filter.</p>
    -  100   -
          * <p><b>If this Filter is re-used this method must be called between
    -  101   -
          * uses.</b></p>
    -  102   +  60   +
          * Returns the words list. This is needed in the test cases.
    +  61   +
          *
    +  62   +
          * @return the words list
    +  63  
          */
    +  64   +
         protected LinkedList<String> getWords() {
    +  65  1
             return words;
    +  66   +
         }
    +  67   +
     
    +  68   +
         /**
    +  69   +
          * Constructs a new TokenPairConcatenatingFilter.
    +  70   +
          *
    +  71   +
          * @param stream the TokenStream that this filter will process
    +  72   +
          */
    +  73   +
         public TokenPairConcatenatingFilter(TokenStream stream) {
    +  74  22
             super(stream);
    +  75  22
             words = new LinkedList<String>();
    +  76  22
         }
    +  77   +
     
    +  78   +
         /**
    +  79   +
          * Increments the underlying TokenStream and sets CharTermAttributes to
    +  80   +
          * construct an expanded set of tokens by concatenating tokens with the
    +  81   +
          * previous token.
    +  82   +
          *
    +  83   +
          * @return whether or not we have hit the end of the TokenStream
    +  84   +
          * @throws IOException is thrown when an IOException occurs
    +  85   +
          */
    +  86   +
         @Override
    +  87   +
         public boolean incrementToken() throws IOException {
    +  88   +
     
    +  89   +
             //collect all the terms into the words collection
    +  90  7168
             while (input.incrementToken()) {
    +  91  2024
                 final String word = new String(termAtt.buffer(), 0, termAtt.length());
    +  92  2024
                 words.add(word);
    +  93  2024
             }
    +  94   +
     
    +  95   +
             //if we have a previousTerm - write it out as its own token concatenated
    +  96   +
             // with the current word (if one is available).
    +  97  5144
             if (previousWord != null && words.size() > 0) {
    +  98  2000
                 final String word = words.getFirst();
    +  99  2000
                 clearAttributes();
    +  100  2000
                 termAtt.append(previousWord).append(word);
    +  101  2000
                 previousWord = null;
    +  102  2000
                 return true;
     103   +
             }
    +  104   +
             //if we have words, write it out as a single token
    +  105  3144
             if (words.size() > 0) {
    +  106  2024
                 final String word = words.removeFirst();
    +  107  2024
                 clearAttributes();
    +  108  2024
                 termAtt.append(word);
    +  109  2024
                 previousWord = word;
    +  110  2024
                 return true;
    +  111   +
             }
    +  112  1120
             return false;
    +  113   +
         }
    +  114   +
     
    +  115   +
         /**
    +  116   +
          * <p>Resets the Filter and clears any internal state data that may have
    +  117   +
          * been left-over from previous uses of the Filter.</p>
    +  118   +
          * <p><b>If this Filter is re-used this method must be called between
    +  119   +
          * uses.</b></p>
    +  120   +
          */
    +  121  
         public void clear() {
    -  104  2
             previousWord = null;
    -  105  2
             words.clear();
    -  106  2
         }
    -  107   +  122  3
             previousWord = null;
    +  123  3
             words.clear();
    +  124  3
         }
    +  125  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter.html index c92d8ed3a..4df815407 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter.html @@ -109,8 +109,8 @@
          */
     46  
         public UrlTokenizingFilter(TokenStream stream) {
    -  47  24
             super(stream);
    -  48  24
         }
    +  47  25
             super(stream);
    +  48  25
         }
     49  
     
     50   @@ -133,11 +133,11 @@
         @Override
     59  
         public boolean incrementToken() throws IOException {
    -  60  30745
             final LinkedList<String> tokens = getTokens();
    -  61  30745
             final CharTermAttribute termAtt = getTermAtt();
    -  62  30745
             if (tokens.size() == 0 && input.incrementToken()) {
    -  63  18697
                 final String text = new String(termAtt.buffer(), 0, termAtt.length());
    -  64  18697
                 if (UrlStringUtils.containsUrl(text)) {
    +  60  26021
             final LinkedList<String> tokens = getTokens();
    +  61  26021
             final CharTermAttribute termAtt = getTermAtt();
    +  62  26021
             if (tokens.size() == 0 && input.incrementToken()) {
    +  63  14822
                 final String text = new String(termAtt.buffer(), 0, termAtt.length());
    +  64  14822
                 if (UrlStringUtils.containsUrl(text)) {
     65  2
                     final String[] parts = text.split("\\s");
     66  4
                     for (String part : parts) {
     67  2
                         if (UrlStringUtils.isUrl(part)) {
    @@ -157,18 +157,18 @@  78  
                     }
     79  2
                 } else {
    -  80  18695
                     tokens.add(text);
    +  80  14820
                     tokens.add(text);
     81  
                 }
     82  
             }
    -  83  30677
             return addTerm();
    +  83  25958
             return addTerm();
     84  
         }
     85  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionAnalyzer.html index 282c7bd5c..4a3e2b33b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionAnalyzer.html @@ -156,6 +156,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html index f2e6a4694..5ba2fa8b3 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html @@ -197,6 +197,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html index 9676555b3..70a93ebb4 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html @@ -119,6 +119,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CveDB.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CveDB.html index 8ab0f8695..6536630a4 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CveDB.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CveDB.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    CveDB
    46%
    148/319
    53%
    50/94
    5
    CveDB
    47%
    150/319
    58%
    55/94
    5
     
    @@ -119,7 +119,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     51  
      */
    -  52  14
     public class CveDB {
    +  52  15
     public class CveDB {
     53  
     
     54   @@ -344,18 +344,18 @@
                 justification = "Yes, I know... Blank password.")
     164  
         public void open() throws IOException, SQLException, DatabaseException, ClassNotFoundException {
    -  165  14
             final String fileName = CveDB.getDataDirectory().getCanonicalPath();
    -  166  14
             final File f = new File(fileName, "cve." + DB_SCHEMA_VERSION);
    -  167  14
             final File check = new File(f.getAbsolutePath() + ".h2.db");
    -  168  14
             final boolean createTables = !check.exists();
    -  169  14
             final String connStr = String.format("jdbc:h2:file:%s;AUTO_SERVER=TRUE", f.getAbsolutePath());
    -  170  14
             Class.forName("org.h2.Driver");
    -  171  14
             conn = DriverManager.getConnection(connStr, "sa", "");
    -  172  14
             if (createTables) {
    +  165  15
             final String fileName = CveDB.getDataDirectory().getCanonicalPath();
    +  166  15
             final File f = new File(fileName, "cve." + DB_SCHEMA_VERSION);
    +  167  15
             final File check = new File(f.getAbsolutePath() + ".h2.db");
    +  168  15
             final boolean createTables = !check.exists();
    +  169  15
             final String connStr = String.format("jdbc:h2:file:%s;AUTO_SERVER=TRUE", f.getAbsolutePath());
    +  170  15
             Class.forName("org.h2.Driver");
    +  171  15
             conn = DriverManager.getConnection(connStr, "sa", "");
    +  172  15
             if (createTables) {
     173  0
                 createTables();
     174  
             }
    -  175  14
         }
    +  175  15
         }
     176  
     
     177   @@ -391,9 +391,9 @@
         @Override
     194  
         protected void finalize() throws Throwable {
    -  195  6
             close();
    -  196  6
             super.finalize(); //not necessary if extending Object.
    -  197  6
         }
    +  195  9
             close();
    +  196  9
             super.finalize(); //not necessary if extending Object.
    +  197  9
         }
     198  
     
     199   @@ -406,19 +406,19 @@
          */
     203  
         public void close() {
    -  204  20
             if (conn != null) {
    +  204  24
             if (conn != null) {
     205  
                 try {
    -  206  14
                     conn.close();
    +  206  15
                     conn.close();
     207  0
                 } catch (SQLException ex) {
     208  0
                     final String msg = "There was an error attempting to close the CveDB, see the log for more details.";
     209  0
                     Logger.getLogger(CveDB.class.getName()).log(Level.SEVERE, msg, ex);
     210  0
                     Logger.getLogger(CveDB.class.getName()).log(Level.FINE, null, ex);
    -  211  14
                 }
    -  212  14
                 conn = null;
    +  211  15
                 }
    +  212  15
                 conn = null;
     213  
             }
    -  214  20
         }
    +  214  24
         }
     215  
     
     216   @@ -443,30 +443,30 @@
          */
     226  
         public Set<VulnerableSoftware> getCPEs(String vendor, String product) {
    -  227  28
             final Set<VulnerableSoftware> cpe = new HashSet<VulnerableSoftware>();
    -  228  28
             ResultSet rs = null;
    -  229  28
             PreparedStatement ps = null;
    +  227  52
             final Set<VulnerableSoftware> cpe = new HashSet<VulnerableSoftware>();
    +  228  52
             ResultSet rs = null;
    +  229  52
             PreparedStatement ps = null;
     230  
             try {
    -  231  28
                 ps = conn.prepareStatement(SELECT_CPE_ENTRIES);
    -  232  28
                 ps.setString(1, vendor);
    -  233  28
                 ps.setString(2, product);
    -  234  28
                 rs = ps.executeQuery();
    +  231  52
                 ps = conn.prepareStatement(SELECT_CPE_ENTRIES);
    +  232  52
                 ps.setString(1, vendor);
    +  233  52
                 ps.setString(2, product);
    +  234  52
                 rs = ps.executeQuery();
     235  
     
    -  236  1888
                 while (rs.next()) {
    -  237  1860
                     final VulnerableSoftware vs = new VulnerableSoftware();
    -  238  1860
                     vs.setCpe(rs.getString(1));
    -  239  1860
                     cpe.add(vs);
    -  240  1860
                 }
    +  236  3713
                 while (rs.next()) {
    +  237  3661
                     final VulnerableSoftware vs = new VulnerableSoftware();
    +  238  3661
                     vs.setCpe(rs.getString(1));
    +  239  3661
                     cpe.add(vs);
    +  240  3661
                 }
     241  0
             } catch (SQLException ex) {
     242  0
                 Logger.getLogger(CveDB.class.getName()).log(Level.SEVERE, null, ex);
     243  
             } finally {
    -  244  28
                 closeResultSet(rs);
    -  245  28
                 closeStatement(ps);
    -  246  28
             }
    -  247  28
             return cpe;
    +  244  52
                 closeResultSet(rs);
    +  245  52
                 closeStatement(ps);
    +  246  52
             }
    +  247  52
             return cpe;
     248  
         }
     249   @@ -487,51 +487,51 @@
          */
     257  
         public List<Vulnerability> getVulnerabilities(String cpeStr) throws DatabaseException {
    -  258  1
             ResultSet rs = null;
    -  259  1
             final VulnerableSoftware cpe = new VulnerableSoftware();
    +  258  7
             ResultSet rs = null;
    +  259  7
             final VulnerableSoftware cpe = new VulnerableSoftware();
     260  
             try {
    -  261  1
                 cpe.parseName(cpeStr);
    +  261  7
                 cpe.parseName(cpeStr);
     262  0
             } catch (UnsupportedEncodingException ex) {
     263  0
                 Logger.getLogger(CveDB.class.getName()).log(Level.FINEST, null, ex);
    -  264  1
             }
    -  265  1
             final DependencyVersion detectedVersion = parseDependencyVersion(cpe);
    -  266  1
             final List<Vulnerability> vulnerabilities = new ArrayList<Vulnerability>();
    +  264  7
             }
    +  265  7
             final DependencyVersion detectedVersion = parseDependencyVersion(cpe);
    +  266  7
             final List<Vulnerability> vulnerabilities = new ArrayList<Vulnerability>();
     267  
     
     268  
             PreparedStatement ps;
    -  269  1
             final HashSet<String> cveEntries = new HashSet<String>();
    +  269  7
             final HashSet<String> cveEntries = new HashSet<String>();
     270  
             try {
    -  271  1
                 ps = conn.prepareStatement(SELECT_CVE_FROM_SOFTWARE);
    -  272  1
                 ps.setString(1, cpe.getVendor());
    -  273  1
                 ps.setString(2, cpe.getProduct());
    -  274  1
                 rs = ps.executeQuery();
    -  275  634
                 while (rs.next()) {
    -  276  633
                     final String cveId = rs.getString(1);
    -  277  633
                     final String cpeId = rs.getString(2);
    -  278  633
                     final String previous = rs.getString(3);
    -  279  633
                     if (!cveEntries.contains(cveId) && isAffected(cpe.getVendor(), cpe.getProduct(), detectedVersion, cpeId, previous)) {
    -  280  18
                         cveEntries.add(cveId);
    +  271  7
                 ps = conn.prepareStatement(SELECT_CVE_FROM_SOFTWARE);
    +  272  7
                 ps.setString(1, cpe.getVendor());
    +  273  7
                 ps.setString(2, cpe.getProduct());
    +  274  7
                 rs = ps.executeQuery();
    +  275  2976
                 while (rs.next()) {
    +  276  2969
                     final String cveId = rs.getString(1);
    +  277  2969
                     final String cpeId = rs.getString(2);
    +  278  2969
                     final String previous = rs.getString(3);
    +  279  2969
                     if (!cveEntries.contains(cveId) && isAffected(cpe.getVendor(), cpe.getProduct(), detectedVersion, cpeId, previous)) {
    +  280  50
                         cveEntries.add(cveId);
     281  
                     }
    -  282  633
                 }
    -  283  1
                 closeResultSet(rs);
    -  284  1
                 closeStatement(ps);
    -  285  1
                 for (String cve : cveEntries) {
    -  286  18
                     final Vulnerability v = getVulnerability(cve);
    -  287  18
                     vulnerabilities.add(v);
    -  288  18
                 }
    +  282  2969
                 }
    +  283  7
                 closeResultSet(rs);
    +  284  7
                 closeStatement(ps);
    +  285  7
                 for (String cve : cveEntries) {
    +  286  50
                     final Vulnerability v = getVulnerability(cve);
    +  287  50
                     vulnerabilities.add(v);
    +  288  50
                 }
     289  
     
     290  0
             } catch (SQLException ex) {
     291  0
                 throw new DatabaseException("Exception retrieving vulnerability for " + cpeStr, ex);
     292  
             } finally {
    -  293  1
                 closeResultSet(rs);
    -  294  1
             }
    -  295  1
             return vulnerabilities;
    +  293  7
                 closeResultSet(rs);
    +  294  7
             }
    +  295  7
             return vulnerabilities;
     296  
         }
     297   @@ -552,77 +552,77 @@
          */
     305  
         private Vulnerability getVulnerability(String cve) throws DatabaseException {
    -  306  18
             PreparedStatement psV = null;
    -  307  18
             PreparedStatement psR = null;
    -  308  18
             PreparedStatement psS = null;
    -  309  18
             ResultSet rsV = null;
    -  310  18
             ResultSet rsR = null;
    -  311  18
             ResultSet rsS = null;
    -  312  18
             Vulnerability vuln = null;
    +  306  50
             PreparedStatement psV = null;
    +  307  50
             PreparedStatement psR = null;
    +  308  50
             PreparedStatement psS = null;
    +  309  50
             ResultSet rsV = null;
    +  310  50
             ResultSet rsR = null;
    +  311  50
             ResultSet rsS = null;
    +  312  50
             Vulnerability vuln = null;
     313  
             try {
    -  314  18
                 psV = conn.prepareStatement(SELECT_VULNERABILITY);
    -  315  18
                 psV.setString(1, cve);
    -  316  18
                 rsV = psV.executeQuery();
    -  317  18
                 if (rsV.next()) {
    -  318  18
                     vuln = new Vulnerability();
    -  319  18
                     vuln.setName(cve);
    -  320  18
                     vuln.setDescription(rsV.getString(2));
    -  321  18
                     String cwe = rsV.getString(3);
    -  322  18
                     if (cwe != null) {
    -  323  17
                         final String name = CweDB.getCweName(cwe);
    -  324  17
                         if (name != null) {
    -  325  16
                             cwe += " " + name;
    +  314  50
                 psV = conn.prepareStatement(SELECT_VULNERABILITY);
    +  315  50
                 psV.setString(1, cve);
    +  316  50
                 rsV = psV.executeQuery();
    +  317  50
                 if (rsV.next()) {
    +  318  50
                     vuln = new Vulnerability();
    +  319  50
                     vuln.setName(cve);
    +  320  50
                     vuln.setDescription(rsV.getString(2));
    +  321  50
                     String cwe = rsV.getString(3);
    +  322  50
                     if (cwe != null) {
    +  323  47
                         final String name = CweDB.getCweName(cwe);
    +  324  47
                         if (name != null) {
    +  325  45
                             cwe += " " + name;
     326  
                         }
     327  
                     }
    -  328  18
                     final int cveId = rsV.getInt(1);
    -  329  18
                     vuln.setCwe(cwe);
    -  330  18
                     vuln.setCvssScore(rsV.getFloat(4));
    -  331  18
                     vuln.setCvssAccessVector(rsV.getString(5));
    -  332  18
                     vuln.setCvssAccessComplexity(rsV.getString(6));
    -  333  18
                     vuln.setCvssAuthentication(rsV.getString(7));
    -  334  18
                     vuln.setCvssConfidentialityImpact(rsV.getString(8));
    -  335  18
                     vuln.setCvssIntegrityImpact(rsV.getString(9));
    -  336  18
                     vuln.setCvssAvailabilityImpact(rsV.getString(10));
    +  328  50
                     final int cveId = rsV.getInt(1);
    +  329  50
                     vuln.setCwe(cwe);
    +  330  50
                     vuln.setCvssScore(rsV.getFloat(4));
    +  331  50
                     vuln.setCvssAccessVector(rsV.getString(5));
    +  332  50
                     vuln.setCvssAccessComplexity(rsV.getString(6));
    +  333  50
                     vuln.setCvssAuthentication(rsV.getString(7));
    +  334  50
                     vuln.setCvssConfidentialityImpact(rsV.getString(8));
    +  335  50
                     vuln.setCvssIntegrityImpact(rsV.getString(9));
    +  336  50
                     vuln.setCvssAvailabilityImpact(rsV.getString(10));
     337  
     
    -  338  18
                     psR = conn.prepareStatement(SELECT_REFERENCE);
    -  339  18
                     psR.setInt(1, cveId);
    -  340  18
                     rsR = psR.executeQuery();
    -  341  104
                     while (rsR.next()) {
    -  342  86
                         vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3));
    +  338  50
                     psR = conn.prepareStatement(SELECT_REFERENCE);
    +  339  50
                     psR.setInt(1, cveId);
    +  340  50
                     rsR = psR.executeQuery();
    +  341  351
                     while (rsR.next()) {
    +  342  301
                         vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3));
     343  
                     }
    -  344  18
                     psS = conn.prepareStatement(SELECT_SOFTWARE);
    -  345  18
                     psS.setInt(1, cveId);
    -  346  18
                     rsS = psS.executeQuery();
    -  347  627
                     while (rsS.next()) {
    -  348  609
                         final String cpe = rsS.getString(1);
    -  349  609
                         final String prevVersion = rsS.getString(2);
    -  350  609
                         if (prevVersion == null) {
    -  351  598
                             vuln.addVulnerableSoftware(cpe);
    +  344  50
                     psS = conn.prepareStatement(SELECT_SOFTWARE);
    +  345  50
                     psS.setInt(1, cveId);
    +  346  50
                     rsS = psS.executeQuery();
    +  347  2673
                     while (rsS.next()) {
    +  348  2623
                         final String cpe = rsS.getString(1);
    +  349  2623
                         final String prevVersion = rsS.getString(2);
    +  350  2623
                         if (prevVersion == null) {
    +  351  2586
                             vuln.addVulnerableSoftware(cpe);
     352  
                         } else {
    -  353  11
                             vuln.addVulnerableSoftware(cpe, prevVersion);
    +  353  37
                             vuln.addVulnerableSoftware(cpe, prevVersion);
     354  
                         }
    -  355  609
                     }
    +  355  2623
                     }
     356  
                 }
     357  0
             } catch (SQLException ex) {
     358  0
                 throw new DatabaseException("Error retrieving " + cve, ex);
     359  
             } finally {
    -  360  18
                 closeResultSet(rsV);
    -  361  18
                 closeResultSet(rsR);
    -  362  18
                 closeResultSet(rsS);
    -  363  18
                 closeStatement(psV);
    -  364  18
                 closeStatement(psR);
    -  365  18
                 closeStatement(psS);
    -  366  18
             }
    -  367  18
             return vuln;
    +  360  50
                 closeResultSet(rsV);
    +  361  50
                 closeResultSet(rsR);
    +  362  50
                 closeResultSet(rsS);
    +  363  50
                 closeStatement(psV);
    +  364  50
                 closeStatement(psR);
    +  365  50
                 closeStatement(psS);
    +  366  50
             }
    +  367  50
             return vuln;
     368  
         }
     369   @@ -811,7 +811,7 @@
         public static File getDataDirectory() throws IOException {
     515  16
             final File path = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY);
     516  16
             if (!path.exists()) {
    -  517  2
                 if (!path.mkdirs()) {
    +  517  1
                 if (!path.mkdirs()) {
     518  0
                     throw new IOException("Unable to create NVD CVE Data directory");
     519  
                 }
    @@ -923,18 +923,18 @@
          */
     588  
         private void closeStatement(Statement statement) {
    -  589  83
             if (statement != null) {
    +  589  209
             if (statement != null) {
     590  
                 try {
    -  591  83
                     statement.close();
    +  591  209
                     statement.close();
     592  0
                 } catch (SQLException ex) {
     593  0
                     Logger.getLogger(CveDB.class
     594  
                             .getName()).log(Level.FINEST, statement.toString(), ex);
    -  595  83
                 }
    +  595  209
                 }
     596  
             }
    -  597  83
         }
    +  597  209
         }
     598  
     
     599   @@ -951,18 +951,18 @@
          */
     605  
         private void closeResultSet(ResultSet rs) {
    -  606  84
             if (rs != null) {
    +  606  216
             if (rs != null) {
     607  
                 try {
    -  608  84
                     rs.close();
    +  608  216
                     rs.close();
     609  0
                 } catch (SQLException ex) {
     610  0
                     Logger.getLogger(CveDB.class
     611  
                             .getName()).log(Level.FINEST, rs.toString(), ex);
    -  612  84
                 }
    +  612  216
                 }
     613  
             }
    -  614  84
         }
    +  614  216
         }
     615  
     
     616   @@ -1035,24 +1035,24 @@
          */
     655  
         private boolean isAffected(String vendor, String product, DependencyVersion identifiedVersion, String cpeId, String previous) {
    -  656  382
             boolean affected = false;
    -  657  382
             final boolean isStruts = "apache".equals(vendor) && "struts".equals(product);
    -  658  382
             final DependencyVersion v = parseDependencyVersion(cpeId);
    -  659  382
             final boolean prevAffected = previous == null ? false : !previous.isEmpty();
    -  660  382
             if (identifiedVersion == null || "-".equals(identifiedVersion.toString())) {
    +  656  1982
             boolean affected = false;
    +  657  1982
             final boolean isStruts = "apache".equals(vendor) && "struts".equals(product);
    +  658  1982
             final DependencyVersion v = parseDependencyVersion(cpeId);
    +  659  1982
             final boolean prevAffected = previous == null ? false : !previous.isEmpty();
    +  660  1982
             if (identifiedVersion == null || "-".equals(identifiedVersion.toString())) {
     661  0
                 if (v == null || "-".equals(v.toString())) {
     662  0
                     affected = true;
     663  
                 }
    -  664  382
             } else if (identifiedVersion.equals(v) || (prevAffected && identifiedVersion.compareTo(v) < 0)) {
    -  665  18
                 if (isStruts) { //struts 2 vulns don't affect struts 1
    -  666  18
                     if (identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0))) {
    -  667  18
                         affected = true;
    +  664  1982
             } else if (identifiedVersion.equals(v) || (prevAffected && identifiedVersion.compareTo(v) < 0)) {
    +  665  50
                 if (isStruts) { //struts 2 vulns don't affect struts 1
    +  666  38
                     if (identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0))) {
    +  667  38
                         affected = true;
     668  
                     }
     669  
                 } else {
    -  670  0
                     affected = true;
    +  670  12
                     affected = true;
     671  
                 }
     672   @@ -1065,7 +1065,7 @@
              *      might also introduce false positives.
     676  
              */
    -  677  382
             return affected;
    +  677  1982
             return affected;
     678  
         }
     679   @@ -1086,16 +1086,16 @@
          */
     687  
         private DependencyVersion parseDependencyVersion(String cpeStr) {
    -  688  382
             final VulnerableSoftware cpe = new VulnerableSoftware();
    +  688  1982
             final VulnerableSoftware cpe = new VulnerableSoftware();
     689  
             try {
    -  690  382
                 cpe.parseName(cpeStr);
    +  690  1982
                 cpe.parseName(cpeStr);
     691  0
             } catch (UnsupportedEncodingException ex) {
     692  
                 //never going to happen.
     693  0
                 Logger.getLogger(CveDB.class.getName()).log(Level.FINEST, null, ex);
    -  694  382
             }
    -  695  382
             return parseDependencyVersion(cpe);
    +  694  1982
             }
    +  695  1982
             return parseDependencyVersion(cpe);
     696  
         }
     697   @@ -1118,28 +1118,28 @@
         private DependencyVersion parseDependencyVersion(VulnerableSoftware cpe) {
     706  
             DependencyVersion cpeVersion;
    -  707  383
             if (cpe.getVersion() != null && cpe.getVersion().length() > 0) {
    +  707  1989
             if (cpe.getVersion() != null && cpe.getVersion().length() > 0) {
     708  
                 String versionText;
    -  709  382
                 if (cpe.getRevision() != null && cpe.getRevision().length() > 0) {
    -  710  0
                     versionText = String.format("%s.%s", cpe.getVersion(), cpe.getRevision());
    +  709  1987
                 if (cpe.getRevision() != null && cpe.getRevision().length() > 0) {
    +  710  460
                     versionText = String.format("%s.%s", cpe.getVersion(), cpe.getRevision());
     711  
                 } else {
    -  712  382
                     versionText = cpe.getVersion();
    +  712  1527
                     versionText = cpe.getVersion();
     713  
                 }
    -  714  382
                 cpeVersion = DependencyVersionUtil.parseVersion(versionText);
    -  715  382
             } else {
    -  716  1
                 cpeVersion = new DependencyVersion("-");
    +  714  1987
                 cpeVersion = DependencyVersionUtil.parseVersion(versionText);
    +  715  1987
             } else {
    +  716  2
                 cpeVersion = new DependencyVersion("-");
     717  
             }
    -  718  383
             return cpeVersion;
    +  718  1989
             return cpeVersion;
     719  
         }
     720  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.DatabaseException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.DatabaseException.html index bd04ee9c1..5361b80e7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.DatabaseException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.DatabaseException.html @@ -117,6 +117,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html index c59337673..adec305e9 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html @@ -119,6 +119,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html index a2d0e6bcd..853bdf80c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html @@ -457,6 +457,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html index 1b690869c..29e99cbf8 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html @@ -257,11 +257,11 @@
         @Override
     142  
         public void characters(char[] ch, int start, int length) throws SAXException {
    -  143  3993
             if (nodeText != null) {
    -  144  1148
                 nodeText.append(ch, start, length);
    +  143  3987
             if (nodeText != null) {
    +  144  1142
                 nodeText.append(ch, start, length);
     145  
             }
    -  146  3993
         }
    +  146  3987
         }
     147  
     
     148   @@ -394,512 +394,508 @@  243  
         /**
     244   -
          * Saves a vulnerability to the CVE Database. This is a callback method
    +
          * Saves a vulnerability to the CVE Database.
     245   -
          * called by the Sax Parser Handler
    +
          *
     246   -
          * {@link org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler}.
    -  247   -
          *
    -  248  
          * @param vuln the vulnerability to store in the database
    -  249   +  247  
          * @throws DatabaseException thrown if there is an error writing to the
    -  250   +  248  
          * database
    -  251   +  249  
          * @throws CorruptIndexException is thrown if the CPE Index is corrupt
    -  252   +  250  
          * @throws IOException thrown if there is an IOException with the CPE Index
    -  253   +  251  
          */
    -  254   -
         public void saveEntry(Vulnerability vuln) throws DatabaseException, CorruptIndexException, IOException {
    -  255  18
             if (cveDB == null) {
    -  256  18
                 return;
    -  257   +  252   +
         private void saveEntry(Vulnerability vuln) throws DatabaseException, CorruptIndexException, IOException {
    +  253  18
             if (cveDB == null) {
    +  254  18
                 return;
    +  255  
             }
    -  258  0
             final String cveName = vuln.getName();
    -  259  0
             if (prevVersionVulnMap.containsKey(cveName)) {
    -  260  0
                 final List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName);
    -  261  0
                 for (VulnerableSoftware vs : vulnSoftware) {
    -  262  0
                     vuln.updateVulnerableSoftware(vs);
    -  263   +  256  0
             final String cveName = vuln.getName();
    +  257  0
             if (prevVersionVulnMap.containsKey(cveName)) {
    +  258  0
                 final List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName);
    +  259  0
                 for (VulnerableSoftware vs : vulnSoftware) {
    +  260  0
                     vuln.updateVulnerableSoftware(vs);
    +  261  
                 }
    -  264   +  262  
             }
    -  265  0
             for (VulnerableSoftware vs : vuln.getVulnerableSoftware()) {
    -  266  0
                 if (cpeIndex != null) {
    -  267  0
                     cpeIndex.saveEntry(vs);
    -  268   +  263  0
             for (VulnerableSoftware vs : vuln.getVulnerableSoftware()) {
    +  264  0
                 if (cpeIndex != null) {
    +  265  0
                     cpeIndex.saveEntry(vs);
    +  266  
                 }
    -  269   +  267  
             }
    -  270  0
             cveDB.updateVulnerability(vuln);
    -  271  0
         }
    -  272   +  268  0
             cveDB.updateVulnerability(vuln);
    +  269  0
         }
    +  270  
         /**
    -  273   +  271  
          * the cpe index.
    -  274   +  272  
          */
    -  275   +  273  
         private CpeIndexWriter cpeIndex;
    +  274   +
     
    +  275   +
         /**
     276   -
     
    -  277   -
         /**
    -  278  
          * Sets the cpe index writer.
    -  279   +  277  
          *
    -  280   +  278  
          * @param index the CPE Lucene Index
    -  281   +  279  
          */
    -  282   +  280  
         public void setCpeIndex(CpeIndexWriter index) {
    -  283  0
             cpeIndex = index;
    -  284  0
         }
    -  285   +  281  0
             cpeIndex = index;
    +  282  0
         }
    +  283  
     
    -  286   +  284  
         // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node">
    -  287   +  285  
         /**
    -  288   +  286  
          * A simple class to maintain information about the current element while
    -  289   +  287  
          * parsing the NVD CVE XML.
    -  290   +  288  
          */
    -  291  1
         protected static class Element {
    +  289  1
         protected static class Element {
    +  290   +
     
    +  291   +
             /**
     292   -
     
    +
              * A node type in the NVD CVE Schema 2.0
     293   -
             /**
    +
              */
     294   -
              * A node type in the NVD CVE Schema 2.0
    -  295   -
              */
    -  296  
             public static final String NVD = "nvd";
    +  295   +
             /**
    +  296   +
              * A node type in the NVD CVE Schema 2.0
     297   -
             /**
    +
              */
     298   -
              * A node type in the NVD CVE Schema 2.0
    -  299   -
              */
    -  300  
             public static final String ENTRY = "entry";
    +  299   +
             /**
    +  300   +
              * A node type in the NVD CVE Schema 2.0
     301   -
             /**
    +
              */
     302   -
              * A node type in the NVD CVE Schema 2.0
    -  303   -
              */
    -  304  
             public static final String VULN_PRODUCT = "vuln:product";
    +  303   +
             /**
    +  304   +
              * A node type in the NVD CVE Schema 2.0
     305   -
             /**
    +
              */
     306   -
              * A node type in the NVD CVE Schema 2.0
    -  307   -
              */
    -  308  
             public static final String VULN_REFERENCES = "vuln:references";
    +  307   +
             /**
    +  308   +
              * A node type in the NVD CVE Schema 2.0
     309   -
             /**
    +
              */
     310   -
              * A node type in the NVD CVE Schema 2.0
    -  311   -
              */
    -  312  
             public static final String VULN_SOURCE = "vuln:source";
    +  311   +
             /**
    +  312   +
              * A node type in the NVD CVE Schema 2.0
     313   -
             /**
    +
              */
     314   -
              * A node type in the NVD CVE Schema 2.0
    -  315   -
              */
    -  316  
             public static final String VULN_REFERENCE = "vuln:reference";
    +  315   +
             /**
    +  316   +
              * A node type in the NVD CVE Schema 2.0
     317   -
             /**
    +
              */
     318   -
              * A node type in the NVD CVE Schema 2.0
    -  319   -
              */
    -  320  
             public static final String VULN_SUMMARY = "vuln:summary";
    +  319   +
             /**
    +  320   +
              * A node type in the NVD CVE Schema 2.0
     321   -
             /**
    +
              */
     322   -
              * A node type in the NVD CVE Schema 2.0
    -  323   -
              */
    -  324  
             public static final String VULN_CWE = "vuln:cwe";
    +  323   +
             /**
    +  324   +
              * A node type in the NVD CVE Schema 2.0
     325   -
             /**
    +
              */
     326   -
              * A node type in the NVD CVE Schema 2.0
    -  327   -
              */
    -  328  
             public static final String CVSS_SCORE = "cvss:score";
    +  327   +
             /**
    +  328   +
              * A node type in the NVD CVE Schema 2.0
     329   -
             /**
    +
              */
     330   -
              * A node type in the NVD CVE Schema 2.0
    -  331   -
              */
    -  332  
             public static final String CVSS_ACCESS_VECTOR = "cvss:access-vector";
    +  331   +
             /**
    +  332   +
              * A node type in the NVD CVE Schema 2.0
     333   -
             /**
    +
              */
     334   -
              * A node type in the NVD CVE Schema 2.0
    -  335   -
              */
    -  336  
             public static final String CVSS_ACCESS_COMPLEXITY = "cvss:access-complexity";
    +  335   +
             /**
    +  336   +
              * A node type in the NVD CVE Schema 2.0
     337   -
             /**
    +
              */
     338   -
              * A node type in the NVD CVE Schema 2.0
    -  339   -
              */
    -  340  
             public static final String CVSS_AUTHENTICATION = "cvss:authentication";
    +  339   +
             /**
    +  340   +
              * A node type in the NVD CVE Schema 2.0
     341   -
             /**
    +
              */
     342   -
              * A node type in the NVD CVE Schema 2.0
    -  343   -
              */
    -  344  
             public static final String CVSS_CONFIDENTIALITY_IMPACT = "cvss:confidentiality-impact";
    +  343   +
             /**
    +  344   +
              * A node type in the NVD CVE Schema 2.0
     345   -
             /**
    +
              */
     346   -
              * A node type in the NVD CVE Schema 2.0
    -  347   -
              */
    -  348  
             public static final String CVSS_INTEGRITY_IMPACT = "cvss:integrity-impact";
    -  349   +  347  
             /**
    -  350   +  348  
              * A node type in the NVD CVE Schema 2.0
    -  351   +  349  
              */
    -  352   +  350  
             public static final String CVSS_AVAILABILITY_IMPACT = "cvss:availability-impact";
    -  353   +  351  
             /**
    -  354   +  352  
              * The current node.
    -  355   +  353  
              */
    -  356   +  354  
             private String node;
    +  355   +
     
    +  356   +
             /**
     357   -
     
    -  358   -
             /**
    -  359  
              * Gets the value of node.
    -  360   +  358  
              *
    -  361   +  359  
              * @return the value of node
    -  362   +  360  
              */
    -  363   +  361  
             public String getNode() {
    -  364  0
                 return this.node;
    +  362  0
                 return this.node;
    +  363   +
             }
    +  364   +
     
     365   -
             }
    +
             /**
     366   -
     
    -  367   -
             /**
    -  368  
              * Sets the value of node.
    -  369   +  367  
              *
    -  370   +  368  
              * @param node new value of node
    -  371   +  369  
              */
    -  372   +  370  
             public void setNode(String node) {
    -  373  4824
                 this.node = node;
    -  374  4824
             }
    +  371  4824
                 this.node = node;
    +  372  4824
             }
    +  373   +
     
    +  374   +
             /**
     375   -
     
    -  376   -
             /**
    -  377  
              * Checks if the handler is at the NVD node.
    +  376   +
              *
    +  377   +
              * @return true or false
     378   -
              *
    +
              */
     379   -
              * @return true or false
    -  380   -
              */
    -  381  
             public boolean isNVDNode() {
    -  382  1361
                 return NVD.equals(node);
    +  380  1361
                 return NVD.equals(node);
    +  381   +
             }
    +  382   +
     
     383   -
             }
    +
             /**
     384   -
     
    -  385   -
             /**
    -  386  
              * Checks if the handler is at the ENTRY node.
    +  385   +
              *
    +  386   +
              * @return true or false
     387   -
              *
    +
              */
     388   -
              * @return true or false
    -  389   -
              */
    -  390  
             public boolean isEntryNode() {
    -  391  4824
                 return ENTRY.equals(node);
    +  389  4824
                 return ENTRY.equals(node);
    +  390   +
             }
    +  391   +
     
     392   -
             }
    +
             /**
     393   -
     
    -  394   -
             /**
    -  395  
              * Checks if the handler is at the VULN_PRODUCT node.
    +  394   +
              *
    +  395   +
              * @return true or false
     396   -
              *
    +
              */
     397   -
              * @return true or false
    -  398   -
              */
    -  399  
             public boolean isVulnProductNode() {
    -  400  4588
                 return VULN_PRODUCT.equals(node);
    +  398  4588
                 return VULN_PRODUCT.equals(node);
    +  399   +
             }
    +  400   +
     
     401   -
             }
    +
             /**
     402   -
     
    -  403   -
             /**
    -  404  
              * Checks if the handler is at the REFERENCES node.
    +  403   +
              *
    +  404   +
              * @return true or false
     405   -
              *
    +
              */
     406   -
              * @return true or false
    -  407   -
              */
    -  408  
             public boolean isVulnReferencesNode() {
    -  409  1928
                 return VULN_REFERENCES.equals(node);
    +  407  1928
                 return VULN_REFERENCES.equals(node);
    +  408   +
             }
    +  409   +
     
     410   -
             }
    +
             /**
     411   -
     
    -  412   -
             /**
    -  413  
              * Checks if the handler is at the REFERENCE node.
    +  412   +
              *
    +  413   +
              * @return true or false
     414   -
              *
    +
              */
     415   -
              * @return true or false
    -  416   -
              */
    -  417  
             public boolean isVulnReferenceNode() {
    -  418  360
                 return VULN_REFERENCE.equals(node);
    +  416  360
                 return VULN_REFERENCE.equals(node);
    +  417   +
             }
    +  418   +
     
     419   -
             }
    +
             /**
     420   -
     
    -  421   -
             /**
    -  422  
              * Checks if the handler is at the VULN_SOURCE node.
    +  421   +
              *
    +  422   +
              * @return true or false
     423   -
              *
    +
              */
     424   -
              * @return true or false
    -  425   -
              */
    -  426  
             public boolean isVulnSourceNode() {
    -  427  180
                 return VULN_SOURCE.equals(node);
    +  425  180
                 return VULN_SOURCE.equals(node);
    +  426   +
             }
    +  427   +
     
     428   -
             }
    +
             /**
     429   -
     
    -  430   -
             /**
    -  431  
              * Checks if the handler is at the VULN_SUMMARY node.
    +  430   +
              *
    +  431   +
              * @return true or false
     432   -
              *
    +
              */
     433   -
              * @return true or false
    -  434   -
              */
    -  435  
             public boolean isVulnSummaryNode() {
    -  436  2594
                 return VULN_SUMMARY.equals(node);
    +  434  2594
                 return VULN_SUMMARY.equals(node);
    +  435   +
             }
    +  436   +
     
     437   -
             }
    +
             /**
     438   -
     
    -  439   -
             /**
    -  440  
              * Checks if the handler is at the VULN_CWE node.
    +  439   +
              *
    +  440   +
              * @return true or false
     441   -
              *
    +
              */
     442   -
              * @return true or false
    -  443   -
              */
    -  444  
             public boolean isVulnCWENode() {
    -  445  1360
                 return VULN_CWE.equals(node);
    +  443  1360
                 return VULN_CWE.equals(node);
    +  444   +
             }
    +  445   +
     
     446   -
             }
    +
             /**
     447   -
     
    -  448   -
             /**
    -  449  
              * Checks if the handler is at the CVSS_SCORE node.
    +  448   +
              *
    +  449   +
              * @return true or false
     450   -
              *
    +
              */
     451   -
              * @return true or false
    -  452   -
              */
    -  453  
             public boolean isCVSSScoreNode() {
    -  454  3726
                 return CVSS_SCORE.equals(node);
    +  452  3726
                 return CVSS_SCORE.equals(node);
    +  453   +
             }
    +  454   +
     
     455   -
             }
    +
             /**
     456   -
     
    -  457   -
             /**
    -  458  
              * Checks if the handler is at the CVSS_ACCESS_VECTOR node.
    +  457   +
              *
    +  458   +
              * @return true or false
     459   -
              *
    +
              */
     460   -
              * @return true or false
    -  461   -
              */
    -  462  
             public boolean isCVSSAccessVectorNode() {
    -  463  3674
                 return CVSS_ACCESS_VECTOR.equals(node);
    +  461  3674
                 return CVSS_ACCESS_VECTOR.equals(node);
    +  462   +
             }
    +  463   +
     
     464   -
             }
    +
             /**
     465   -
     
    -  466   -
             /**
    -  467  
              * Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node.
    +  466   +
              *
    +  467   +
              * @return true or false
     468   -
              *
    +
              */
     469   -
              * @return true or false
    -  470   -
              */
    -  471  
             public boolean isCVSSAccessComplexityNode() {
    -  472  3622
                 return CVSS_ACCESS_COMPLEXITY.equals(node);
    +  470  3622
                 return CVSS_ACCESS_COMPLEXITY.equals(node);
    +  471   +
             }
    +  472   +
     
     473   -
             }
    +
             /**
     474   -
     
    -  475   -
             /**
    -  476  
              * Checks if the handler is at the CVSS_AUTHENTICATION node.
    +  475   +
              *
    +  476   +
              * @return true or false
     477   -
              *
    +
              */
     478   -
              * @return true or false
    -  479   -
              */
    -  480  
             public boolean isCVSSAuthenticationNode() {
    -  481  3570
                 return CVSS_AUTHENTICATION.equals(node);
    +  479  3570
                 return CVSS_AUTHENTICATION.equals(node);
    +  480   +
             }
    +  481   +
     
     482   -
             }
    +
             /**
     483   -
     
    -  484   -
             /**
    -  485  
              * Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node.
    +  484   +
              *
    +  485   +
              * @return true or false
     486   -
              *
    +
              */
     487   -
              * @return true or false
    -  488   -
              */
    -  489  
             public boolean isCVSSConfidentialityImpactNode() {
    -  490  3466
                 return CVSS_CONFIDENTIALITY_IMPACT.equals(node);
    +  488  3466
                 return CVSS_CONFIDENTIALITY_IMPACT.equals(node);
    +  489   +
             }
    +  490   +
     
     491   -
             }
    +
             /**
     492   -
     
    -  493   -
             /**
    -  494  
              * Checks if the handler is at the CVSS_INTEGRITY_IMPACT node.
    +  493   +
              *
    +  494   +
              * @return true or false
     495   -
              *
    +
              */
     496   -
              * @return true or false
    -  497   -
              */
    -  498  
             public boolean isCVSSIntegrityImpactNode() {
    -  499  3414
                 return CVSS_INTEGRITY_IMPACT.equals(node);
    -  500   +  497  3414
                 return CVSS_INTEGRITY_IMPACT.equals(node);
    +  498  
             }
    -  501   +  499  
     
    -  502   +  500  
             /**
    -  503   +  501  
              * Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node.
    -  504   +  502  
              *
    -  505   +  503  
              * @return true or false
    -  506   +  504  
              */
    -  507   +  505  
             public boolean isCVSSAvailabilityImpactNode() {
    -  508  3518
                 return CVSS_AVAILABILITY_IMPACT.equals(node);
    -  509   +  506  3518
                 return CVSS_AVAILABILITY_IMPACT.equals(node);
    +  507  
             }
    -  510   +  508  
         }
    -  511   +  509  
         // </editor-fold>
    -  512   +  510  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCveAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCveAnalyzer.html deleted file mode 100644 index 171413626..000000000 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCveAnalyzer.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - -Coverage Report - - - - -
    Coverage Report - org.owasp.dependencycheck.data.nvdcve.NvdCveAnalyzer
    -
     
    - - - - -
    Classes in this File Line Coverage Branch Coverage Complexity
    NvdCveAnalyzer
    11%
    3/27
    0%
    0/8
    1.5
    -
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.nvdcve;
     20  
     
     21  
     import java.io.IOException;
     22  
     import java.sql.SQLException;
     23  
     import java.util.List;
     24  
     import java.util.Set;
     25  
     import org.owasp.dependencycheck.Engine;
     26  
     import org.owasp.dependencycheck.analyzer.AnalysisException;
     27  
     import org.owasp.dependencycheck.analyzer.AnalysisPhase;
     28  
     import org.owasp.dependencycheck.dependency.Dependency;
     29  
     import org.owasp.dependencycheck.dependency.Vulnerability;
     30  
     import org.owasp.dependencycheck.dependency.Identifier;
     31  
     import org.owasp.dependencycheck.analyzer.Analyzer;
     32  
     
     33  
     /**
     34  
      * NvdCveAnalyzer is a utility class that takes a project dependency and
     35  
      * attempts to discern if there is an associated CVEs. It uses the the
     36  
      * identifiers found by other analyzers to lookup the CVE data.
     37  
      *
     38  
      * @author Jeremy Long (jeremy.long@owasp.org)
     39  
      */
     40  3
     public class NvdCveAnalyzer implements Analyzer {
     41  
     
     42  
         /**
     43  
          * The maximum number of query results to return.
     44  
          */
     45  
         static final int MAX_QUERY_RESULTS = 100;
     46  
         /**
     47  
          * The CVE Index.
     48  
          */
     49  
         private CveDB cveDB;
     50  
     
     51  
         /**
     52  
          * Opens the data source.
     53  
          *
     54  
          * @throws SQLException thrown when there is a SQL Exception
     55  
          * @throws IOException thrown when there is an IO Exception
     56  
          * @throws DatabaseException thrown when there is a database exceptions
     57  
          * @throws ClassNotFoundException thrown if the h2 database driver cannot be
     58  
          * loaded
     59  
          */
     60  
         public void open() throws SQLException, IOException, DatabaseException, ClassNotFoundException {
     61  0
             cveDB = new CveDB();
     62  0
             cveDB.open();
     63  0
         }
     64  
     
     65  
         /**
     66  
          * Closes the data source.
     67  
          */
     68  
         public void close() {
     69  0
             cveDB.close();
     70  0
             cveDB = null;
     71  0
         }
     72  
     
     73  
         /**
     74  
          * Returns the status of the data source - is the database open.
     75  
          *
     76  
          * @return true or false.
     77  
          */
     78  
         public boolean isOpen() {
     79  0
             return (cveDB != null);
     80  
         }
     81  
     
     82  
         /**
     83  
          * Ensures that the CVE Database is closed.
     84  
          *
     85  
          * @throws Throwable when a throwable is thrown.
     86  
          */
     87  
         @Override
     88  
         protected void finalize() throws Throwable {
     89  0
             super.finalize();
     90  0
             if (isOpen()) {
     91  0
                 close();
     92  
             }
     93  0
         }
     94  
     
     95  
         /**
     96  
          * Analyzes a dependency and attempts to determine if there are any CPE
     97  
          * identifiers for this dependency.
     98  
          *
     99  
          * @param dependency The Dependency to analyze
     100  
          * @param engine The analysis engine
     101  
          * @throws AnalysisException is thrown if there is an issue analyzing the
     102  
          * dependency
     103  
          */
     104  
         public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
     105  0
             for (Identifier id : dependency.getIdentifiers()) {
     106  0
                 if ("cpe".equals(id.getType())) {
     107  
                     try {
     108  0
                         final String value = id.getValue();
     109  0
                         final List<Vulnerability> vulns = cveDB.getVulnerabilities(value);
     110  0
                         dependency.getVulnerabilities().addAll(vulns);
     111  
     //TODO - remove this comment block after additional testing is completed
     112  
     //note - valid match functionality has been moved into the CveDB class.
     113  
     ////                    for (Vulnerability v : vulns) {
     114  
     ////                        if (isValidMatch(dependency, v)) {
     115  
     ////                            dependency.addVulnerability(v);
     116  
     ////                        }
     117  
     ////                    }
     118  0
                     } catch (DatabaseException ex) {
     119  0
                         throw new AnalysisException(ex);
     120  0
                     }
     121  
                 }
     122  
             }
     123  0
         }
     124  
     
     125  
         /**
     126  
          * Returns true because this analyzer supports all dependency types.
     127  
          *
     128  
          * @return true.
     129  
          */
     130  
         public Set<String> getSupportedExtensions() {
     131  17289
             return null;
     132  
         }
     133  
     
     134  
         /**
     135  
          * Returns the name of this analyzer.
     136  
          *
     137  
          * @return the name of this analyzer.
     138  
          */
     139  
         public String getName() {
     140  0
             return "NVD CVE Analyzer";
     141  
         }
     142  
     
     143  
         /**
     144  
          * Returns true because this analyzer supports all dependency types.
     145  
          *
     146  
          * @param extension the file extension of the dependency being analyzed.
     147  
          * @return true.
     148  
          */
     149  
         public boolean supportsExtension(String extension) {
     150  0
             return true;
     151  
         }
     152  
     
     153  
         /**
     154  
          * Returns the analysis phase that this analyzer should run in.
     155  
          *
     156  
          * @return the analysis phase that this analyzer should run in.
     157  
          */
     158  
         public AnalysisPhase getAnalysisPhase() {
     159  3
             return AnalysisPhase.FINDING_ANALYSIS;
     160  
         }
     161  
     
     162  
         /**
     163  
          * Opens the NVD CVE Lucene Index.
     164  
          *
     165  
          * @throws Exception is thrown if there is an issue opening the index.
     166  
          */
     167  
         public void initialize() throws Exception {
     168  0
             this.open();
     169  0
         }
     170  
     //TODO - remove this comment block after additional testing is completed
     171  
     // The following check has been moved into the CveDB class.
     172  
     ////    /**
     173  
     ////     * <p>Determines if this is a valid vulnerability match for the given
     174  
     ////     * dependency. Specifically, this is concerned with ensuring the version
     175  
     ////     * numbers are correct.</p>
     176  
     ////     * <p>Currently, this is focused on the issues with the versions for Struts
     177  
     ////     * 1 and Struts 2. In the future this will due better matching on more
     178  
     ////     * version numbers.</p>
     179  
     ////     *
     180  
     ////     * @param dependency the dependency
     181  
     ////     * @param v the vulnerability
     182  
     ////     * @return returns true if the vulnerability is for the given dependency
     183  
     ////     */
     184  
     ////    private boolean isValidMatch(final Dependency dependency, final Vulnerability v) {
     185  
     ////        //right now I only know of the issue with Struts1/2
     186  
     ////        // start with fixing this problem.
     187  
     ////
     188  
     ////        //TODO extend this solution to do better version matching for the vulnerable software.
     189  
     ////        boolean struts1 = false;
     190  
     ////        boolean struts2 = false;
     191  
     ////        for (Identifier i : dependency.getIdentifiers()) {
     192  
     ////            if (i.getValue().startsWith("cpe:/a:apache:struts:")) {
     193  
     ////                final char version = i.getValue().charAt(21);
     194  
     ////                if (version == '1') {
     195  
     ////                    struts1 = true;
     196  
     ////                }
     197  
     ////                if (version == '2') {
     198  
     ////                    struts2 = true;
     199  
     ////                }
     200  
     ////            }
     201  
     ////        }
     202  
     ////        if (!struts1 && !struts2) {
     203  
     ////            return true; //we are not looking at struts, so return true.
     204  
     ////        }
     205  
     ////        if (struts1 && struts2) {
     206  
     ////            return true; //there is a mismatch here, but we can't solve it here so we return valid.
     207  
     ////        }
     208  
     ////        if (struts1) {
     209  
     ////            boolean hasStruts1Vuln = false;
     210  
     ////            boolean hasStruts2PreviousVersion = false;
     211  
     ////            for (VulnerableSoftware vs : v.getVulnerableSoftware()) {
     212  
     ////                //TODO FIX THIS
     213  
     ////                //hasStruts2PreviousVersion |= vs.hasPreviousVersion() && vs.getName().charAt(21) == '2';
     214  
     ////                //hasStruts1Vuln |= vs.getName().charAt(21) == '1';
     215  
     ////            }
     216  
     ////            if (!hasStruts1Vuln && hasStruts2PreviousVersion) {
     217  
     ////                return false;
     218  
     ////            }
     219  
     ////        }
     220  
     ////
     221  
     ////        return true;
     222  
     ////    }
     223  
     }
    - - - - diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater.html deleted file mode 100644 index 754f99f5c..000000000 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater.html +++ /dev/null @@ -1,1089 +0,0 @@ - - - - -Coverage Report - - - - -
    Coverage Report - org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater
    -
     
    - - - - - -
    Classes in this File Line Coverage Branch Coverage Complexity
    DatabaseUpdater
    0%
    0/262
    0%
    0/76
    5.789
    DatabaseUpdater$NvdCveUrl
    0%
    0/17
    N/A
    5.789
    -
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.nvdcve.xml;
     20  
     
     21  
     import java.io.File;
     22  
     import java.io.FileInputStream;
     23  
     import java.io.FileNotFoundException;
     24  
     import java.io.FileOutputStream;
     25  
     import java.io.IOException;
     26  
     import java.io.InputStream;
     27  
     import java.io.OutputStream;
     28  
     import java.io.OutputStreamWriter;
     29  
     import javax.xml.parsers.ParserConfigurationException;
     30  
     import org.owasp.dependencycheck.data.CachedWebDataSource;
     31  
     import java.net.MalformedURLException;
     32  
     import java.net.URL;
     33  
     import java.sql.SQLException;
     34  
     import java.util.Calendar;
     35  
     import java.util.Date;
     36  
     import java.util.HashMap;
     37  
     import java.util.List;
     38  
     import java.util.Map;
     39  
     import java.util.Properties;
     40  
     import java.util.logging.Level;
     41  
     import java.util.logging.Logger;
     42  
     import javax.xml.parsers.SAXParser;
     43  
     import javax.xml.parsers.SAXParserFactory;
     44  
     import org.owasp.dependencycheck.data.UpdateException;
     45  
     import org.owasp.dependencycheck.data.cpe.Index;
     46  
     import org.owasp.dependencycheck.data.nvdcve.CveDB;
     47  
     import org.owasp.dependencycheck.dependency.VulnerableSoftware;
     48  
     import org.owasp.dependencycheck.utils.DownloadFailedException;
     49  
     import org.owasp.dependencycheck.utils.Downloader;
     50  
     import org.owasp.dependencycheck.utils.FileUtils;
     51  
     import org.owasp.dependencycheck.utils.InvalidSettingException;
     52  
     import org.owasp.dependencycheck.utils.Settings;
     53  
     import org.xml.sax.SAXException;
     54  
     import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
     55  
     
     56  
     /**
     57  
      *
     58  
      * @author Jeremy Long (jeremy.long@owasp.org)
     59  
      */
     60  0
     public class DatabaseUpdater implements CachedWebDataSource {
     61  
     
     62  
         /**
     63  
          * The name of the properties file containing the timestamp of the last
     64  
          * update.
     65  
          */
     66  
         private static final String UPDATE_PROPERTIES_FILE = "lastupdated.prop";
     67  
         /**
     68  
          * The properties file key for the last updated field - used to store the
     69  
          * last updated time of the Modified NVD CVE xml file.
     70  
          */
     71  
         private static final String LAST_UPDATED_MODIFIED = "lastupdated.modified";
     72  
         /**
     73  
          * Stores the last updated time for each of the NVD CVE files. These
     74  
          * timestamps should be updated if we process the modified file within 7
     75  
          * days of the last update.
     76  
          */
     77  
         private static final String LAST_UPDATED_BASE = "lastupdated.";
     78  
         /**
     79  
          * Modified key word.
     80  
          */
     81  
         public static final String MODIFIED = "modified";
     82  
         /**
     83  
          * Reference to the Cve Database.
     84  
          */
     85  0
         private CveDB cveDB = null;
     86  
         /**
     87  
          * Reference to the Cpe Index.
     88  
          */
     89  0
         private Index cpeIndex = null;
     90  
     
     91  
         /**
     92  
          * <p>Downloads the latest NVD CVE XML file from the web and imports it into
     93  
          * the current CVE Database.</p>
     94  
          *
     95  
          * @throws UpdateException is thrown if there is an error updating the
     96  
          * database
     97  
          */
     98  
         public void update() throws UpdateException {
     99  
             try {
     100  0
                 final Map<String, NvdCveUrl> update = updateNeeded();
     101  0
                 int maxUpdates = 0;
     102  0
                 for (NvdCveUrl cve : update.values()) {
     103  0
                     if (cve.getNeedsUpdate()) {
     104  0
                         maxUpdates += 1;
     105  
                     }
     106  
                 }
     107  0
                 if (maxUpdates > 3) {
     108  0
                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
     109  
                             "NVD CVE requires several updates; this could take a couple of minutes.");
     110  
                 }
     111  0
                 if (maxUpdates > 0) {
     112  0
                     openDataStores();
     113  
                 }
     114  0
                 int count = 0;
     115  
     
     116  0
                 for (NvdCveUrl cve : update.values()) {
     117  0
                     if (cve.getNeedsUpdate()) {
     118  0
                         count += 1;
     119  0
                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
     120  
                                 "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates});
     121  0
                         URL url = new URL(cve.getUrl());
     122  0
                         File outputPath = null;
     123  0
                         File outputPath12 = null;
     124  
                         try {
     125  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
     126  
                                     "Downloading {0}", cve.getUrl());
     127  
     
     128  0
                             outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml");
     129  0
                             Downloader.fetchFile(url, outputPath, false);
     130  
     
     131  0
                             url = new URL(cve.getOldSchemaVersionUrl());
     132  0
                             outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml");
     133  0
                             Downloader.fetchFile(url, outputPath12, false);
     134  
     
     135  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
     136  
                                     "Processing {0}", cve.getUrl());
     137  
     
     138  0
                             importXML(outputPath, outputPath12);
     139  
     
     140  0
                             cveDB.commit();
     141  0
                             cpeIndex.commit();
     142  
     
     143  0
                             writeLastUpdatedPropertyFile(cve);
     144  
     
     145  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
     146  
                                     "Completed update {0} of {1}", new Object[]{count, maxUpdates});
     147  0
                         } catch (FileNotFoundException ex) {
     148  0
                             throw new UpdateException(ex);
     149  0
                         } catch (ParserConfigurationException ex) {
     150  0
                             throw new UpdateException(ex);
     151  0
                         } catch (SAXException ex) {
     152  0
                             throw new UpdateException(ex);
     153  0
                         } catch (IOException ex) {
     154  0
                             throw new UpdateException(ex);
     155  0
                         } catch (SQLException ex) {
     156  0
                             throw new UpdateException(ex);
     157  0
                         } catch (DatabaseException ex) {
     158  0
                             throw new UpdateException(ex);
     159  0
                         } catch (ClassNotFoundException ex) {
     160  0
                             throw new UpdateException(ex);
     161  
                         } finally {
     162  0
                             boolean deleted = false;
     163  
                             try {
     164  0
                                 if (outputPath != null && outputPath.exists()) {
     165  0
                                     deleted = outputPath.delete();
     166  
                                 }
     167  
                             } finally {
     168  0
                                 if (outputPath != null && (outputPath.exists() || !deleted)) {
     169  0
                                     outputPath.deleteOnExit();
     170  
                                 }
     171  
                             }
     172  
                             try {
     173  0
                                 deleted = false;
     174  0
                                 if (outputPath12 != null && outputPath12.exists()) {
     175  0
                                     deleted = outputPath12.delete();
     176  
                                 }
     177  
                             } finally {
     178  0
                                 if (outputPath12 != null && (outputPath12.exists() || !deleted)) {
     179  0
                                     outputPath12.deleteOnExit();
     180  
                                 }
     181  
                             }
     182  0
                         }
     183  0
                     }
     184  
                 }
     185  0
                 if (maxUpdates >= 1) {
     186  0
                     ensureModifiedIsInLastUpdatedProperties(update);
     187  0
                     cveDB.cleanupDatabase();
     188  
                 }
     189  0
             } catch (MalformedURLException ex) {
     190  0
                 throw new UpdateException(ex);
     191  0
             } catch (DownloadFailedException ex) {
     192  0
                 throw new UpdateException(ex);
     193  
             } finally {
     194  0
                 closeDataStores();
     195  0
             }
     196  0
         }
     197  
     
     198  
         /**
     199  
          * Imports the NVD CVE XML File into the Lucene Index.
     200  
          *
     201  
          * @param file the file containing the NVD CVE XML
     202  
          * @param oldVersion contains the file containing the NVD CVE XML 1.2
     203  
          * @throws ParserConfigurationException is thrown if there is a parser
     204  
          * configuration exception
     205  
          * @throws SAXException is thrown if there is a SAXException
     206  
          * @throws IOException is thrown if there is a ioexception
     207  
          * @throws SQLException is thrown if there is a sql exception
     208  
          * @throws DatabaseException is thrown if there is a database exception
     209  
          * @throws ClassNotFoundException thrown if the h2 database driver cannot be
     210  
          * loaded
     211  
          */
     212  
         private void importXML(File file, File oldVersion)
     213  
                 throws ParserConfigurationException, SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException {
     214  
     
     215  0
             final SAXParserFactory factory = SAXParserFactory.newInstance();
     216  0
             final SAXParser saxParser = factory.newSAXParser();
     217  
     
     218  0
             final NvdCve12Handler cve12Handler = new NvdCve12Handler();
     219  0
             saxParser.parse(oldVersion, cve12Handler);
     220  0
             final Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities();
     221  
     
     222  0
             final NvdCve20Handler cve20Handler = new NvdCve20Handler();
     223  0
             cve20Handler.setCveDB(cveDB);
     224  0
             cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap);
     225  0
             cve20Handler.setCpeIndex(cpeIndex);
     226  0
             saxParser.parse(file, cve20Handler);
     227  0
         }
     228  
     
     229  
         /**
     230  
          * Closes the CVE and CPE data stores.
     231  
          */
     232  
         private void closeDataStores() {
     233  0
             if (cveDB != null) {
     234  
                 try {
     235  0
                     cveDB.close();
     236  0
                 } catch (Exception ignore) {
     237  0
                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, "Error closing the cveDB", ignore);
     238  0
                 }
     239  
             }
     240  0
             if (cpeIndex != null) {
     241  
                 try {
     242  0
                     cpeIndex.close();
     243  0
                 } catch (Exception ignore) {
     244  0
                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, "Error closing the cpeIndex", ignore);
     245  0
                 }
     246  
             }
     247  0
         }
     248  
     
     249  
         /**
     250  
          * Opens the CVE and CPE data stores.
     251  
          *
     252  
          * @throws UpdateException thrown if a data store cannot be opened
     253  
          */
     254  
         private void openDataStores() throws UpdateException {
     255  
             //open the cve and cpe data stores
     256  
             try {
     257  0
                 cveDB = new CveDB();
     258  0
                 cveDB.open();
     259  0
                 cpeIndex = new Index();
     260  0
                 cpeIndex.openIndexWriter();
     261  0
             } catch (IOException ex) {
     262  0
                 closeDataStores();
     263  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "IO Error opening databases", ex);
     264  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
     265  0
             } catch (SQLException ex) {
     266  0
                 closeDataStores();
     267  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "SQL Exception opening databases", ex);
     268  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
     269  0
             } catch (DatabaseException ex) {
     270  0
                 closeDataStores();
     271  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Database Exception opening databases", ex);
     272  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
     273  0
             } catch (ClassNotFoundException ex) {
     274  0
                 closeDataStores();
     275  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Class not found exception opening databases", ex);
     276  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
     277  0
             }
     278  0
         }
     279  
     
     280  
         //<editor-fold defaultstate="collapsed" desc="Code to read/write properties files regarding the last update dates">
     281  
         /**
     282  
          * Writes a properties file containing the last updated date to the
     283  
          * VULNERABLE_CPE directory.
     284  
          *
     285  
          * @param updatedValue the updated nvdcve entry
     286  
          * @throws UpdateException is thrown if there is an update exception
     287  
          */
     288  
         private void writeLastUpdatedPropertyFile(NvdCveUrl updatedValue) throws UpdateException {
     289  0
             if (updatedValue == null) {
     290  0
                 return;
     291  
             }
     292  
             String dir;
     293  
             try {
     294  0
                 dir = CveDB.getDataDirectory().getCanonicalPath();
     295  0
             } catch (IOException ex) {
     296  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Error updating the databases propterty file.", ex);
     297  0
                 throw new UpdateException("Unable to locate last updated properties file.", ex);
     298  0
             }
     299  0
             final File cveProp = new File(dir, UPDATE_PROPERTIES_FILE);
     300  0
             final Properties prop = new Properties();
     301  0
             if (cveProp.exists()) {
     302  0
                 FileInputStream in = null;
     303  
                 try {
     304  0
                     in = new FileInputStream(cveProp);
     305  0
                     prop.load(in);
     306  0
                 } catch (Exception ignoreMe) {
     307  0
                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ignoreMe);
     308  
                 } finally {
     309  0
                     if (in != null) {
     310  
                         try {
     311  0
                             in.close();
     312  0
                         } catch (Exception ignoreMeToo) {
     313  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ignoreMeToo);
     314  0
                         }
     315  
                     }
     316  
                 }
     317  
     
     318  
             }
     319  0
             prop.put("version", CveDB.DB_SCHEMA_VERSION);
     320  0
             prop.put(LAST_UPDATED_BASE + updatedValue.getId(), String.valueOf(updatedValue.getTimestamp()));
     321  
     
     322  0
             OutputStream os = null;
     323  0
             OutputStreamWriter out = null;
     324  
             try {
     325  0
                 os = new FileOutputStream(cveProp);
     326  0
                 out = new OutputStreamWriter(os, "UTF-8");
     327  0
                 prop.store(out, dir);
     328  0
             } catch (FileNotFoundException ex) {
     329  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
     330  0
                 throw new UpdateException("Unable to find last updated properties file.", ex);
     331  0
             } catch (IOException ex) {
     332  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
     333  0
                 throw new UpdateException("Unable to update last updated properties file.", ex);
     334  
             } finally {
     335  0
                 if (out != null) {
     336  
                     try {
     337  0
                         out.close();
     338  0
                     } catch (IOException ex) {
     339  0
                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
     340  0
                     }
     341  
                 }
     342  0
                 if (os != null) {
     343  
                     try {
     344  0
                         os.close();
     345  0
                     } catch (IOException ex) {
     346  0
                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
     347  0
                     }
     348  
                 }
     349  
             }
     350  0
         }
     351  
     
     352  
         /**
     353  
          * Determines if the index needs to be updated. This is done by fetching the
     354  
          * nvd cve meta data and checking the last update date. If the data needs to
     355  
          * be refreshed this method will return the NvdCveUrl for the files that
     356  
          * need to be updated.
     357  
          *
     358  
          * @return the NvdCveUrl of the files that need to be updated.
     359  
          * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
     360  
          * data is incorrect.
     361  
          * @throws DownloadFailedException is thrown if there is an error.
     362  
          * downloading the nvd cve download data file.
     363  
          * @throws UpdateException Is thrown if there is an issue with the last
     364  
          * updated properties file.
     365  
          */
     366  
         public Map<String, NvdCveUrl> updateNeeded() throws MalformedURLException, DownloadFailedException, UpdateException {
     367  
     
     368  
             Map<String, NvdCveUrl> currentlyPublished;
     369  
             try {
     370  0
                 currentlyPublished = retrieveCurrentTimestampsFromWeb();
     371  0
             } catch (InvalidDataException ex) {
     372  0
                 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page";
     373  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, msg, ex);
     374  0
                 throw new DownloadFailedException(msg, ex);
     375  
     
     376  0
             } catch (InvalidSettingException ex) {
     377  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex);
     378  0
                 throw new DownloadFailedException("Invalid settings", ex);
     379  0
             }
     380  
     
     381  0
             if (currentlyPublished == null) {
     382  0
                 throw new DownloadFailedException("Unable to retrieve valid timestamp from nvd cve downloads page");
     383  
             }
     384  
             String dir;
     385  
             try {
     386  0
                 dir = CveDB.getDataDirectory().getCanonicalPath();
     387  0
             } catch (IOException ex) {
     388  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "CveDB data directory doesn't exist?", ex);
     389  0
                 throw new UpdateException("Unable to locate last updated properties file.", ex);
     390  0
             }
     391  
     
     392  0
             final File f = new File(dir);
     393  0
             if (f.exists()) {
     394  0
                 final File cveProp = new File(dir, UPDATE_PROPERTIES_FILE);
     395  0
                 if (cveProp.exists()) {
     396  0
                     final Properties prop = new Properties();
     397  0
                     InputStream is = null;
     398  
                     try {
     399  0
                         is = new FileInputStream(cveProp);
     400  0
                         prop.load(is);
     401  
     
     402  0
                         boolean deleteAndRecreate = false;
     403  
                         float version;
     404  
     
     405  0
                         if (prop.getProperty("version") == null) {
     406  0
                             deleteAndRecreate = true;
     407  
                         } else {
     408  
                             try {
     409  0
                                 version = Float.parseFloat(prop.getProperty("version"));
     410  0
                                 final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);
     411  0
                                 if (currentVersion > version) {
     412  0
                                     deleteAndRecreate = true;
     413  
                                 }
     414  0
                             } catch (NumberFormatException ex) {
     415  0
                                 deleteAndRecreate = true;
     416  0
                             }
     417  
                         }
     418  0
                         if (deleteAndRecreate) {
     419  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO, "The database version is old. Rebuilding the database.");
     420  0
                             is.close();
     421  
                             //this is an old version of the lucene index - just delete it
     422  0
                             FileUtils.delete(f);
     423  
     
     424  
                             //this importer also updates the CPE index and it is also using an old version
     425  0
                             final Index cpeId = new Index();
     426  0
                             final File cpeDir = cpeId.getDataDirectory();
     427  0
                             FileUtils.delete(cpeDir);
     428  0
                             return currentlyPublished;
     429  
                         }
     430  
     
     431  0
                         final long lastUpdated = Long.parseLong(prop.getProperty(LAST_UPDATED_MODIFIED, "0"));
     432  0
                         final Date now = new Date();
     433  0
                         final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);
     434  0
                         final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002);
     435  0
                         final int end = Calendar.getInstance().get(Calendar.YEAR);
     436  0
                         if (lastUpdated == currentlyPublished.get(MODIFIED).timestamp) {
     437  0
                             currentlyPublished.clear(); //we don't need to update anything.
     438  0
                         } else if (withinRange(lastUpdated, now.getTime(), days)) {
     439  0
                             currentlyPublished.get(MODIFIED).setNeedsUpdate(true);
     440  0
                             for (int i = start; i <= end; i++) {
     441  0
                                 currentlyPublished.get(String.valueOf(i)).setNeedsUpdate(false);
     442  
                             }
     443  
                         } else { //we figure out which of the several XML files need to be downloaded.
     444  0
                             currentlyPublished.get(MODIFIED).setNeedsUpdate(false);
     445  0
                             for (int i = start; i <= end; i++) {
     446  0
                                 final NvdCveUrl cve = currentlyPublished.get(String.valueOf(i));
     447  0
                                 long currentTimestamp = 0;
     448  
                                 try {
     449  0
                                     currentTimestamp = Long.parseLong(prop.getProperty(LAST_UPDATED_BASE + String.valueOf(i), "0"));
     450  0
                                 } catch (NumberFormatException ex) {
     451  0
                                     final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated",
     452  
                                             LAST_UPDATED_BASE, String.valueOf(i));
     453  0
                                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, msg, ex);
     454  0
                                 }
     455  0
                                 if (currentTimestamp == cve.getTimestamp()) {
     456  0
                                     cve.setNeedsUpdate(false); //they default to true.
     457  
                                 }
     458  
                             }
     459  
                         }
     460  0
                     } catch (FileNotFoundException ex) {
     461  0
                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
     462  0
                     } catch (IOException ex) {
     463  0
                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
     464  0
                     } catch (NumberFormatException ex) {
     465  0
                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
     466  
                     } finally {
     467  0
                         if (is != null) {
     468  
                             try {
     469  0
                                 is.close();
     470  0
                             } catch (IOException ex) {
     471  0
                                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
     472  0
                             }
     473  
                         }
     474  
                     }
     475  
                 }
     476  
             }
     477  0
             return currentlyPublished;
     478  
         }
     479  
     
     480  
         /**
     481  
          * Determines if the epoch date is within the range specified of the
     482  
          * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to
     483  
          * get the number of days. If the calculated days is less then the range the
     484  
          * date is considered valid.
     485  
          *
     486  
          * @param date the date to be checked.
     487  
          * @param compareTo the date to compare to.
     488  
          * @param range the range in days to be considered valid.
     489  
          * @return whether or not the date is within the range.
     490  
          */
     491  
         private boolean withinRange(long date, long compareTo, int range) {
     492  0
             final double differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0;
     493  0
             return differenceInDays < range;
     494  
         }
     495  
     
     496  
         /**
     497  
          * Retrieves the timestamps from the NVD CVE meta data file.
     498  
          *
     499  
          * @return the timestamp from the currently published nvdcve downloads page
     500  
          * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data
     501  
          * is incorrect.
     502  
          * @throws DownloadFailedException thrown if there is an error downloading
     503  
          * the nvd cve meta data file
     504  
          * @throws InvalidDataException thrown if there is an exception parsing the
     505  
          * timestamps
     506  
          * @throws InvalidSettingException thrown if the settings are invalid
     507  
          */
     508  
         protected Map<String, NvdCveUrl> retrieveCurrentTimestampsFromWeb()
     509  
                 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {
     510  
     
     511  0
             final Map<String, NvdCveUrl> map = new HashMap<String, NvdCveUrl>();
     512  0
             String retrieveUrl = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL);
     513  
     
     514  0
             NvdCveUrl item = new NvdCveUrl();
     515  0
             item.setNeedsUpdate(false); //the others default to true, to make life easier later this should default to false.
     516  0
             item.setId(MODIFIED);
     517  0
             item.setUrl(retrieveUrl);
     518  0
             item.setOldSchemaVersionUrl(Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL));
     519  
     
     520  0
             item.timestamp = Downloader.getLastModified(new URL(retrieveUrl));
     521  0
             map.put(MODIFIED, item);
     522  
     
     523  0
             final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR);
     524  0
             final int end = Calendar.getInstance().get(Calendar.YEAR);
     525  0
             final String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0);
     526  0
             final String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2);
     527  0
             for (int i = start; i <= end; i++) {
     528  0
                 retrieveUrl = String.format(baseUrl20, i);
     529  0
                 item = new NvdCveUrl();
     530  0
                 item.setId(Integer.toString(i));
     531  0
                 item.setUrl(retrieveUrl);
     532  0
                 item.setOldSchemaVersionUrl(String.format(baseUrl12, i));
     533  0
                 item.setTimestamp(Downloader.getLastModified(new URL(retrieveUrl)));
     534  0
                 map.put(item.id, item);
     535  
             }
     536  0
             return map;
     537  
         }
     538  
     
     539  
         /**
     540  
          * Method to double check that the "modified" nvdcve file is listed and has
     541  
          * a timestamp in the last updated properties file.
     542  
          *
     543  
          * @param update a set of updated NvdCveUrl objects
     544  
          */
     545  
         private void ensureModifiedIsInLastUpdatedProperties(Map<String, NvdCveUrl> update) {
     546  
             try {
     547  0
                 writeLastUpdatedPropertyFile(update.get(MODIFIED));
     548  0
             } catch (UpdateException ex) {
     549  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
     550  0
             }
     551  0
         }
     552  
     
     553  
         /**
     554  
          * A pojo that contains the Url and timestamp of the current NvdCve XML
     555  
          * files.
     556  
          */
     557  0
         protected static class NvdCveUrl {
     558  
     
     559  
             /**
     560  
              * an id.
     561  
              */
     562  
             private String id;
     563  
     
     564  
             /**
     565  
              * Get the value of id.
     566  
              *
     567  
              * @return the value of id
     568  
              */
     569  
             public String getId() {
     570  0
                 return id;
     571  
             }
     572  
     
     573  
             /**
     574  
              * Set the value of id.
     575  
              *
     576  
              * @param id new value of id
     577  
              */
     578  
             public void setId(String id) {
     579  0
                 this.id = id;
     580  0
             }
     581  
             /**
     582  
              * a url.
     583  
              */
     584  
             private String url;
     585  
     
     586  
             /**
     587  
              * Get the value of url.
     588  
              *
     589  
              * @return the value of url
     590  
              */
     591  
             public String getUrl() {
     592  0
                 return url;
     593  
             }
     594  
     
     595  
             /**
     596  
              * Set the value of url.
     597  
              *
     598  
              * @param url new value of url
     599  
              */
     600  
             public void setUrl(String url) {
     601  0
                 this.url = url;
     602  0
             }
     603  
             /**
     604  
              * The 1.2 schema URL.
     605  
              */
     606  
             private String oldSchemaVersionUrl;
     607  
     
     608  
             /**
     609  
              * Get the value of oldSchemaVersionUrl.
     610  
              *
     611  
              * @return the value of oldSchemaVersionUrl
     612  
              */
     613  
             public String getOldSchemaVersionUrl() {
     614  0
                 return oldSchemaVersionUrl;
     615  
             }
     616  
     
     617  
             /**
     618  
              * Set the value of oldSchemaVersionUrl.
     619  
              *
     620  
              * @param oldSchemaVersionUrl new value of oldSchemaVersionUrl
     621  
              */
     622  
             public void setOldSchemaVersionUrl(String oldSchemaVersionUrl) {
     623  0
                 this.oldSchemaVersionUrl = oldSchemaVersionUrl;
     624  0
             }
     625  
             /**
     626  
              * a timestamp - epoch time.
     627  
              */
     628  
             private long timestamp;
     629  
     
     630  
             /**
     631  
              * Get the value of timestamp - epoch time.
     632  
              *
     633  
              * @return the value of timestamp - epoch time
     634  
              */
     635  
             public long getTimestamp() {
     636  0
                 return timestamp;
     637  
             }
     638  
     
     639  
             /**
     640  
              * Set the value of timestamp - epoch time.
     641  
              *
     642  
              * @param timestamp new value of timestamp - epoch time
     643  
              */
     644  
             public void setTimestamp(long timestamp) {
     645  0
                 this.timestamp = timestamp;
     646  0
             }
     647  
             /**
     648  
              * indicates whether or not this item should be updated.
     649  
              */
     650  0
             private boolean needsUpdate = true;
     651  
     
     652  
             /**
     653  
              * Get the value of needsUpdate.
     654  
              *
     655  
              * @return the value of needsUpdate
     656  
              */
     657  
             public boolean getNeedsUpdate() {
     658  0
                 return needsUpdate;
     659  
             }
     660  
     
     661  
             /**
     662  
              * Set the value of needsUpdate.
     663  
              *
     664  
              * @param needsUpdate new value of needsUpdate
     665  
              */
     666  
             public void setNeedsUpdate(boolean needsUpdate) {
     667  0
                 this.needsUpdate = needsUpdate;
     668  0
             }
     669  
         }
     670  
         //</editor-fold>
     671  
     }
    - - - - diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler.html deleted file mode 100644 index 2056fc36a..000000000 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler.html +++ /dev/null @@ -1,462 +0,0 @@ - - - - -Coverage Report - - - - -
    Coverage Report - org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler
    -
     
    - - - - - -
    Classes in this File Line Coverage Branch Coverage Complexity
    NvdCve12Handler
    95%
    47/49
    86%
    26/30
    2.6
    NvdCve12Handler$Element
    77%
    7/9
    N/A
    2.6
    -
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.nvdcve.xml;
     20  
     
     21  
     import java.util.ArrayList;
     22  
     import java.util.HashMap;
     23  
     import java.util.List;
     24  
     import java.util.Map;
     25  
     import org.owasp.dependencycheck.dependency.VulnerableSoftware;
     26  
     import org.xml.sax.Attributes;
     27  
     import org.xml.sax.SAXException;
     28  
     import org.xml.sax.SAXNotSupportedException;
     29  
     import org.xml.sax.helpers.DefaultHandler;
     30  
     
     31  
     /**
     32  
      * A SAX Handler that will parse the NVD CVE XML (schema version 1.2). This
     33  
      * parses the xml and retrieves a listing of CPEs that have previous versions
     34  
      * specified. The previous version information is not in the 2.0 version of the
     35  
      * schema and is useful to ensure accurate identification (or at least
     36  
      * complete).
     37  
      *
     38  
      * @author Jeremy Long (jeremy.long@owasp.org)
     39  
      */
     40  3
     public class NvdCve12Handler extends DefaultHandler {
     41  
     
     42  
         /**
     43  
          * the supported schema version.
     44  
          */
     45  
         private static final String CURRENT_SCHEMA_VERSION = "1.2";
     46  
         /**
     47  
          * the current vulnerability.
     48  
          */
     49  
         private String vulnerability;
     50  
         /**
     51  
          * a list of vulnerable software.
     52  
          */
     53  
         private List<VulnerableSoftware> software;
     54  
         /**
     55  
          * the vendor name.
     56  
          */
     57  
         private String vendor;
     58  
         /**
     59  
          * the product name.
     60  
          */
     61  
         private String product;
     62  
         /**
     63  
          * if the nvd cve should be skipped because it was rejected.
     64  
          */
     65  3
         private boolean skip = false;
     66  
         /**
     67  
          * flag indicating if there is a previous version.
     68  
          */
     69  3
         private boolean hasPreviousVersion = false;
     70  
         /**
     71  
          * The current element.
     72  
          */
     73  3
         private final Element current = new Element();
     74  
         /**
     75  
          * a map of vulnerabilities.
     76  
          */
     77  
         private Map<String, List<VulnerableSoftware>> vulnerabilities;
     78  
     
     79  
         /**
     80  
          * Get the value of vulnerabilities.
     81  
          *
     82  
          * @return the value of vulnerabilities
     83  
          */
     84  
         public Map<String, List<VulnerableSoftware>> getVulnerabilities() {
     85  3
             return vulnerabilities;
     86  
         }
     87  
     
     88  
         @Override
     89  
         public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
     90  3666
             current.setNode(qName);
     91  3666
             if (current.isEntryNode()) {
     92  81
                 vendor = null;
     93  81
                 product = null;
     94  81
                 hasPreviousVersion = false;
     95  81
                 final String reject = attributes.getValue("reject");
     96  81
                 skip = "1".equals(reject);
     97  81
                 if (!skip) {
     98  78
                     vulnerability = attributes.getValue("name");
     99  78
                     software = new ArrayList<VulnerableSoftware>();
     100  
                 } else {
     101  3
                     vulnerability = null;
     102  3
                     software = null;
     103  
                 }
     104  81
             } else if (!skip && current.isProdNode()) {
     105  
     
     106  156
                 vendor = attributes.getValue("vendor");
     107  156
                 product = attributes.getValue("name");
     108  3429
             } else if (!skip && current.isVersNode()) {
     109  2283
                 final String prev = attributes.getValue("prev");
     110  2283
                 if (prev != null && "1".equals(prev)) {
     111  3
                     hasPreviousVersion = true;
     112  3
                     final String edition = attributes.getValue("edition");
     113  3
                     final String num = attributes.getValue("num");
     114  
     
     115  
                     /*yes yes, this may not actually be an "a" - it could be an OS, etc. but for our
     116  
                      purposes this is good enough as we won't use this if we don't find a corresponding "a"
     117  
                      in the nvd cve 2.0. */
     118  3
                     String cpe = "cpe:/a:" + vendor + ":" + product;
     119  3
                     if (num != null) {
     120  3
                         cpe += ":" + num;
     121  
                     }
     122  3
                     if (edition != null) {
     123  0
                         cpe += ":" + edition;
     124  
                     }
     125  3
                     final VulnerableSoftware vs = new VulnerableSoftware();
     126  3
                     vs.setCpe(cpe);
     127  3
                     vs.setPreviousVersion(prev);
     128  3
                     software.add(vs);
     129  
                 }
     130  2283
             } else if (current.isNVDNode()) {
     131  3
                 final String nvdVer = attributes.getValue("nvd_xml_version");
     132  3
                 if (!CURRENT_SCHEMA_VERSION.equals(nvdVer)) {
     133  0
                     throw new SAXNotSupportedException("Schema version " + nvdVer + " is not supported");
     134  
                 }
     135  3
                 vulnerabilities = new HashMap<String, List<VulnerableSoftware>>();
     136  
             }
     137  3666
         }
     138  
     
     139  
         @Override
     140  
         public void endElement(String uri, String localName, String qName) throws SAXException {
     141  3666
             current.setNode(qName);
     142  3666
             if (current.isEntryNode()) {
     143  81
                 if (!skip && hasPreviousVersion) {
     144  3
                     vulnerabilities.put(vulnerability, software);
     145  
                 }
     146  81
                 vulnerability = null;
     147  81
                 software = null;
     148  
             }
     149  3666
         }
     150  
     
     151  
         // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node">
     152  
         /**
     153  
          * A simple class to maintain information about the current element while
     154  
          * parsing the NVD CVE XML.
     155  
          */
     156  3
         protected static class Element {
     157  
     
     158  
             /**
     159  
              * A node type in the NVD CVE Schema 1.2.
     160  
              */
     161  
             public static final String NVD = "nvd";
     162  
             /**
     163  
              * A node type in the NVD CVE Schema 1.2.
     164  
              */
     165  
             public static final String ENTRY = "entry";
     166  
             /**
     167  
              * A node type in the NVD CVE Schema 1.2.
     168  
              */
     169  
             public static final String VULN_SOFTWARE = "vuln_soft";
     170  
             /**
     171  
              * A node type in the NVD CVE Schema 1.2.
     172  
              */
     173  
             public static final String PROD = "prod";
     174  
             /**
     175  
              * A node type in the NVD CVE Schema 1.2.
     176  
              */
     177  
             public static final String VERS = "vers";
     178  
             /**
     179  
              * The name of the current node.
     180  
              */
     181  
             private String node;
     182  
     
     183  
             /**
     184  
              * Gets the value of node.
     185  
              *
     186  
              * @return the value of node
     187  
              */
     188  
             public String getNode() {
     189  0
                 return this.node;
     190  
             }
     191  
     
     192  
             /**
     193  
              * Sets the value of node.
     194  
              *
     195  
              * @param node new value of node
     196  
              */
     197  
             public void setNode(String node) {
     198  7332
                 this.node = node;
     199  7332
             }
     200  
     
     201  
             /**
     202  
              * Checks if the handler is at the NVD node.
     203  
              *
     204  
              * @return true or false
     205  
              */
     206  
             public boolean isNVDNode() {
     207  1146
                 return NVD.equals(node);
     208  
             }
     209  
     
     210  
             /**
     211  
              * Checks if the handler is at the ENTRY node.
     212  
              *
     213  
              * @return true or false
     214  
              */
     215  
             public boolean isEntryNode() {
     216  7332
                 return ENTRY.equals(node);
     217  
             }
     218  
     
     219  
             /**
     220  
              * Checks if the handler is at the VULN_SOFTWARE node.
     221  
              *
     222  
              * @return true or false
     223  
              */
     224  
             public boolean isVulnSoftwareNode() {
     225  0
                 return VULN_SOFTWARE.equals(node);
     226  
             }
     227  
     
     228  
             /**
     229  
              * Checks if the handler is at the PROD node.
     230  
              *
     231  
              * @return true or false
     232  
              */
     233  
             public boolean isProdNode() {
     234  3576
                 return PROD.equals(node);
     235  
             }
     236  
     
     237  
             /**
     238  
              * Checks if the handler is at the VERS node.
     239  
              *
     240  
              * @return true or false
     241  
              */
     242  
             public boolean isVersNode() {
     243  3420
                 return VERS.equals(node);
     244  
             }
     245  
         }
     246  
         // </editor-fold>
     247  
     }
    - - - - diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler.html deleted file mode 100644 index bcb08d831..000000000 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler.html +++ /dev/null @@ -1,909 +0,0 @@ - - - - -Coverage Report - - - - -
    Coverage Report - org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler
    -
     
    - - - - - -
    Classes in this File Line Coverage Branch Coverage Complexity
    NvdCve20Handler
    76%
    97/126
    84%
    73/86
    3
    NvdCve20Handler$Element
    94%
    18/19
    N/A
    3
    -
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.nvdcve.xml;
     20  
     
     21  
     import java.io.IOException;
     22  
     import java.util.List;
     23  
     import java.util.Map;
     24  
     import java.util.logging.Level;
     25  
     import java.util.logging.Logger;
     26  
     import org.apache.lucene.index.CorruptIndexException;
     27  
     import org.owasp.dependencycheck.data.cpe.Index;
     28  
     import org.owasp.dependencycheck.data.nvdcve.CveDB;
     29  
     import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
     30  
     import org.owasp.dependencycheck.dependency.Reference;
     31  
     import org.owasp.dependencycheck.dependency.Vulnerability;
     32  
     import org.owasp.dependencycheck.dependency.VulnerableSoftware;
     33  
     import org.xml.sax.Attributes;
     34  
     import org.xml.sax.SAXException;
     35  
     import org.xml.sax.SAXNotSupportedException;
     36  
     import org.xml.sax.helpers.DefaultHandler;
     37  
     
     38  
     /**
     39  
      * A SAX Handler that will parse the NVD CVE XML (schema version 2.0).
     40  
      *
     41  
      * @author Jeremy Long (jeremy.long@owasp.org)
     42  
      */
     43  3
     public class NvdCve20Handler extends DefaultHandler {
     44  
     
     45  
         /**
     46  
          * the current supported schema version.
     47  
          */
     48  
         private static final String CURRENT_SCHEMA_VERSION = "2.0";
     49  
         /**
     50  
          * the current element.
     51  
          */
     52  3
         private final Element current = new Element();
     53  
         /**
     54  
          * the text of the node.
     55  
          */
     56  
         private StringBuilder nodeText;
     57  
         /**
     58  
          * the vulnerability.
     59  
          */
     60  
         private Vulnerability vulnerability;
     61  
         /**
     62  
          * a reference for the cve.
     63  
          */
     64  
         private Reference reference;
     65  
         /**
     66  
          * flag indicating whether the application has a cpe.
     67  
          */
     68  3
         private boolean hasApplicationCpe = false;
     69  
         /**
     70  
          * The total number of entries parsed.
     71  
          */
     72  
         private int totalNumberOfEntries;
     73  
     
     74  
         /**
     75  
          * Get the value of totalNumberOfEntries.
     76  
          *
     77  
          * @return the value of totalNumberOfEntries
     78  
          */
     79  
         public int getTotalNumberOfEntries() {
     80  0
             return totalNumberOfEntries;
     81  
         }
     82  
         /**
     83  
          * The total number of application entries parsed.
     84  
          */
     85  
         private int totalNumberOfApplicationEntries;
     86  
     
     87  
         /**
     88  
          * Get the value of totalNumberOfApplicationEntries.
     89  
          *
     90  
          * @return the value of totalNumberOfApplicationEntries
     91  
          */
     92  
         public int getTotalNumberOfApplicationEntries() {
     93  0
             return totalNumberOfApplicationEntries;
     94  
         }
     95  
     
     96  
         @Override
     97  
         public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
     98  7236
             current.setNode(qName);
     99  7236
             if (current.isEntryNode()) {
     100  81
                 hasApplicationCpe = false;
     101  81
                 vulnerability = new Vulnerability();
     102  81
                 vulnerability.setName(attributes.getValue("id"));
     103  7155
             } else if (current.isVulnProductNode()) {
     104  2181
                 nodeText = new StringBuilder(100);
     105  4974
             } else if (current.isVulnReferencesNode()) {
     106  270
                 final String lang = attributes.getValue("xml:lang");
     107  270
                 if ("en".equals(lang)) {
     108  270
                     reference = new Reference();
     109  
                 } else {
     110  0
                     reference = null;
     111  
                 }
     112  270
             } else if (reference != null && current.isVulnReferenceNode()) {
     113  270
                 reference.setUrl(attributes.getValue("href"));
     114  270
                 nodeText = new StringBuilder(130);
     115  4434
             } else if (reference != null && current.isVulnSourceNode()) {
     116  270
                 nodeText = new StringBuilder(30);
     117  4164
             } else if (current.isVulnSummaryNode()) {
     118  81
                 nodeText = new StringBuilder(500);
     119  4083
             } else if (current.isNVDNode()) {
     120  3
                 final String nvdVer = attributes.getValue("nvd_xml_version");
     121  3
                 if (!CURRENT_SCHEMA_VERSION.equals(nvdVer)) {
     122  0
                     throw new SAXNotSupportedException("Schema version " + nvdVer + " is not supported");
     123  
                 }
     124  3
             } else if (current.isVulnCWENode()) {
     125  57
                 vulnerability.setCwe(attributes.getValue("id"));
     126  4023
             } else if (current.isCVSSScoreNode()) {
     127  78
                 nodeText = new StringBuilder(5);
     128  3945
             } else if (current.isCVSSAccessVectorNode()) {
     129  78
                 nodeText = new StringBuilder(20);
     130  3867
             } else if (current.isCVSSAccessComplexityNode()) {
     131  78
                 nodeText = new StringBuilder(20);
     132  3789
             } else if (current.isCVSSAuthenticationNode()) {
     133  78
                 nodeText = new StringBuilder(20);
     134  3711
             } else if (current.isCVSSAvailabilityImpactNode()) {
     135  78
                 nodeText = new StringBuilder(20);
     136  3633
             } else if (current.isCVSSConfidentialityImpactNode()) {
     137  78
                 nodeText = new StringBuilder(20);
     138  3555
             } else if (current.isCVSSIntegrityImpactNode()) {
     139  78
                 nodeText = new StringBuilder(20);
     140  
             }
     141  7236
         }
     142  
     
     143  
         @Override
     144  
         public void characters(char[] ch, int start, int length) throws SAXException {
     145  11883
             if (nodeText != null) {
     146  3372
                 nodeText.append(ch, start, length);
     147  
             }
     148  11883
         }
     149  
     
     150  
         @Override
     151  
         public void endElement(String uri, String localName, String qName) throws SAXException {
     152  7236
             current.setNode(qName);
     153  7236
             if (current.isEntryNode()) {
     154  81
                 totalNumberOfEntries += 1;
     155  81
                 if (hasApplicationCpe) {
     156  54
                     totalNumberOfApplicationEntries += 1;
     157  
                     try {
     158  54
                         saveEntry(vulnerability);
     159  0
                     } catch (DatabaseException ex) {
     160  0
                         throw new SAXException(ex);
     161  0
                     } catch (CorruptIndexException ex) {
     162  0
                         throw new SAXException(ex);
     163  0
                     } catch (IOException ex) {
     164  0
                         throw new SAXException(ex);
     165  54
                     }
     166  
                 }
     167  81
                 vulnerability = null;
     168  7155
             } else if (current.isCVSSScoreNode()) {
     169  
                 try {
     170  78
                     final float score = Float.parseFloat(nodeText.toString());
     171  78
                     vulnerability.setCvssScore(score);
     172  0
                 } catch (NumberFormatException ex) {
     173  0
                     Logger.getLogger(NvdCve20Handler.class.getName()).log(Level.SEVERE, "Error parsing CVSS Score.");
     174  0
                     Logger.getLogger(NvdCve20Handler.class.getName()).log(Level.FINE, null, ex);
     175  78
                 }
     176  78
                 nodeText = null;
     177  7077
             } else if (current.isCVSSAccessVectorNode()) {
     178  78
                 vulnerability.setCvssAccessVector(nodeText.toString());
     179  78
                 nodeText = null;
     180  6999
             } else if (current.isCVSSAccessComplexityNode()) {
     181  78
                 vulnerability.setCvssAccessComplexity(nodeText.toString());
     182  78
                 nodeText = null;
     183  6921
             } else if (current.isCVSSAuthenticationNode()) {
     184  78
                 vulnerability.setCvssAuthentication(nodeText.toString());
     185  78
                 nodeText = null;
     186  6843
             } else if (current.isCVSSAvailabilityImpactNode()) {
     187  78
                 vulnerability.setCvssAvailabilityImpact(nodeText.toString());
     188  78
                 nodeText = null;
     189  6765
             } else if (current.isCVSSConfidentialityImpactNode()) {
     190  78
                 vulnerability.setCvssConfidentialityImpact(nodeText.toString());
     191  78
                 nodeText = null;
     192  6687
             } else if (current.isCVSSIntegrityImpactNode()) {
     193  78
                 vulnerability.setCvssIntegrityImpact(nodeText.toString());
     194  78
                 nodeText = null;
     195  6609
             } else if (current.isVulnProductNode()) {
     196  2181
                 final String cpe = nodeText.toString();
     197  2181
                 if (cpe.startsWith("cpe:/a:")) {
     198  1842
                     hasApplicationCpe = true;
     199  1842
                     vulnerability.addVulnerableSoftware(cpe);
     200  
                 }
     201  2181
                 nodeText = null;
     202  2181
             } else if (reference != null && current.isVulnReferencesNode()) {
     203  270
                 vulnerability.addReference(reference);
     204  270
                 reference = null;
     205  4158
             } else if (reference != null && current.isVulnReferenceNode()) {
     206  270
                 reference.setName(nodeText.toString());
     207  270
                 nodeText = null;
     208  3888
             } else if (reference != null && current.isVulnSourceNode()) {
     209  270
                 reference.setSource(nodeText.toString());
     210  270
                 nodeText = null;
     211  3618
             } else if (current.isVulnSummaryNode()) {
     212  81
                 vulnerability.setDescription(nodeText.toString());
     213  81
                 nodeText = null;
     214  
             }
     215  7236
         }
     216  
         /**
     217  
          * the cve database.
     218  
          */
     219  
         private CveDB cveDB;
     220  
     
     221  
         /**
     222  
          * Sets the cveDB.
     223  
          *
     224  
          * @param db a reference to the CveDB
     225  
          */
     226  
         public void setCveDB(CveDB db) {
     227  0
             cveDB = db;
     228  0
         }
     229  
         /**
     230  
          * A list of CVE entries and associated VulnerableSoftware entries that
     231  
          * contain previous entries.
     232  
          */
     233  
         private Map<String, List<VulnerableSoftware>> prevVersionVulnMap;
     234  
     
     235  
         /**
     236  
          * Sets the prevVersionVulnMap.
     237  
          *
     238  
          * @param map the map of vulnerable software with previous versions being
     239  
          * vulnerable
     240  
          */
     241  
         public void setPrevVersionVulnMap(Map<String, List<VulnerableSoftware>> map) {
     242  0
             prevVersionVulnMap = map;
     243  0
         }
     244  
     
     245  
         /**
     246  
          * Saves a vulnerability to the CVE Database. This is a callback method
     247  
          * called by the Sax Parser Handler
     248  
          * {@link org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler}.
     249  
          *
     250  
          * @param vuln the vulnerability to store in the database
     251  
          * @throws DatabaseException thrown if there is an error writing to the
     252  
          * database
     253  
          * @throws CorruptIndexException is thrown if the CPE Index is corrupt
     254  
          * @throws IOException thrown if there is an IOException with the CPE Index
     255  
          */
     256  
         public void saveEntry(Vulnerability vuln) throws DatabaseException, CorruptIndexException, IOException {
     257  54
             if (cveDB == null) {
     258  54
                 return;
     259  
             }
     260  0
             final String cveName = vuln.getName();
     261  0
             if (prevVersionVulnMap.containsKey(cveName)) {
     262  0
                 final List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName);
     263  0
                 for (VulnerableSoftware vs : vulnSoftware) {
     264  0
                     vuln.updateVulnerableSoftware(vs);
     265  
                 }
     266  
             }
     267  0
             for (VulnerableSoftware vs : vuln.getVulnerableSoftware()) {
     268  0
                 if (cpeIndex != null) {
     269  0
                     cpeIndex.saveEntry(vs);
     270  
                 }
     271  
             }
     272  0
             cveDB.updateVulnerability(vuln);
     273  0
         }
     274  
         /**
     275  
          * the cpe index.
     276  
          */
     277  
         private Index cpeIndex;
     278  
     
     279  
         /**
     280  
          * Sets the cpe index.
     281  
          *
     282  
          * @param index the CPE Lucene Index
     283  
          */
     284  
         void setCpeIndex(Index index) {
     285  0
             cpeIndex = index;
     286  0
         }
     287  
     
     288  
         // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node">
     289  
         /**
     290  
          * A simple class to maintain information about the current element while
     291  
          * parsing the NVD CVE XML.
     292  
          */
     293  3
         protected static class Element {
     294  
     
     295  
             /**
     296  
              * A node type in the NVD CVE Schema 2.0
     297  
              */
     298  
             public static final String NVD = "nvd";
     299  
             /**
     300  
              * A node type in the NVD CVE Schema 2.0
     301  
              */
     302  
             public static final String ENTRY = "entry";
     303  
             /**
     304  
              * A node type in the NVD CVE Schema 2.0
     305  
              */
     306  
             public static final String VULN_PRODUCT = "vuln:product";
     307  
             /**
     308  
              * A node type in the NVD CVE Schema 2.0
     309  
              */
     310  
             public static final String VULN_REFERENCES = "vuln:references";
     311  
             /**
     312  
              * A node type in the NVD CVE Schema 2.0
     313  
              */
     314  
             public static final String VULN_SOURCE = "vuln:source";
     315  
             /**
     316  
              * A node type in the NVD CVE Schema 2.0
     317  
              */
     318  
             public static final String VULN_REFERENCE = "vuln:reference";
     319  
             /**
     320  
              * A node type in the NVD CVE Schema 2.0
     321  
              */
     322  
             public static final String VULN_SUMMARY = "vuln:summary";
     323  
             /**
     324  
              * A node type in the NVD CVE Schema 2.0
     325  
              */
     326  
             public static final String VULN_CWE = "vuln:cwe";
     327  
             /**
     328  
              * A node type in the NVD CVE Schema 2.0
     329  
              */
     330  
             public static final String CVSS_SCORE = "cvss:score";
     331  
             /**
     332  
              * A node type in the NVD CVE Schema 2.0
     333  
              */
     334  
             public static final String CVSS_ACCESS_VECTOR = "cvss:access-vector";
     335  
             /**
     336  
              * A node type in the NVD CVE Schema 2.0
     337  
              */
     338  
             public static final String CVSS_ACCESS_COMPLEXITY = "cvss:access-complexity";
     339  
             /**
     340  
              * A node type in the NVD CVE Schema 2.0
     341  
              */
     342  
             public static final String CVSS_AUTHENTICATION = "cvss:authentication";
     343  
             /**
     344  
              * A node type in the NVD CVE Schema 2.0
     345  
              */
     346  
             public static final String CVSS_CONFIDENTIALITY_IMPACT = "cvss:confidentiality-impact";
     347  
             /**
     348  
              * A node type in the NVD CVE Schema 2.0
     349  
              */
     350  
             public static final String CVSS_INTEGRITY_IMPACT = "cvss:integrity-impact";
     351  
             /**
     352  
              * A node type in the NVD CVE Schema 2.0
     353  
              */
     354  
             public static final String CVSS_AVAILABILITY_IMPACT = "cvss:availability-impact";
     355  
             /**
     356  
              * The current node.
     357  
              */
     358  
             private String node;
     359  
     
     360  
             /**
     361  
              * Gets the value of node.
     362  
              *
     363  
              * @return the value of node
     364  
              */
     365  
             public String getNode() {
     366  0
                 return this.node;
     367  
             }
     368  
     
     369  
             /**
     370  
              * Sets the value of node.
     371  
              *
     372  
              * @param node new value of node
     373  
              */
     374  
             public void setNode(String node) {
     375  14472
                 this.node = node;
     376  14472
             }
     377  
     
     378  
             /**
     379  
              * Checks if the handler is at the NVD node.
     380  
              *
     381  
              * @return true or false
     382  
              */
     383  
             public boolean isNVDNode() {
     384  4083
                 return NVD.equals(node);
     385  
             }
     386  
     
     387  
             /**
     388  
              * Checks if the handler is at the ENTRY node.
     389  
              *
     390  
              * @return true or false
     391  
              */
     392  
             public boolean isEntryNode() {
     393  14472
                 return ENTRY.equals(node);
     394  
             }
     395  
     
     396  
             /**
     397  
              * Checks if the handler is at the VULN_PRODUCT node.
     398  
              *
     399  
              * @return true or false
     400  
              */
     401  
             public boolean isVulnProductNode() {
     402  13764
                 return VULN_PRODUCT.equals(node);
     403  
             }
     404  
     
     405  
             /**
     406  
              * Checks if the handler is at the REFERENCES node.
     407  
              *
     408  
              * @return true or false
     409  
              */
     410  
             public boolean isVulnReferencesNode() {
     411  5784
                 return VULN_REFERENCES.equals(node);
     412  
             }
     413  
     
     414  
             /**
     415  
              * Checks if the handler is at the REFERENCE node.
     416  
              *
     417  
              * @return true or false
     418  
              */
     419  
             public boolean isVulnReferenceNode() {
     420  1080
                 return VULN_REFERENCE.equals(node);
     421  
             }
     422  
     
     423  
             /**
     424  
              * Checks if the handler is at the VULN_SOURCE node.
     425  
              *
     426  
              * @return true or false
     427  
              */
     428  
             public boolean isVulnSourceNode() {
     429  540
                 return VULN_SOURCE.equals(node);
     430  
             }
     431  
     
     432  
             /**
     433  
              * Checks if the handler is at the VULN_SUMMARY node.
     434  
              *
     435  
              * @return true or false
     436  
              */
     437  
             public boolean isVulnSummaryNode() {
     438  7782
                 return VULN_SUMMARY.equals(node);
     439  
             }
     440  
     
     441  
             /**
     442  
              * Checks if the handler is at the VULN_CWE node.
     443  
              *
     444  
              * @return true or false
     445  
              */
     446  
             public boolean isVulnCWENode() {
     447  4080
                 return VULN_CWE.equals(node);
     448  
             }
     449  
     
     450  
             /**
     451  
              * Checks if the handler is at the CVSS_SCORE node.
     452  
              *
     453  
              * @return true or false
     454  
              */
     455  
             public boolean isCVSSScoreNode() {
     456  11178
                 return CVSS_SCORE.equals(node);
     457  
             }
     458  
     
     459  
             /**
     460  
              * Checks if the handler is at the CVSS_ACCESS_VECTOR node.
     461  
              *
     462  
              * @return true or false
     463  
              */
     464  
             public boolean isCVSSAccessVectorNode() {
     465  11022
                 return CVSS_ACCESS_VECTOR.equals(node);
     466  
             }
     467  
     
     468  
             /**
     469  
              * Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node.
     470  
              *
     471  
              * @return true or false
     472  
              */
     473  
             public boolean isCVSSAccessComplexityNode() {
     474  10866
                 return CVSS_ACCESS_COMPLEXITY.equals(node);
     475  
             }
     476  
     
     477  
             /**
     478  
              * Checks if the handler is at the CVSS_AUTHENTICATION node.
     479  
              *
     480  
              * @return true or false
     481  
              */
     482  
             public boolean isCVSSAuthenticationNode() {
     483  10710
                 return CVSS_AUTHENTICATION.equals(node);
     484  
             }
     485  
     
     486  
             /**
     487  
              * Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node.
     488  
              *
     489  
              * @return true or false
     490  
              */
     491  
             public boolean isCVSSConfidentialityImpactNode() {
     492  10398
                 return CVSS_CONFIDENTIALITY_IMPACT.equals(node);
     493  
             }
     494  
     
     495  
             /**
     496  
              * Checks if the handler is at the CVSS_INTEGRITY_IMPACT node.
     497  
              *
     498  
              * @return true or false
     499  
              */
     500  
             public boolean isCVSSIntegrityImpactNode() {
     501  10242
                 return CVSS_INTEGRITY_IMPACT.equals(node);
     502  
             }
     503  
     
     504  
             /**
     505  
              * Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node.
     506  
              *
     507  
              * @return true or false
     508  
              */
     509  
             public boolean isCVSSAvailabilityImpactNode() {
     510  10554
                 return CVSS_AVAILABILITY_IMPACT.equals(node);
     511  
             }
     512  
         }
     513  
         // </editor-fold>
     514  
     }
    - - - - diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.AbstractUpdateTask.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.AbstractUpdateTask.html new file mode 100644 index 000000000..2d18d74f4 --- /dev/null +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.AbstractUpdateTask.html @@ -0,0 +1,528 @@ + + + + +Coverage Report + + + + +
    Coverage Report - org.owasp.dependencycheck.data.update.AbstractUpdateTask
    +
     
    + + + + +
    Classes in this File Line Coverage Branch Coverage Complexity
    AbstractUpdateTask
    51%
    37/72
    83%
    10/12
    2
    +
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.update;
     20  
     
     21  
     import java.io.File;
     22  
     import java.io.IOException;
     23  
     import java.net.MalformedURLException;
     24  
     import java.sql.SQLException;
     25  
     import java.util.List;
     26  
     import java.util.Map;
     27  
     import java.util.logging.Level;
     28  
     import java.util.logging.Logger;
     29  
     import javax.xml.parsers.ParserConfigurationException;
     30  
     import javax.xml.parsers.SAXParser;
     31  
     import javax.xml.parsers.SAXParserFactory;
     32  
     import org.owasp.dependencycheck.data.UpdateException;
     33  
     import org.owasp.dependencycheck.data.cpe.CpeIndexWriter;
     34  
     import org.owasp.dependencycheck.data.nvdcve.CveDB;
     35  
     import org.owasp.dependencycheck.utils.FileUtils;
     36  
     import org.owasp.dependencycheck.utils.Settings;
     37  
     import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
     38  
     import org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler;
     39  
     import org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler;
     40  
     import org.owasp.dependencycheck.dependency.VulnerableSoftware;
     41  
     import org.owasp.dependencycheck.utils.DownloadFailedException;
     42  
     import org.xml.sax.SAXException;
     43  
     
     44  
     /**
     45  
      * Class responsible for updating the CPE and NVDCVE data stores.
     46  
      *
     47  
      * @author Jeremy Long (jeremy.long@owasp.org)
     48  
      */
     49  
     public abstract class AbstractUpdateTask implements UpdateTask {
     50  
     
     51  
         /**
     52  
          * Initializes the AbstractUpdateTask.
     53  
          *
     54  
          * @param properties information about the data store
     55  
          * @throws MalformedURLException thrown if the configuration contains a
     56  
          * malformed url
     57  
          * @throws DownloadFailedException thrown if the timestamp on a file cannot
     58  
          * be checked
     59  
          * @throws UpdateException thrown if the update fails
     60  
          */
     61  6
         public AbstractUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException {
     62  6
             this.properties = properties;
     63  6
             this.updateable = updatesNeeded();
     64  6
         }
     65  
         /**
     66  
          * A collection of updateable NVD CVE items.
     67  
          */
     68  
         private Updateable updateable;
     69  
         /**
     70  
          * Utility to read and write meta-data about the data.
     71  
          */
     72  6
         private DataStoreMetaInfo properties = null;
     73  
     
     74  
         /**
     75  
          * Returns the data store properties.
     76  
          *
     77  
          * @return the data store properties
     78  
          */
     79  
         protected DataStoreMetaInfo getProperties() {
     80  3
             return properties;
     81  
         }
     82  
         /**
     83  
          * Reference to the Cve Database.
     84  
          */
     85  6
         private CveDB cveDB = null;
     86  
     
     87  
         /**
     88  
          * Returns the CveDB.
     89  
          *
     90  
          * @return the CveDB
     91  
          */
     92  
         protected CveDB getCveDB() {
     93  0
             return cveDB;
     94  
         }
     95  
         /**
     96  
          * Reference to the Cpe Index.
     97  
          */
     98  6
         private CpeIndexWriter cpeIndex = null;
     99  
     
     100  
         /**
     101  
          * Returns the CpeIndex.
     102  
          *
     103  
          * @return the CpeIndex
     104  
          */
     105  
         protected CpeIndexWriter getCpeIndex() {
     106  0
             return cpeIndex;
     107  
         }
     108  
     
     109  
         /**
     110  
          * Gets whether or not an update is needed.
     111  
          *
     112  
          * @return true or false depending on whether an update is needed
     113  
          */
     114  
         public boolean isUpdateNeeded() {
     115  0
             return updateable.isUpdateNeeded();
     116  
         }
     117  
     
     118  
         /**
     119  
          * Gets the updateable NVD CVE Entries.
     120  
          *
     121  
          * @return an Updateable object containing the NVD CVE entries
     122  
          */
     123  
         protected Updateable getUpdateable() {
     124  0
             return updateable;
     125  
         }
     126  
     
     127  
         /**
     128  
          * Determines if the index needs to be updated.
     129  
          *
     130  
          * @return a collection of updateable resources.
     131  
          * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
     132  
          * data is incorrect.
     133  
          * @throws DownloadFailedException is thrown if there is an error.
     134  
          * downloading the NVD CVE download data file.
     135  
          * @throws UpdateException Is thrown if there is an issue with the last
     136  
          * updated properties file.
     137  
          */
     138  
         protected abstract Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException;
     139  
     
     140  
         /**
     141  
          * <p>Updates the data store to the latest version.</p>
     142  
          *
     143  
          * @throws UpdateException is thrown if there is an error updating the
     144  
          * database
     145  
          */
     146  
         public abstract void update() throws UpdateException;
     147  
         /**
     148  
          * A flag indicating whether or not the current data store should be
     149  
          * deleted.
     150  
          */
     151  6
         private boolean deleteAndRecreate = false;
     152  
     
     153  
         /**
     154  
          * Get the value of deleteAndRecreate.
     155  
          *
     156  
          * @return the value of deleteAndRecreate
     157  
          */
     158  
         public boolean shouldDeleteAndRecreate() {
     159  1
             return deleteAndRecreate;
     160  
         }
     161  
     
     162  
         /**
     163  
          * Set the value of deleteAndRecreate.
     164  
          *
     165  
          * @param deleteAndRecreate new value of deleteAndRecreate
     166  
          */
     167  
         protected void setDeleteAndRecreate(boolean deleteAndRecreate) {
     168  1
             this.deleteAndRecreate = deleteAndRecreate;
     169  1
         }
     170  
     
     171  
         /**
     172  
          * Deletes the existing data directories.
     173  
          *
     174  
          * @throws IOException thrown if the directory cannot be deleted
     175  
          */
     176  
         protected void deleteExistingData() throws IOException {
     177  3
             File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY);
     178  3
             if (data.exists()) {
     179  1
                 FileUtils.delete(data);
     180  
             }
     181  3
             data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY);
     182  3
             if (data.exists()) {
     183  1
                 FileUtils.delete(data);
     184  
             }
     185  3
             data = DataStoreMetaInfo.getPropertiesFile();
     186  3
             if (data.exists()) {
     187  1
                 FileUtils.delete(data);
     188  
             }
     189  3
         }
     190  
     
     191  
         /**
     192  
          * Closes the CVE and CPE data stores.
     193  
          */
     194  
         protected void closeDataStores() {
     195  1
             if (cveDB != null) {
     196  
                 try {
     197  1
                     cveDB.close();
     198  0
                 } catch (Exception ignore) {
     199  0
                     Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINEST, "Error closing the cveDB", ignore);
     200  1
                 }
     201  
             }
     202  1
             if (cpeIndex != null) {
     203  
                 try {
     204  1
                     cpeIndex.close();
     205  0
                 } catch (Exception ignore) {
     206  0
                     Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINEST, "Error closing the cpeIndex", ignore);
     207  1
                 }
     208  
             }
     209  1
         }
     210  
     
     211  
         /**
     212  
          * Opens the CVE and CPE data stores.
     213  
          *
     214  
          * @throws UpdateException thrown if a data store cannot be opened
     215  
          */
     216  
         protected void openDataStores() throws UpdateException {
     217  
             //open the cve and cpe data stores
     218  
             try {
     219  1
                 cveDB = new CveDB();
     220  1
                 cveDB.open();
     221  1
                 cpeIndex = new CpeIndexWriter();
     222  1
                 cpeIndex.open();
     223  0
             } catch (IOException ex) {
     224  0
                 closeDataStores();
     225  0
                 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "IO Error opening databases", ex);
     226  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
     227  0
             } catch (SQLException ex) {
     228  0
                 closeDataStores();
     229  0
                 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "SQL Exception opening databases", ex);
     230  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
     231  0
             } catch (DatabaseException ex) {
     232  0
                 closeDataStores();
     233  0
                 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "Database Exception opening databases", ex);
     234  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
     235  0
             } catch (ClassNotFoundException ex) {
     236  0
                 closeDataStores();
     237  0
                 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "Class not found exception opening databases", ex);
     238  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
     239  1
             }
     240  1
         }
     241  
     
     242  
         /**
     243  
          * Determines if the epoch date is within the range specified of the
     244  
          * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to
     245  
          * get the number of days. If the calculated days is less then the range the
     246  
          * date is considered valid.
     247  
          *
     248  
          * @param date the date to be checked.
     249  
          * @param compareTo the date to compare to.
     250  
          * @param range the range in days to be considered valid.
     251  
          * @return whether or not the date is within the range.
     252  
          */
     253  
         protected boolean withinRange(long date, long compareTo, int range) {
     254  2
             final double differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0;
     255  2
             return differenceInDays < range;
     256  
         }
     257  
     
     258  
         /**
     259  
          * Imports the NVD CVE XML File into the Lucene Index.
     260  
          *
     261  
          * @param file the file containing the NVD CVE XML
     262  
          * @param oldVersion contains the file containing the NVD CVE XML 1.2
     263  
          * @throws ParserConfigurationException is thrown if there is a parser
     264  
          * configuration exception
     265  
          * @throws SAXException is thrown if there is a SAXException
     266  
          * @throws IOException is thrown if there is a IO Exception
     267  
          * @throws SQLException is thrown if there is a SQL exception
     268  
          * @throws DatabaseException is thrown if there is a database exception
     269  
          * @throws ClassNotFoundException thrown if the h2 database driver cannot be
     270  
          * loaded
     271  
          */
     272  
         protected void importXML(File file, File oldVersion)
     273  
                 throws ParserConfigurationException, SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException {
     274  
     
     275  0
             final SAXParserFactory factory = SAXParserFactory.newInstance();
     276  0
             final SAXParser saxParser = factory.newSAXParser();
     277  
     
     278  0
             final NvdCve12Handler cve12Handler = new NvdCve12Handler();
     279  0
             saxParser.parse(oldVersion, cve12Handler);
     280  0
             final Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities();
     281  
     
     282  0
             final NvdCve20Handler cve20Handler = new NvdCve20Handler();
     283  0
             cve20Handler.setCveDB(cveDB);
     284  0
             cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap);
     285  0
             cve20Handler.setCpeIndex(cpeIndex);
     286  0
             saxParser.parse(file, cve20Handler);
     287  0
         }
     288  
     }
    + + + + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.BatchUpdateTask.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.BatchUpdateTask.html new file mode 100644 index 000000000..757d0dd07 --- /dev/null +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.BatchUpdateTask.html @@ -0,0 +1,458 @@ + + + + +Coverage Report + + + + +
    Coverage Report - org.owasp.dependencycheck.data.update.BatchUpdateTask
    +
     
    + + + + +
    Classes in this File Line Coverage Branch Coverage Complexity
    BatchUpdateTask
    28%
    30/106
    17%
    8/46
    7.167
    +
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.update;
     20  
     
     21  
     import org.owasp.dependencycheck.data.nvdcve.InvalidDataException;
     22  
     import java.io.File;
     23  
     import java.io.IOException;
     24  
     import java.net.MalformedURLException;
     25  
     import java.net.URISyntaxException;
     26  
     import java.net.URL;
     27  
     import java.util.Calendar;
     28  
     import java.util.Date;
     29  
     import java.util.logging.Level;
     30  
     import java.util.logging.Logger;
     31  
     import org.owasp.dependencycheck.data.UpdateException;
     32  
     import org.owasp.dependencycheck.data.nvdcve.CveDB;
     33  
     import org.owasp.dependencycheck.utils.DownloadFailedException;
     34  
     import org.owasp.dependencycheck.utils.Downloader;
     35  
     import org.owasp.dependencycheck.utils.FileUtils;
     36  
     import org.owasp.dependencycheck.utils.Settings;
     37  
     import org.owasp.dependencycheck.utils.InvalidSettingException;
     38  
     import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.BATCH;
     39  
     import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED;
     40  
     
     41  
     /**
     42  
      * Class responsible for updating the CPE and NVDCVE data stores.
     43  
      *
     44  
      * @author Jeremy Long (jeremy.long@owasp.org)
     45  
      */
     46  
     public class BatchUpdateTask extends AbstractUpdateTask {
     47  
     
     48  
         /**
     49  
          * Constructs a new BatchUpdateTask.
     50  
          *
     51  
          * @param properties information about the data store
     52  
          * @throws MalformedURLException thrown if a configured URL is malformed
     53  
          * @throws DownloadFailedException thrown if a timestamp cannot be checked
     54  
          * on a configured URL
     55  
          * @throws UpdateException thrown if there is an exception generating the
     56  
          * update task
     57  
          */
     58  
         public BatchUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException {
     59  2
             super(properties);
     60  2
         }
     61  
         /**
     62  
          * A flag indicating whether or not the batch update should be performed.
     63  
          */
     64  
         private boolean doBatchUpdate;
     65  
     
     66  
         /**
     67  
          * Get the value of doBatchUpdate
     68  
          *
     69  
          * @return the value of doBatchUpdate
     70  
          */
     71  
         protected boolean isDoBatchUpdate() {
     72  1
             return doBatchUpdate;
     73  
         }
     74  
     
     75  
         /**
     76  
          * Set the value of doBatchUpdate
     77  
          *
     78  
          * @param doBatchUpdate new value of doBatchUpdate
     79  
          */
     80  
         protected void setDoBatchUpdate(boolean doBatchUpdate) {
     81  2
             this.doBatchUpdate = doBatchUpdate;
     82  2
         }
     83  
     
     84  
         /**
     85  
          * <p>Downloads the latest NVD CVE XML file from the web and imports it into
     86  
          * the current CVE Database.</p>
     87  
          *
     88  
          * @throws UpdateException is thrown if there is an error updating the
     89  
          * database
     90  
          */
     91  
         @Override
     92  
         public void update() throws UpdateException {
     93  1
             if (getProperties().isBatchUpdateMode() && doBatchUpdate) {
     94  1
                 final String batchSrc = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL);
     95  1
                 File tmp = null;
     96  
                 try {
     97  1
                     deleteExistingData();
     98  1
                     final File dataDirectory = CveDB.getDataDirectory().getParentFile();
     99  1
                     final URL batchUrl = new URL(batchSrc);
     100  1
                     if ("file".equals(batchUrl.getProtocol())) {
     101  
                         try {
     102  1
                             tmp = new File(batchUrl.toURI());
     103  0
                         } catch (URISyntaxException ex) {
     104  0
                             final String msg = String.format("Invalid batch update URI: %s", batchSrc);
     105  0
                             throw new UpdateException(msg, ex);
     106  1
                         }
     107  0
                     } else if ("http".equals(batchUrl.getProtocol())
     108  
                             || "https".equals(batchUrl.getProtocol())) {
     109  0
                         tmp = File.createTempFile("batch_", ".zip");
     110  0
                         Downloader.fetchFile(batchUrl, tmp);
     111  
                     }
     112  
                     //TODO add FTP?
     113  1
                     FileUtils.extractFiles(tmp, dataDirectory);
     114  
     
     115  0
                 } catch (IOException ex) {
     116  0
                     final String msg = String.format("IO Exception Occured performing batch update using: %s", batchSrc);
     117  0
                     throw new UpdateException(msg, ex);
     118  
                 } finally {
     119  1
                     if (tmp != null && !tmp.delete()) {
     120  0
                         tmp.deleteOnExit();
     121  
                     }
     122  
                 }
     123  
             }
     124  1
         }
     125  
     
     126  
         /**
     127  
          * Determines if the index needs to be updated. This is done by fetching the
     128  
          * NVD CVE meta data and checking the last update date. If the data needs to
     129  
          * be refreshed this method will return the NvdCveUrl for the files that
     130  
          * need to be updated.
     131  
          *
     132  
          * @return the collection of files that need to be updated
     133  
          * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
     134  
          * data is incorrect
     135  
          * @throws DownloadFailedException is thrown if there is an error.
     136  
          * downloading the NVD CVE download data file
     137  
          * @throws UpdateException Is thrown if there is an issue with the last
     138  
          * updated properties file
     139  
          */
     140  
         @Override
     141  
         public Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException {
     142  2
             Updateable updates = null;
     143  
             try {
     144  2
                 updates = retrieveCurrentTimestampsFromWeb();
     145  0
             } catch (InvalidDataException ex) {
     146  0
                 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page";
     147  0
                 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, msg, ex);
     148  0
                 throw new DownloadFailedException(msg, ex);
     149  0
             } catch (InvalidSettingException ex) {
     150  0
                 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex);
     151  0
                 throw new DownloadFailedException("Invalid settings", ex);
     152  2
             }
     153  
     
     154  2
             if (updates == null) {
     155  0
                 throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data");
     156  
             }
     157  2
             final DataStoreMetaInfo properties = getProperties();
     158  2
             if (!properties.isEmpty()) {
     159  
                 try {
     160  0
                     boolean deleteAndRecreate = false;
     161  
                     float version;
     162  
     
     163  0
                     if (properties.getProperty("version") == null) {
     164  0
                         deleteAndRecreate = true;
     165  
                     } else {
     166  
                         try {
     167  0
                             version = Float.parseFloat(properties.getProperty("version"));
     168  0
                             final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);
     169  0
                             if (currentVersion > version) {
     170  0
                                 deleteAndRecreate = true;
     171  
                             }
     172  0
                         } catch (NumberFormatException ex) {
     173  0
                             deleteAndRecreate = true;
     174  0
                         }
     175  
                     }
     176  
     
     177  0
                     final NvdCveInfo batchInfo = updates.get(BATCH);
     178  0
                     if (properties.isBatchUpdateMode() && batchInfo != null) {
     179  0
                         final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.BATCH, "0"));
     180  0
                         if (lastUpdated != batchInfo.getTimestamp()) {
     181  0
                             deleteAndRecreate = true;
     182  
                         }
     183  
                     }
     184  
     
     185  0
                     if (deleteAndRecreate) {
     186  0
                         setDoBatchUpdate(properties.isBatchUpdateMode());
     187  
                         try {
     188  0
                             deleteExistingData();
     189  0
                         } catch (IOException ex) {
     190  0
                             final String msg = "Unable to delete existing data";
     191  0
                             Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.WARNING, msg);
     192  0
                             Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, null, ex);
     193  0
                         }
     194  0
                         return updates;
     195  
                     }
     196  
     
     197  0
                     final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0"));
     198  0
                     final Date now = new Date();
     199  0
                     final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);
     200  0
                     final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002);
     201  0
                     final int end = Calendar.getInstance().get(Calendar.YEAR);
     202  0
                     if (lastUpdated == updates.get(MODIFIED).getTimestamp()) {
     203  0
                         updates.clear(); //we don't need to update anything.
     204  0
                         setDoBatchUpdate(properties.isBatchUpdateMode());
     205  0
                     } else if (withinRange(lastUpdated, now.getTime(), days)) {
     206  0
                         updates.get(MODIFIED).setNeedsUpdate(true);
     207  0
                         if (properties.isBatchUpdateMode()) {
     208  0
                             setDoBatchUpdate(false);
     209  
                         } else {
     210  0
                             for (int i = start; i <= end; i++) {
     211  0
                                 updates.get(String.valueOf(i)).setNeedsUpdate(false);
     212  
                             }
     213  
                         }
     214  0
                     } else if (properties.isBatchUpdateMode()) {
     215  0
                         updates.get(MODIFIED).setNeedsUpdate(true);
     216  0
                         setDoBatchUpdate(true);
     217  
                     } else { //we figure out which of the several XML files need to be downloaded.
     218  0
                         updates.get(MODIFIED).setNeedsUpdate(false);
     219  0
                         for (int i = start; i <= end; i++) {
     220  0
                             final NvdCveInfo cve = updates.get(String.valueOf(i));
     221  0
                             long currentTimestamp = 0;
     222  
                             try {
     223  0
                                 currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + String.valueOf(i), "0"));
     224  0
                             } catch (NumberFormatException ex) {
     225  0
                                 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated",
     226  
                                         DataStoreMetaInfo.LAST_UPDATED_BASE, String.valueOf(i));
     227  0
                                 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, msg, ex);
     228  0
                             }
     229  0
                             if (currentTimestamp == cve.getTimestamp()) {
     230  0
                                 cve.setNeedsUpdate(false); //they default to true.
     231  
                             }
     232  
                         }
     233  
                     }
     234  0
                 } catch (NumberFormatException ex) {
     235  0
                     final String msg = "An invalid schema version or timestamp exists in the data.properties file.";
     236  0
                     Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.WARNING, msg);
     237  0
                     Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, null, ex);
     238  0
                     setDoBatchUpdate(properties.isBatchUpdateMode());
     239  0
                 }
     240  
             }
     241  2
             return updates;
     242  
         }
     243  
     
     244  
         /**
     245  
          * Retrieves the timestamps from the NVD CVE meta data file.
     246  
          *
     247  
          * @return the timestamp from the currently published nvdcve downloads page
     248  
          * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data
     249  
          * is incorrect.
     250  
          * @throws DownloadFailedException thrown if there is an error downloading
     251  
          * the nvd cve meta data file
     252  
          * @throws InvalidDataException thrown if there is an exception parsing the
     253  
          * timestamps
     254  
          * @throws InvalidSettingException thrown if the settings are invalid
     255  
          */
     256  
         private Updateable retrieveCurrentTimestampsFromWeb()
     257  
                 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {
     258  2
             final Updateable updates = new Updateable();
     259  2
             updates.add(BATCH, Settings.getString(Settings.KEYS.BATCH_UPDATE_URL),
     260  
                     null, false);
     261  
     
     262  2
             final String url = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL, "");
     263  2
             if (!url.isEmpty()) {
     264  2
                 updates.add(MODIFIED, url,
     265  
                         Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL),
     266  
                         false);
     267  
             }
     268  2
             return updates;
     269  
         }
     270  
     }
    + + + + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html index 77fd62641..e1d69a423 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    DataStoreMetaInfo
    50%
    37/73
    43%
    7/16
    3.111
    DataStoreMetaInfo
    65%
    48/73
    62%
    10/16
    3.111
     
    @@ -155,7 +155,7 @@
          * A collection of properties about the data.
     69  
          */
    -  70  2
         private Properties properties = new Properties();
    +  70  11
         private Properties properties = new Properties();
     71  
         /**
     72   @@ -180,7 +180,7 @@
          */
     82  
         protected boolean isBatchUpdateMode() {
    -  83  8
             return batchUpdateMode;
    +  83  2
             return batchUpdateMode;
     84  
         }
     85   @@ -197,8 +197,8 @@
          */
     91  
         protected void setBatchUpdateMode(boolean batchUpdateMode) {
    -  92  0
             this.batchUpdateMode = batchUpdateMode;
    -  93  0
         }
    +  92  1
             this.batchUpdateMode = batchUpdateMode;
    +  93  1
         }
     94  
     
     95   @@ -207,10 +207,10 @@
          * Constructs a new data properties object.
     97  
          */
    -  98  2
         public DataStoreMetaInfo() {
    -  99  2
             batchUpdateMode = !Settings.getString(Settings.KEYS.BATCH_UPDATE_URL, "").isEmpty();
    -  100  2
             loadProperties();
    -  101  2
         }
    +  98  11
         public DataStoreMetaInfo() {
    +  99  11
             batchUpdateMode = !Settings.getString(Settings.KEYS.BATCH_UPDATE_URL, "").isEmpty();
    +  100  11
             loadProperties();
    +  101  11
         }
     102  
     
     103   @@ -221,42 +221,42 @@
          */
     106  
         private void loadProperties() {
    -  107  2
             final File file = getPropertiesFile();
    -  108  2
             if (file.exists()) {
    -  109  0
                 InputStream is = null;
    +  107  11
             final File file = getPropertiesFile();
    +  108  11
             if (file.exists()) {
    +  109  9
                 InputStream is = null;
     110  
                 try {
    -  111  0
                     is = new FileInputStream(file);
    +  111  9
                     is = new FileInputStream(file);
     112  0
                 } catch (FileNotFoundException ignore) {
     113  
                     //we will never get here as we check for existence above.
     114  0
                     Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINEST, null, ignore);
    -  115  0
                 }
    +  115  9
                 }
     116  
                 try {
    -  117  0
                     properties.load(is);
    +  117  9
                     properties.load(is);
     118  0
                 } catch (IOException ex) {
     119  0
                     final String msg = String.format("Unable to load properties file '%s'", file.getPath());
     120  0
                     Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.WARNING, msg);
     121  0
                     Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, null, ex);
     122  
                 } finally {
    -  123  0
                     if (is != null) {
    +  123  9
                     if (is != null) {
     124  
                         try {
    -  125  0
                             is.close();
    +  125  9
                             is.close();
     126  0
                         } catch (IOException ex) {
     127  0
                             final String msg = String.format("Unable to close properties file '%s'", file.getPath());
     128  0
                             Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.WARNING, msg);
     129  0
                             Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, null, ex);
    -  130  0
                         }
    +  130  9
                         }
     131  
                     }
     132  
                 }
     133  
             }
    -  134  2
         }
    +  134  11
         }
     135  
     
     136   @@ -271,7 +271,7 @@
          */
     141  
         public boolean isEmpty() {
    -  142  2
             return properties.isEmpty();
    +  142  3
             return properties.isEmpty();
     143  
         }
     144   @@ -379,7 +379,7 @@
          */
     215  
         public String getProperty(String key) {
    -  216  0
             return properties.getProperty(key);
    +  216  1
             return properties.getProperty(key);
     217  
         }
     218   @@ -402,7 +402,7 @@
          */
     227  
         public String getProperty(String key, String defaultValue) {
    -  228  0
             return properties.getProperty(key, defaultValue);
    +  228  1
             return properties.getProperty(key, defaultValue);
     229  
         }
     230   @@ -419,15 +419,15 @@
          */
     236  
         public static File getPropertiesFile() {
    -  237  7
             final File dataDirectory = Settings.getFile(Settings.KEYS.DATA_DIRECTORY);
    -  238  7
             final File file = new File(dataDirectory, UPDATE_PROPERTIES_FILE);
    -  239  7
             return file;
    +  237  16
             final File dataDirectory = Settings.getFile(Settings.KEYS.DATA_DIRECTORY);
    +  238  16
             final File file = new File(dataDirectory, UPDATE_PROPERTIES_FILE);
    +  239  16
             return file;
     240  
         }
     241  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DatabaseUpdater.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DatabaseUpdater.html index 42345562e..64b163640 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DatabaseUpdater.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DatabaseUpdater.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    DatabaseUpdater
    33%
    90/267
    30%
    33/110
    10
    DatabaseUpdater
    0%
    0/43
    0%
    0/12
    8
     
    @@ -58,844 +58,158 @@  20  
     
     21   -
     import org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler;
    -  22   -
     import org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler;
    -  23   -
     import org.owasp.dependencycheck.data.nvdcve.InvalidDataException;
    -  24  
     import java.io.File;
    -  25   -
     import java.io.FileNotFoundException;
    -  26   +  22  
     import java.io.IOException;
    -  27   -
     import javax.xml.parsers.ParserConfigurationException;
    -  28   -
     import org.xml.sax.SAXException;
    -  29   +  23  
     import org.owasp.dependencycheck.data.CachedWebDataSource;
    -  30   +  24  
     import java.net.MalformedURLException;
    -  31   -
     import java.net.URISyntaxException;
    -  32   -
     import java.net.URL;
    -  33   -
     import java.sql.SQLException;
    -  34   -
     import java.util.Calendar;
    -  35   -
     import java.util.Date;
    -  36   -
     import java.util.List;
    -  37   -
     import java.util.Map;
    -  38   -
     import java.util.TreeMap;
    -  39   +  25  
     import java.util.logging.Level;
    -  40   +  26  
     import java.util.logging.Logger;
    -  41   -
     import javax.xml.parsers.SAXParser;
    -  42   -
     import javax.xml.parsers.SAXParserFactory;
    -  43   +  27   +
     import org.owasp.dependencycheck.concurrency.DirectoryLockException;
    +  28   +
     import org.owasp.dependencycheck.concurrency.DirectorySpinLock;
    +  29   +
     import org.owasp.dependencycheck.concurrency.InvalidDirectoryException;
    +  30  
     import org.owasp.dependencycheck.data.UpdateException;
    -  44   -
     import org.owasp.dependencycheck.data.cpe.CpeIndexWriter;
    -  45   -
     import org.owasp.dependencycheck.data.nvdcve.CveDB;
    -  46   -
     import org.owasp.dependencycheck.dependency.VulnerableSoftware;
    -  47   +  31  
     import org.owasp.dependencycheck.utils.DownloadFailedException;
    -  48   -
     import org.owasp.dependencycheck.utils.Downloader;
    -  49   +  32  
     import org.owasp.dependencycheck.utils.FileUtils;
    -  50   +  33  
     import org.owasp.dependencycheck.utils.Settings;
    -  51   -
     import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
    -  52   -
     import org.owasp.dependencycheck.utils.InvalidSettingException;
    -  53   -
     import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.BATCH;
    -  54   -
     import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED;
    -  55   +  34  
     
    -  56   +  35  
     /**
    -  57   +  36  
      * Class responsible for updating the CPE and NVDCVE data stores.
    -  58   +  37  
      *
    -  59   +  38  
      * @author Jeremy Long (jeremy.long@owasp.org)
    -  60   +  39  
      */
    -  61  2
     public class DatabaseUpdater implements CachedWebDataSource {
    -  62   +  40  0
     public class DatabaseUpdater implements CachedWebDataSource {
    +  41  
     
    -  63   +  42  
         /**
    +  43   +
          * <p>Downloads the latest NVD CVE XML file from the web and imports it into
    +  44   +
          * the current CVE Database.</p>
    +  45   +
          *
    +  46   +
          * @throws UpdateException is thrown if there is an error updating the
    +  47   +
          * database
    +  48   +
          */
    +  49   +
         @Override
    +  50   +
         public void update() throws UpdateException {
    +  51  0
             final File dataDir = Settings.getFile(Settings.KEYS.DATA_DIRECTORY);
    +  52  0
             DirectorySpinLock lock = null;
    +  53   +
             try {
    +  54  0
                 lock = new DirectorySpinLock(dataDir);
    +  55  0
             } catch (InvalidDirectoryException ex) {
    +  56  0
                 throw new UpdateException("Unable to obtain lock on the data directory", ex);
    +  57  0
             } catch (DirectoryLockException ex) {
    +  58  0
                 throw new UpdateException("Unable to obtain exclusive lock on the data directory", ex);
    +  59  0
             }
    +  60   +
     
    +  61   +
             try {
    +  62  0
                 lock.obtainSharedLock();
    +  63  0
                 final UpdateTask task = UpdateTaskFactory.getUpdateTask();
     64   -
          * Utility to read and write meta-data about the data.
    +
     
     65   -
          */
    -  66  2
         private DataStoreMetaInfo properties = null;
    -  67   -
         /**
    -  68   -
          * Reference to the Cve Database.
    -  69   -
          */
    -  70  2
         private CveDB cveDB = null;
    -  71   -
         /**
    -  72   -
          * Reference to the Cpe Index.
    -  73   -
          */
    -  74  2
         private CpeIndexWriter cpeIndex = null;
    -  75   -
         /**
    +
     
    +  66  0
                 if (task.isUpdateNeeded()) {
    +  67  0
                     lock.release();
    +  68  0
                     lock.obtainExclusiveLock();
    +  69  0
                     if (task.shouldDeleteAndRecreate()) {
    +  70   +
                         try {
    +  71  0
                             deleteExistingData();
    +  72  0
                         } catch (IOException ex) {
    +  73  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, "Unable to delete the existing data directory");
    +  74  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
    +  75  0
                         }
     76   -
          * A flag indicating whether or not the batch update should be performed.
    -  77   -
          */
    +
                     }
    +  77  0
                     task.update();
     78   -
         private boolean doBatchUpdate;
    -  79   -
     
    -  80   -
         /**
    +
                 }
    +  79  0
             } catch (DirectoryLockException ex) {
    +  80  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING,
     81   -
          * Get the value of doBatchUpdate
    -  82   -
          *
    -  83   -
          * @return the value of doBatchUpdate
    -  84   -
          */
    +
                         "Unable to obtain lock on data directory, unable to update the data to use the most current data.");
    +  82  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
    +  83  0
             } catch (MalformedURLException ex) {
    +  84  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING,
     85   -
         protected boolean isDoBatchUpdate() {
    -  86  2
             return doBatchUpdate;
    -  87   -
         }
    -  88   -
     
    +
                         "NVD CVE properties files contain an invalid URL, unable to update the data to use the most current data.");
    +  86  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
    +  87  0
             } catch (DownloadFailedException ex) {
    +  88  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING,
     89   -
         /**
    -  90   -
          * Set the value of doBatchUpdate
    +
                         "Unable to download the NVD CVE data, unable to update the data to use the most current data.");
    +  90  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
     91   -
          *
    -  92   -
          * @param doBatchUpdate new value of doBatchUpdate
    -  93   -
          */
    +
             } finally {
    +  92  0
                 if (lock != null) {
    +  93  0
                     lock.release();
     94   -
         protected void setDoBatchUpdate(boolean doBatchUpdate) {
    -  95  2
             this.doBatchUpdate = doBatchUpdate;
    -  96  2
         }
    +
                 }
    +  95   +
             }
    +  96  0
         }
     97  
     
     98  
         /**
     99   -
          * <p>Downloads the latest NVD CVE XML file from the web and imports it into
    -  100   -
          * the current CVE Database.</p>
    -  101   -
          *
    -  102   -
          * @throws UpdateException is thrown if there is an error updating the
    -  103   -
          * database
    -  104   -
          */
    -  105   -
         @Override
    -  106   -
         public void update() throws UpdateException {
    -  107  2
             doBatchUpdate = false;
    -  108  2
             properties = new DataStoreMetaInfo();
    -  109   -
             try {
    -  110  2
                 final Map<String, NvdCveInfo> update = updateNeeded();
    -  111  2
                 int maxUpdates = 0;
    -  112  2
                 for (NvdCveInfo cve : update.values()) {
    -  113  2
                     if (cve.getNeedsUpdate()) {
    -  114  0
                         maxUpdates += 1;
    -  115   -
                     }
    -  116   -
                 }
    -  117  2
                 if (maxUpdates > 3 && !properties.isBatchUpdateMode()) {
    -  118  0
                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -  119   -
                             "NVD CVE requires several updates; this could take a couple of minutes.");
    -  120   -
                 }
    -  121  2
                 if (maxUpdates > 0 && !isDoBatchUpdate()) {
    -  122  0
                     openDataStores();
    -  123   -
                 }
    -  124   -
     
    -  125  2
                 if (properties.isBatchUpdateMode() && isDoBatchUpdate()) {
    -  126   -
                     try {
    -  127  2
                         performBatchUpdate();
    -  128  2
                         openDataStores();
    -  129  0
                     } catch (IOException ex) {
    -  130  0
                         throw new UpdateException("Unable to perform batch update", ex);
    -  131  2
                     }
    -  132   -
                 }
    -  133   -
     
    -  134  2
                 int count = 0;
    -  135  2
                 for (NvdCveInfo cve : update.values()) {
    -  136  2
                     if (cve.getNeedsUpdate()) {
    -  137  0
                         count += 1;
    -  138  0
                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -  139   -
                                 "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates});
    -  140  0
                         URL url = new URL(cve.getUrl());
    -  141  0
                         File outputPath = null;
    -  142  0
                         File outputPath12 = null;
    -  143   -
                         try {
    -  144  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -  145   -
                                     "Downloading {0}", cve.getUrl());
    -  146  0
                             outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml");
    -  147  0
                             Downloader.fetchFile(url, outputPath);
    -  148   -
     
    -  149  0
                             url = new URL(cve.getOldSchemaVersionUrl());
    -  150  0
                             outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml");
    -  151  0
                             Downloader.fetchFile(url, outputPath12);
    -  152   -
     
    -  153  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -  154   -
                                     "Processing {0}", cve.getUrl());
    -  155   -
     
    -  156  0
                             importXML(outputPath, outputPath12);
    -  157   -
     
    -  158  0
                             cveDB.commit();
    -  159  0
                             cpeIndex.commit();
    -  160   -
     
    -  161  0
                             properties.save(cve);
    -  162   -
     
    -  163  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -  164   -
                                     "Completed update {0} of {1}", new Object[]{count, maxUpdates});
    -  165  0
                         } catch (FileNotFoundException ex) {
    -  166  0
                             throw new UpdateException(ex);
    -  167  0
                         } catch (ParserConfigurationException ex) {
    -  168  0
                             throw new UpdateException(ex);
    -  169  0
                         } catch (SAXException ex) {
    -  170  0
                             throw new UpdateException(ex);
    -  171  0
                         } catch (IOException ex) {
    -  172  0
                             throw new UpdateException(ex);
    -  173  0
                         } catch (SQLException ex) {
    -  174  0
                             throw new UpdateException(ex);
    -  175  0
                         } catch (DatabaseException ex) {
    -  176  0
                             throw new UpdateException(ex);
    -  177  0
                         } catch (ClassNotFoundException ex) {
    -  178  0
                             throw new UpdateException(ex);
    -  179   -
                         } finally {
    -  180  0
                             boolean deleted = false;
    -  181   -
                             try {
    -  182  0
                                 if (outputPath != null && outputPath.exists()) {
    -  183  0
                                     deleted = outputPath.delete();
    -  184   -
                                 }
    -  185   -
                             } finally {
    -  186  0
                                 if (outputPath != null && (outputPath.exists() || !deleted)) {
    -  187  0
                                     outputPath.deleteOnExit();
    -  188   -
                                 }
    -  189   -
                             }
    -  190   -
                             try {
    -  191  0
                                 deleted = false;
    -  192  0
                                 if (outputPath12 != null && outputPath12.exists()) {
    -  193  0
                                     deleted = outputPath12.delete();
    -  194   -
                                 }
    -  195   -
                             } finally {
    -  196  0
                                 if (outputPath12 != null && (outputPath12.exists() || !deleted)) {
    -  197  0
                                     outputPath12.deleteOnExit();
    -  198   -
                                 }
    -  199   -
                             }
    -  200  0
                         }
    -  201  2
                     }
    -  202   -
                 }
    -  203  2
                 if (maxUpdates >= 1) { //ensure the modified file date gets written
    -  204  0
                     properties.save(update.get(MODIFIED));
    -  205  0
                     cveDB.cleanupDatabase();
    -  206   -
                 }
    -  207  2
                 if (update.get(BATCH) != null) {
    -  208  1
                     properties.save(update.get(BATCH));
    -  209   -
                 }
    -  210  0
             } catch (MalformedURLException ex) {
    -  211  0
                 throw new UpdateException(ex);
    -  212  0
             } catch (DownloadFailedException ex) {
    -  213  0
                 throw new UpdateException(ex);
    -  214   -
             } finally {
    -  215  2
                 closeDataStores();
    -  216  2
             }
    -  217  2
         }
    -  218   -
     
    -  219   -
         /**
    -  220   -
          * Imports the NVD CVE XML File into the Lucene Index.
    -  221   -
          *
    -  222   -
          * @param file the file containing the NVD CVE XML
    -  223   -
          * @param oldVersion contains the file containing the NVD CVE XML 1.2
    -  224   -
          * @throws ParserConfigurationException is thrown if there is a parser
    -  225   -
          * configuration exception
    -  226   -
          * @throws SAXException is thrown if there is a SAXException
    -  227   -
          * @throws IOException is thrown if there is a IO Exception
    -  228   -
          * @throws SQLException is thrown if there is a SQL exception
    -  229   -
          * @throws DatabaseException is thrown if there is a database exception
    -  230   -
          * @throws ClassNotFoundException thrown if the h2 database driver cannot be
    -  231   -
          * loaded
    -  232   -
          */
    -  233   -
         private void importXML(File file, File oldVersion)
    -  234   -
                 throws ParserConfigurationException, SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException {
    -  235   -
     
    -  236  0
             final SAXParserFactory factory = SAXParserFactory.newInstance();
    -  237  0
             final SAXParser saxParser = factory.newSAXParser();
    -  238   -
     
    -  239  0
             final NvdCve12Handler cve12Handler = new NvdCve12Handler();
    -  240  0
             saxParser.parse(oldVersion, cve12Handler);
    -  241  0
             final Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities();
    -  242   -
     
    -  243  0
             final NvdCve20Handler cve20Handler = new NvdCve20Handler();
    -  244  0
             cve20Handler.setCveDB(cveDB);
    -  245  0
             cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap);
    -  246  0
             cve20Handler.setCpeIndex(cpeIndex);
    -  247  0
             saxParser.parse(file, cve20Handler);
    -  248  0
         }
    -  249   -
     
    -  250   -
         /**
    -  251  
          * Deletes the existing data directories.
    -  252   +  100  
          *
    -  253   +  101  
          * @throws IOException thrown if the directory cannot be deleted
    -  254   +  102  
          */
    -  255   +  103  
         protected void deleteExistingData() throws IOException {
    -  256  4
             File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY);
    -  257  4
             if (data.exists()) {
    -  258  2
                 FileUtils.delete(data);
    -  259   +  104  0
             File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY);
    +  105  0
             if (data.exists()) {
    +  106  0
                 FileUtils.delete(data);
    +  107  
             }
    -  260  4
             data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY);
    -  261  4
             if (data.exists()) {
    -  262  2
                 FileUtils.delete(data);
    -  263   +  108  0
             data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY);
    +  109  0
             if (data.exists()) {
    +  110  0
                 FileUtils.delete(data);
    +  111  
             }
    -  264  4
             data = DataStoreMetaInfo.getPropertiesFile();
    -  265  4
             if (data.exists()) {
    -  266  2
                 FileUtils.delete(data);
    -  267   +  112  0
             data = DataStoreMetaInfo.getPropertiesFile();
    +  113  0
             if (data.exists()) {
    +  114  0
                 FileUtils.delete(data);
    +  115  
             }
    -  268  4
         }
    -  269   -
     
    -  270   -
         /**
    -  271   -
          * Performs the batch update based on the configured batch update URL.
    -  272   -
          *
    -  273   -
          * @throws UpdateException thrown if there is an exception during the update
    -  274   -
          * process
    -  275   -
          */
    -  276   -
         private void performBatchUpdate() throws UpdateException {
    -  277  2
             if (properties.isBatchUpdateMode() && doBatchUpdate) {
    -  278  2
                 final String batchSrc = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL);
    -  279  2
                 File tmp = null;
    -  280   -
                 try {
    -  281  2
                     deleteExistingData();
    -  282  2
                     final File dataDirectory = CveDB.getDataDirectory().getParentFile();
    -  283  2
                     final URL batchUrl = new URL(batchSrc);
    -  284  2
                     if ("file".equals(batchUrl.getProtocol())) {
    -  285   -
                         try {
    -  286  2
                             tmp = new File(batchUrl.toURI());
    -  287  0
                         } catch (URISyntaxException ex) {
    -  288  0
                             final String msg = String.format("Invalid batch update URI: %s", batchSrc);
    -  289  0
                             throw new UpdateException(msg, ex);
    -  290  2
                         }
    -  291  0
                     } else if ("http".equals(batchUrl.getProtocol())
    -  292   -
                             || "https".equals(batchUrl.getProtocol())) {
    -  293  0
                         tmp = File.createTempFile("batch_", ".zip");
    -  294  0
                         Downloader.fetchFile(batchUrl, tmp);
    -  295   -
                     }
    -  296   -
                     //TODO add FTP?
    -  297  2
                     FileUtils.extractFiles(tmp, dataDirectory);
    -  298   -
     
    -  299  0
                 } catch (IOException ex) {
    -  300  0
                     final String msg = String.format("IO Exception Occured performing batch update using: %s", batchSrc);
    -  301  0
                     throw new UpdateException(msg, ex);
    -  302   -
                 } finally {
    -  303  2
                     if (tmp != null && !tmp.delete()) {
    -  304  0
                         tmp.deleteOnExit();
    -  305   -
                     }
    -  306   -
                 }
    -  307   -
             }
    -  308  2
         }
    -  309   -
     
    -  310   -
         /**
    -  311   -
          * Closes the CVE and CPE data stores.
    -  312   -
          */
    -  313   -
         private void closeDataStores() {
    -  314  2
             if (cveDB != null) {
    -  315   -
                 try {
    -  316  2
                     cveDB.close();
    -  317  0
                 } catch (Exception ignore) {
    -  318  0
                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, "Error closing the cveDB", ignore);
    -  319  2
                 }
    -  320   -
             }
    -  321  2
             if (cpeIndex != null) {
    -  322   -
                 try {
    -  323  2
                     cpeIndex.close();
    -  324  0
                 } catch (Exception ignore) {
    -  325  0
                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, "Error closing the cpeIndex", ignore);
    -  326  2
                 }
    -  327   -
             }
    -  328  2
         }
    -  329   -
     
    -  330   -
         /**
    -  331   -
          * Opens the CVE and CPE data stores.
    -  332   -
          *
    -  333   -
          * @throws UpdateException thrown if a data store cannot be opened
    -  334   -
          */
    -  335   -
         private void openDataStores() throws UpdateException {
    -  336   -
             //open the cve and cpe data stores
    -  337   -
             try {
    -  338  2
                 cveDB = new CveDB();
    -  339  2
                 cveDB.open();
    -  340  2
                 cpeIndex = new CpeIndexWriter();
    -  341  2
                 cpeIndex.open();
    -  342  0
             } catch (IOException ex) {
    -  343  0
                 closeDataStores();
    -  344  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "IO Error opening databases", ex);
    -  345  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    -  346  0
             } catch (SQLException ex) {
    -  347  0
                 closeDataStores();
    -  348  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "SQL Exception opening databases", ex);
    -  349  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    -  350  0
             } catch (DatabaseException ex) {
    -  351  0
                 closeDataStores();
    -  352  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Database Exception opening databases", ex);
    -  353  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    -  354  0
             } catch (ClassNotFoundException ex) {
    -  355  0
                 closeDataStores();
    -  356  0
                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Class not found exception opening databases", ex);
    -  357  0
                 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    -  358  2
             }
    -  359  2
         }
    -  360   -
     
    -  361   -
         /**
    -  362   -
          * Determines if the index needs to be updated. This is done by fetching the
    -  363   -
          * NVD CVE meta data and checking the last update date. If the data needs to
    -  364   -
          * be refreshed this method will return the NvdCveUrl for the files that
    -  365   -
          * need to be updated.
    -  366   -
          *
    -  367   -
          * @return the NvdCveUrl of the files that need to be updated.
    -  368   -
          * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
    -  369   -
          * data is incorrect.
    -  370   -
          * @throws DownloadFailedException is thrown if there is an error.
    -  371   -
          * downloading the NVD CVE download data file.
    -  372   -
          * @throws UpdateException Is thrown if there is an issue with the last
    -  373   -
          * updated properties file.
    -  374   -
          */
    -  375   -
         private Map<String, NvdCveInfo> updateNeeded() throws MalformedURLException, DownloadFailedException, UpdateException {
    -  376   -
     
    -  377   -
             Map<String, NvdCveInfo> currentlyPublished;
    -  378   -
             try {
    -  379  2
                 currentlyPublished = retrieveCurrentTimestampsFromWeb();
    -  380  0
             } catch (InvalidDataException ex) {
    -  381  0
                 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page";
    -  382  0
                 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, msg, ex);
    -  383  0
                 throw new DownloadFailedException(msg, ex);
    -  384  0
             } catch (InvalidSettingException ex) {
    -  385  0
                 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex);
    -  386  0
                 throw new DownloadFailedException("Invalid settings", ex);
    -  387  2
             }
    -  388   -
     
    -  389  2
             if (currentlyPublished == null) {
    -  390  0
                 throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data");
    -  391   -
             }
    -  392   -
     
    -  393   -
     //        final File cpeDataDirectory;
    -  394   -
     //        try {
    -  395   -
     //            cpeDataDirectory = CveDB.getDataDirectory();
    -  396   -
     //        } catch (IOException ex) {
    -  397   -
     //            String msg;
    -  398   -
     //            try {
    -  399   -
     //                msg = String.format("Unable to create the CVE Data Directory '%s'",
    -  400   -
     //                        Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY).getCanonicalPath());
    -  401   -
     //            } catch (IOException ex1) {
    -  402   -
     //                msg = String.format("Unable to create the CVE Data Directory, this is likely a configuration issue: '%s%s%s'",
    -  403   -
     //                        Settings.getString(Settings.KEYS.DATA_DIRECTORY, ""),
    -  404   -
     //                        File.separator,
    -  405   -
     //                        Settings.getString(Settings.KEYS.CVE_DATA_DIRECTORY, ""));
    -  406   -
     //            }
    -  407   -
     //            throw new UpdateException(msg, ex);
    -  408   -
     //        }
    -  409   -
     
    -  410  2
             if (!properties.isEmpty()) {
    -  411   -
                 try {
    -  412  0
                     boolean deleteAndRecreate = false;
    -  413   -
                     float version;
    -  414   -
     
    -  415  0
                     if (properties.getProperty("version") == null) {
    -  416  0
                         deleteAndRecreate = true;
    -  417   -
                     } else {
    -  418   -
                         try {
    -  419  0
                             version = Float.parseFloat(properties.getProperty("version"));
    -  420  0
                             final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);
    -  421  0
                             if (currentVersion > version) {
    -  422  0
                                 deleteAndRecreate = true;
    -  423   -
                             }
    -  424  0
                         } catch (NumberFormatException ex) {
    -  425  0
                             deleteAndRecreate = true;
    -  426  0
                         }
    -  427   -
                     }
    -  428   -
     
    -  429  0
                     final NvdCveInfo batchInfo = currentlyPublished.get(BATCH);
    -  430  0
                     if (properties.isBatchUpdateMode() && batchInfo != null) {
    -  431  0
                         final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.BATCH, "0"));
    -  432  0
                         if (lastUpdated != batchInfo.getTimestamp()) {
    -  433  0
                             deleteAndRecreate = true;
    -  434   -
                         }
    -  435   -
                     }
    -  436   -
     
    -  437  0
                     if (deleteAndRecreate) {
    -  438  0
                         setDoBatchUpdate(properties.isBatchUpdateMode());
    -  439   -
                         try {
    -  440  0
                             deleteExistingData();
    -  441  0
                         } catch (IOException ex) {
    -  442  0
                             final String msg = "Unable to delete existing data";
    -  443  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, msg);
    -  444  0
                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
    -  445  0
                         }
    -  446  0
                         return currentlyPublished;
    -  447   -
                     }
    -  448   -
     
    -  449  0
                     final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0"));
    -  450  0
                     final Date now = new Date();
    -  451  0
                     final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);
    -  452  0
                     final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002);
    -  453  0
                     final int end = Calendar.getInstance().get(Calendar.YEAR);
    -  454  0
                     if (lastUpdated == currentlyPublished.get(MODIFIED).getTimestamp()) {
    -  455  0
                         currentlyPublished.clear(); //we don't need to update anything.
    -  456  0
                         setDoBatchUpdate(properties.isBatchUpdateMode());
    -  457  0
                     } else if (withinRange(lastUpdated, now.getTime(), days)) {
    -  458  0
                         currentlyPublished.get(MODIFIED).setNeedsUpdate(true);
    -  459  0
                         if (properties.isBatchUpdateMode()) {
    -  460  0
                             setDoBatchUpdate(false);
    -  461   -
                         } else {
    -  462  0
                             for (int i = start; i <= end; i++) {
    -  463  0
                                 currentlyPublished.get(String.valueOf(i)).setNeedsUpdate(false);
    -  464   -
                             }
    -  465   -
                         }
    -  466  0
                     } else if (properties.isBatchUpdateMode()) {
    -  467  0
                         currentlyPublished.get(MODIFIED).setNeedsUpdate(true);
    -  468  0
                         setDoBatchUpdate(true);
    -  469   -
                     } else { //we figure out which of the several XML files need to be downloaded.
    -  470  0
                         currentlyPublished.get(MODIFIED).setNeedsUpdate(false);
    -  471  0
                         for (int i = start; i <= end; i++) {
    -  472  0
                             final NvdCveInfo cve = currentlyPublished.get(String.valueOf(i));
    -  473  0
                             long currentTimestamp = 0;
    -  474   -
                             try {
    -  475  0
                                 currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + String.valueOf(i), "0"));
    -  476  0
                             } catch (NumberFormatException ex) {
    -  477  0
                                 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated",
    -  478   -
                                         DataStoreMetaInfo.LAST_UPDATED_BASE, String.valueOf(i));
    -  479  0
                                 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, msg, ex);
    -  480  0
                             }
    -  481  0
                             if (currentTimestamp == cve.getTimestamp()) {
    -  482  0
                                 cve.setNeedsUpdate(false); //they default to true.
    -  483   -
                             }
    -  484   -
                         }
    -  485   -
                     }
    -  486  0
                 } catch (NumberFormatException ex) {
    -  487  0
                     final String msg = "An invalid schema version or timestamp exists in the data.properties file.";
    -  488  0
                     Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.WARNING, msg);
    -  489  0
                     Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, null, ex);
    -  490  0
                     setDoBatchUpdate(properties.isBatchUpdateMode());
    -  491  0
                 }
    -  492   -
             } else {
    -  493  2
                 setDoBatchUpdate(properties.isBatchUpdateMode());
    -  494   -
             }
    -  495  2
             return currentlyPublished;
    -  496   -
         }
    -  497   -
     
    -  498   -
         /**
    -  499   -
          * Determines if the epoch date is within the range specified of the
    -  500   -
          * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to
    -  501   -
          * get the number of days. If the calculated days is less then the range the
    -  502   -
          * date is considered valid.
    -  503   -
          *
    -  504   -
          * @param date the date to be checked.
    -  505   -
          * @param compareTo the date to compare to.
    -  506   -
          * @param range the range in days to be considered valid.
    -  507   -
          * @return whether or not the date is within the range.
    -  508   -
          */
    -  509   -
         private boolean withinRange(long date, long compareTo, int range) {
    -  510  0
             final double differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0;
    -  511  0
             return differenceInDays < range;
    -  512   -
         }
    -  513   -
     
    -  514   -
         /**
    -  515   -
          * Retrieves the timestamps from the NVD CVE meta data file.
    -  516   -
          *
    -  517   -
          * @return the timestamp from the currently published nvdcve downloads page
    -  518   -
          * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data
    -  519   -
          * is incorrect.
    -  520   -
          * @throws DownloadFailedException thrown if there is an error downloading
    -  521   -
          * the nvd cve meta data file
    -  522   -
          * @throws InvalidDataException thrown if there is an exception parsing the
    -  523   -
          * timestamps
    -  524   -
          * @throws InvalidSettingException thrown if the settings are invalid
    -  525   -
          */
    -  526   -
         private Map<String, NvdCveInfo> retrieveCurrentTimestampsFromWeb()
    -  527   -
                 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {
    -  528   -
     
    -  529  2
             final Map<String, NvdCveInfo> map = new TreeMap<String, NvdCveInfo>();
    -  530  2
             String retrieveUrl = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL);
    -  531  2
             if (retrieveUrl == null && properties.isBatchUpdateMode()) {
    -  532  1
                 final NvdCveInfo item = new NvdCveInfo();
    -  533  1
                 retrieveUrl = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL);
    -  534  1
                 if (retrieveUrl == null) {
    -  535  0
                     final String msg = "Invalid configuration - neither the modified or batch update URLs are specified in the configuration.";
    -  536  0
                     Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.SEVERE, msg);
    -  537  0
                     throw new InvalidSettingException(msg);
    -  538   -
                 }
    -  539  1
                 item.setTimestamp(Downloader.getLastModified(new URL(retrieveUrl)));
    -  540  1
                 item.setId(BATCH);
    -  541  1
                 item.setNeedsUpdate(false);
    -  542  1
                 map.put(BATCH, item);
    -  543  1
             } else {
    -  544  1
                 NvdCveInfo item = new NvdCveInfo();
    -  545  1
                 item.setNeedsUpdate(false); //the others default to true, to make life easier later this should default to false.
    -  546  1
                 item.setId(MODIFIED);
    -  547  1
                 item.setUrl(retrieveUrl);
    -  548  1
                 item.setOldSchemaVersionUrl(Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL));
    -  549   -
     
    -  550  1
                 item.setTimestamp(Downloader.getLastModified(new URL(retrieveUrl)));
    -  551  1
                 map.put(MODIFIED, item);
    -  552   -
     
    -  553   -
                 //only add these urls if we are not in batch mode
    -  554  1
                 if (!properties.isBatchUpdateMode()) {
    -  555  0
                     final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR);
    -  556  0
                     final int end = Calendar.getInstance().get(Calendar.YEAR);
    -  557  0
                     final String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0);
    -  558  0
                     final String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2);
    -  559  0
                     for (int i = start; i <= end; i++) {
    -  560  0
                         retrieveUrl = String.format(baseUrl20, i);
    -  561  0
                         item = new NvdCveInfo();
    -  562  0
                         item.setId(Integer.toString(i));
    -  563  0
                         item.setUrl(retrieveUrl);
    -  564  0
                         item.setOldSchemaVersionUrl(String.format(baseUrl12, i));
    -  565  0
                         item.setTimestamp(Downloader.getLastModified(new URL(retrieveUrl)));
    -  566  0
                         map.put(item.getId(), item);
    -  567   -
                     }
    -  568   -
                 }
    -  569   -
             }
    -  570  2
             return map;
    -  571   -
         }
    -  572   +  116  0
         }
    +  117  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.NvdCveInfo.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.NvdCveInfo.html index bef1067ca..5667073d8 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.NvdCveInfo.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.NvdCveInfo.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    NvdCveInfo
    88%
    15/17
    N/A
    1
    NvdCveInfo
    100%
    17/17
    N/A
    1
     
    @@ -67,7 +67,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     25  
      */
    -  26  2
     public class NvdCveInfo {
    +  26  19
     public class NvdCveInfo {
     27  
     
     28   @@ -92,7 +92,7 @@
          */
     38  
         public String getId() {
    -  39  1
             return id;
    +  39  7
             return id;
     40  
         }
     41   @@ -109,8 +109,8 @@
          */
     47  
         public void setId(String id) {
    -  48  2
             this.id = id;
    -  49  2
         }
    +  48  15
             this.id = id;
    +  49  15
         }
     50  
         /**
     51   @@ -133,7 +133,7 @@
          */
     60  
         public String getUrl() {
    -  61  0
             return url;
    +  61  3
             return url;
     62  
         }
     63   @@ -150,8 +150,8 @@
          */
     69  
         public void setUrl(String url) {
    -  70  1
             this.url = url;
    -  71  1
         }
    +  70  14
             this.url = url;
    +  71  14
         }
     72  
         /**
     73   @@ -174,7 +174,7 @@
          */
     82  
         public String getOldSchemaVersionUrl() {
    -  83  0
             return oldSchemaVersionUrl;
    +  83  3
             return oldSchemaVersionUrl;
     84  
         }
     85   @@ -191,8 +191,8 @@
          */
     91  
         public void setOldSchemaVersionUrl(String oldSchemaVersionUrl) {
    -  92  1
             this.oldSchemaVersionUrl = oldSchemaVersionUrl;
    -  93  1
         }
    +  92  14
             this.oldSchemaVersionUrl = oldSchemaVersionUrl;
    +  93  14
         }
     94  
         /**
     95   @@ -215,7 +215,7 @@
          */
     104  
         public long getTimestamp() {
    -  105  1
             return timestamp;
    +  105  2
             return timestamp;
     106  
         }
     107   @@ -232,15 +232,15 @@
          */
     113  
         public void setTimestamp(long timestamp) {
    -  114  2
             this.timestamp = timestamp;
    -  115  2
         }
    +  114  15
             this.timestamp = timestamp;
    +  115  15
         }
     116  
         /**
     117  
          * indicates whether or not this item should be updated.
     118  
          */
    -  119  2
         private boolean needsUpdate = true;
    +  119  19
         private boolean needsUpdate = true;
     120  
     
     121   @@ -255,7 +255,7 @@
          */
     126  
         public boolean getNeedsUpdate() {
    -  127  4
             return needsUpdate;
    +  127  5
             return needsUpdate;
     128  
         }
     129   @@ -272,12 +272,12 @@
          */
     135  
         public void setNeedsUpdate(boolean needsUpdate) {
    -  136  2
             this.needsUpdate = needsUpdate;
    -  137  2
         }
    +  136  14
             this.needsUpdate = needsUpdate;
    +  137  14
         }
     138  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.StandardUpdateTask.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.StandardUpdateTask.html new file mode 100644 index 000000000..6b0486a66 --- /dev/null +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.StandardUpdateTask.html @@ -0,0 +1,486 @@ + + + + +Coverage Report + + + + +
    Coverage Report - org.owasp.dependencycheck.data.update.StandardUpdateTask
    +
     
    + + + + +
    Classes in this File Line Coverage Branch Coverage Complexity
    StandardUpdateTask
    0%
    0/126
    0%
    0/60
    14.75
    +
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.update;
     20  
     
     21  
     import org.owasp.dependencycheck.data.nvdcve.InvalidDataException;
     22  
     import java.io.File;
     23  
     import java.io.FileNotFoundException;
     24  
     import java.io.IOException;
     25  
     import javax.xml.parsers.ParserConfigurationException;
     26  
     import org.xml.sax.SAXException;
     27  
     import java.net.MalformedURLException;
     28  
     import java.net.URL;
     29  
     import java.sql.SQLException;
     30  
     import java.util.Calendar;
     31  
     import java.util.Date;
     32  
     import java.util.logging.Level;
     33  
     import java.util.logging.Logger;
     34  
     import org.owasp.dependencycheck.data.UpdateException;
     35  
     import org.owasp.dependencycheck.data.nvdcve.CveDB;
     36  
     import org.owasp.dependencycheck.utils.DownloadFailedException;
     37  
     import org.owasp.dependencycheck.utils.Downloader;
     38  
     import org.owasp.dependencycheck.utils.Settings;
     39  
     import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
     40  
     import org.owasp.dependencycheck.utils.InvalidSettingException;
     41  
     import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED;
     42  
     
     43  
     /**
     44  
      * Class responsible for updating the CPE and NVDCVE data stores.
     45  
      *
     46  
      * @author Jeremy Long (jeremy.long@owasp.org)
     47  
      */
     48  
     public class StandardUpdateTask extends AbstractUpdateTask {
     49  
     
     50  
         /**
     51  
          * Constructs a new Standard Update Task.
     52  
          *
     53  
          * @param properties information about the data store
     54  
          * @throws MalformedURLException thrown if a configured URL is malformed
     55  
          * @throws DownloadFailedException thrown if a timestamp cannot be checked
     56  
          * on a configured URL
     57  
          * @throws UpdateException thrown if there is an exception generating the
     58  
          * update task
     59  
          */
     60  
         public StandardUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException {
     61  0
             super(properties);
     62  0
         }
     63  
     
     64  
         /**
     65  
          * <p>Downloads the latest NVD CVE XML file from the web and imports it into
     66  
          * the current CVE Database.</p>
     67  
          *
     68  
          * @throws UpdateException is thrown if there is an error updating the
     69  
          * database
     70  
          */
     71  
         @Override
     72  
         public void update() throws UpdateException {
     73  
             try {
     74  0
                 int maxUpdates = 0;
     75  0
                 for (NvdCveInfo cve : getUpdateable()) {
     76  0
                     if (cve.getNeedsUpdate()) {
     77  0
                         maxUpdates += 1;
     78  
                     }
     79  
                 }
     80  0
                 if (maxUpdates > 3) {
     81  0
                     Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
     82  
                             "NVD CVE requires several updates; this could take a couple of minutes.");
     83  
                 }
     84  0
                 if (maxUpdates > 0) {
     85  0
                     openDataStores();
     86  
                 }
     87  
     
     88  0
                 int count = 0;
     89  0
                 for (NvdCveInfo cve : getUpdateable()) {
     90  0
                     if (cve.getNeedsUpdate()) {
     91  0
                         count += 1;
     92  0
                         Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
     93  
                                 "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates});
     94  0
                         URL url = new URL(cve.getUrl());
     95  0
                         File outputPath = null;
     96  0
                         File outputPath12 = null;
     97  
                         try {
     98  0
                             Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
     99  
                                     "Downloading {0}", cve.getUrl());
     100  0
                             outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml");
     101  0
                             Downloader.fetchFile(url, outputPath);
     102  
     
     103  0
                             url = new URL(cve.getOldSchemaVersionUrl());
     104  0
                             outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml");
     105  0
                             Downloader.fetchFile(url, outputPath12);
     106  
     
     107  0
                             Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
     108  
                                     "Processing {0}", cve.getUrl());
     109  
     
     110  0
                             importXML(outputPath, outputPath12);
     111  
     
     112  0
                             getCveDB().commit();
     113  0
                             getCpeIndex().commit();
     114  0
                             getProperties().save(cve);
     115  
     
     116  0
                             Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
     117  
                                     "Completed update {0} of {1}", new Object[]{count, maxUpdates});
     118  0
                         } catch (FileNotFoundException ex) {
     119  0
                             throw new UpdateException(ex);
     120  0
                         } catch (ParserConfigurationException ex) {
     121  0
                             throw new UpdateException(ex);
     122  0
                         } catch (SAXException ex) {
     123  0
                             throw new UpdateException(ex);
     124  0
                         } catch (IOException ex) {
     125  0
                             throw new UpdateException(ex);
     126  0
                         } catch (SQLException ex) {
     127  0
                             throw new UpdateException(ex);
     128  0
                         } catch (DatabaseException ex) {
     129  0
                             throw new UpdateException(ex);
     130  0
                         } catch (ClassNotFoundException ex) {
     131  0
                             throw new UpdateException(ex);
     132  
                         } finally {
     133  0
                             boolean deleted = false;
     134  
                             try {
     135  0
                                 if (outputPath != null && outputPath.exists()) {
     136  0
                                     deleted = outputPath.delete();
     137  
                                 }
     138  
                             } finally {
     139  0
                                 if (outputPath != null && (outputPath.exists() || !deleted)) {
     140  0
                                     outputPath.deleteOnExit();
     141  
                                 }
     142  
                             }
     143  
                             try {
     144  0
                                 deleted = false;
     145  0
                                 if (outputPath12 != null && outputPath12.exists()) {
     146  0
                                     deleted = outputPath12.delete();
     147  
                                 }
     148  
                             } finally {
     149  0
                                 if (outputPath12 != null && (outputPath12.exists() || !deleted)) {
     150  0
                                     outputPath12.deleteOnExit();
     151  
                                 }
     152  
                             }
     153  0
                         }
     154  0
                     }
     155  
                 }
     156  0
                 if (maxUpdates >= 1) { //ensure the modified file date gets written
     157  0
                     getProperties().save(getUpdateable().get(MODIFIED));
     158  0
                     getCveDB().cleanupDatabase();
     159  
                 }
     160  0
             } catch (MalformedURLException ex) {
     161  0
                 throw new UpdateException(ex);
     162  
             } finally {
     163  0
                 closeDataStores();
     164  0
             }
     165  0
         }
     166  
     
     167  
         /**
     168  
          * Determines if the index needs to be updated. This is done by fetching the
     169  
          * NVD CVE meta data and checking the last update date. If the data needs to
     170  
          * be refreshed this method will return the NvdCveUrl for the files that
     171  
          * need to be updated.
     172  
          *
     173  
          * @return the collection of files that need to be updated
     174  
          * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
     175  
          * data is incorrect
     176  
          * @throws DownloadFailedException is thrown if there is an error.
     177  
          * downloading the NVD CVE download data file
     178  
          * @throws UpdateException Is thrown if there is an issue with the last
     179  
          * updated properties file
     180  
          */
     181  
         @Override
     182  
         protected Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException {
     183  0
             Updateable updates = null;
     184  
             try {
     185  0
                 updates = retrieveCurrentTimestampsFromWeb();
     186  0
             } catch (InvalidDataException ex) {
     187  0
                 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page";
     188  0
                 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, msg, ex);
     189  0
                 throw new DownloadFailedException(msg, ex);
     190  0
             } catch (InvalidSettingException ex) {
     191  0
                 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex);
     192  0
                 throw new DownloadFailedException("Invalid settings", ex);
     193  0
             }
     194  
     
     195  0
             if (updates == null) {
     196  0
                 throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data");
     197  
             }
     198  0
             final DataStoreMetaInfo properties = getProperties();
     199  0
             if (!properties.isEmpty()) {
     200  
                 try {
     201  
                     float version;
     202  
     
     203  0
                     if (properties.getProperty("version") == null) {
     204  0
                         setDeleteAndRecreate(true);
     205  
                     } else {
     206  
                         try {
     207  0
                             version = Float.parseFloat(properties.getProperty("version"));
     208  0
                             final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);
     209  0
                             if (currentVersion > version) {
     210  0
                                 setDeleteAndRecreate(true);
     211  
                             }
     212  0
                         } catch (NumberFormatException ex) {
     213  0
                             setDeleteAndRecreate(true);
     214  0
                         }
     215  
                     }
     216  
     
     217  0
                     if (shouldDeleteAndRecreate()) {
     218  0
                         return updates;
     219  
                     }
     220  
     
     221  0
                     final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0"));
     222  0
                     final Date now = new Date();
     223  0
                     final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);
     224  0
                     if (lastUpdated == updates.getTimeStamp(MODIFIED)) {
     225  0
                         updates.clear(); //we don't need to update anything.
     226  0
                     } else if (withinRange(lastUpdated, now.getTime(), days)) {
     227  0
                         for (NvdCveInfo entry : updates) {
     228  0
                             if (MODIFIED.equals(entry.getId())) {
     229  0
                                 entry.setNeedsUpdate(true);
     230  
                             } else {
     231  0
                                 entry.setNeedsUpdate(false);
     232  
                             }
     233  
                         }
     234  
                     } else { //we figure out which of the several XML files need to be downloaded.
     235  0
                         for (NvdCveInfo entry : updates) {
     236  0
                             if (MODIFIED.equals(entry.getId())) {
     237  0
                                 entry.setNeedsUpdate(true);
     238  
                             } else {
     239  0
                                 long currentTimestamp = 0;
     240  
                                 try {
     241  0
                                     currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + entry.getId(), "0"));
     242  0
                                 } catch (NumberFormatException ex) {
     243  0
                                     final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated",
     244  
                                             DataStoreMetaInfo.LAST_UPDATED_BASE, entry.getId());
     245  0
                                     Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, msg, ex);
     246  0
                                 }
     247  0
                                 if (currentTimestamp == entry.getTimestamp()) {
     248  0
                                     entry.setNeedsUpdate(false);
     249  
                                 }
     250  0
                             }
     251  
                         }
     252  
                     }
     253  0
                 } catch (NumberFormatException ex) {
     254  0
                     final String msg = "An invalid schema version or timestamp exists in the data.properties file.";
     255  0
                     Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.WARNING, msg);
     256  0
                     Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, null, ex);
     257  0
                 }
     258  
             }
     259  0
             return updates;
     260  
         }
     261  
     
     262  
         /**
     263  
          * Retrieves the timestamps from the NVD CVE meta data file.
     264  
          *
     265  
          * @return the timestamp from the currently published nvdcve downloads page
     266  
          * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data
     267  
          * is incorrect.
     268  
          * @throws DownloadFailedException thrown if there is an error downloading
     269  
          * the nvd cve meta data file
     270  
          * @throws InvalidDataException thrown if there is an exception parsing the
     271  
          * timestamps
     272  
          * @throws InvalidSettingException thrown if the settings are invalid
     273  
          */
     274  
         private Updateable retrieveCurrentTimestampsFromWeb()
     275  
                 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {
     276  
     
     277  0
             final Updateable updates = new Updateable();
     278  0
             updates.add(MODIFIED, Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL),
     279  
                     Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL),
     280  
                     false);
     281  
     
     282  0
             final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR);
     283  0
             final int end = Calendar.getInstance().get(Calendar.YEAR);
     284  0
             final String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0);
     285  0
             final String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2);
     286  0
             for (int i = start; i <= end; i++) {
     287  0
                 updates.add(Integer.toString(i), String.format(baseUrl20, i),
     288  
                         String.format(baseUrl12, i),
     289  
                         true);
     290  
             }
     291  
     
     292  0
             return updates;
     293  
         }
     294  
     }
    + + + + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.InvalidDataException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTask.html similarity index 74% rename from dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.InvalidDataException.html rename to dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTask.html index bba031245..c752868d1 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.xml.InvalidDataException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTask.html @@ -8,11 +8,11 @@ -
    Coverage Report - org.owasp.dependencycheck.data.nvdcve.xml.InvalidDataException
    +
    Coverage Report - org.owasp.dependencycheck.data.update.UpdateTask
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    InvalidDataException
    0%
    0/4
    N/A
    1
    UpdateTask
    N/A
    N/A
    1
     
    @@ -54,71 +54,73 @@  18  
      */
     19   -
     package org.owasp.dependencycheck.data.nvdcve.xml;
    +
     package org.owasp.dependencycheck.data.update;
     20  
     
     21   -
     /**
    +
     import org.owasp.dependencycheck.data.UpdateException;
     22   -
      * An InvalidDataDataException is a generic exception used when trying to load
    +
     
     23   -
      * the nvd cve meta data.
    +
     /**
     24   -
      *
    +
      * An interface defining an update task.
     25   -
      * @author Jeremy Long (jeremy.long@owasp.org)
    +
      *
     26   -
      */
    +
      * @author Jeremy Long (jeremy.long@owasp.org)
     27   -
     public class InvalidDataException extends Exception {
    +
      */
     28   -
     
    +
     public interface UpdateTask {
     29   -
         /**
    +
     
     30   -
          * the serial version uid.
    +
         /**
     31   -
          */
    +
          * <p>Updates the data store to the latest version.</p>
     32   -
         private static final long serialVersionUID = 1L;
    +
          *
     33   -
     
    +
          * @throws UpdateException is thrown if there is an error updating the
     34   -
         /**
    +
          * database
     35   -
          * Creates an InvalidDataException.
    +
          */
     36   -
          *
    +
         void update() throws UpdateException;
     37   -
          * @param msg the exception message
    -  38   -
          */
    -  39   -
         public InvalidDataException(String msg) {
    -  40  0
             super(msg);
    -  41  0
         }
    -  42  
     
    -  43   +  38  
         /**
    -  44   -
          * Creates an InvalidDataException.
    -  45   +  39   +
          * Get the value of deleteAndRecreate.
    +  40  
          *
    -  46   -
          * @param msg the exception message
    -  47   -
          * @param ex the cause of the exception
    -  48   +  41   +
          * @return the value of deleteAndRecreate
    +  42  
          */
    +  43   +
         boolean shouldDeleteAndRecreate();
    +  44   +
     
    +  45   +
         /**
    +  46   +
          * Gets whether or not an update is needed.
    +  47   +
          *
    +  48   +
          * @return true or false depending on whether an update is needed
     49   -
         public InvalidDataException(String msg, Exception ex) {
    -  50  0
             super(msg, ex);
    -  51  0
         }
    -  52   +
          */
    +  50   +
         boolean isUpdateNeeded();
    +  51  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTaskFactory.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTaskFactory.html new file mode 100644 index 000000000..2329dfe4a --- /dev/null +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTaskFactory.html @@ -0,0 +1,137 @@ + + + + +Coverage Report + + + + +
    Coverage Report - org.owasp.dependencycheck.data.update.UpdateTaskFactory
    +
     
    + + + + +
    Classes in this File Line Coverage Branch Coverage Complexity
    UpdateTaskFactory
    0%
    0/7
    0%
    0/2
    1.5
    +
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     1  
     /*
     2  
      * This file is part of dependency-check-core.
     3  
      *
     4  
      * Dependency-check-core is free software: you can redistribute it and/or modify it
     5  
      * under the terms of the GNU General Public License as published by the Free
     6  
      * Software Foundation, either version 3 of the License, or (at your option) any
     7  
      * later version.
     8  
      *
     9  
      * Dependency-check-core is distributed in the hope that it will be useful, but
     10  
      * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     11  
      * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
     12  
      * details.
     13  
      *
     14  
      * You should have received a copy of the GNU General Public License along with
     15  
      * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16  
      *
     17  
      * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18  
      */
     19  
     package org.owasp.dependencycheck.data.update;
     20  
     
     21  
     import java.net.MalformedURLException;
     22  
     import org.owasp.dependencycheck.data.UpdateException;
     23  
     import org.owasp.dependencycheck.utils.DownloadFailedException;
     24  
     
     25  
     /**
     26  
      * An UpdateTask Factory that instantiates the correct UpdateTask based on the
     27  
      * given configuration.
     28  
      *
     29  
      * @author Jeremy Long (jeremy.long@owasp.org)
     30  
      */
     31  
     public final class UpdateTaskFactory {
     32  
     
     33  
         /**
     34  
          * private constructor for a utility class.
     35  
          */
     36  0
         private UpdateTaskFactory() {
     37  
             //empty contrusctor for utility class
     38  0
         }
     39  
     
     40  
         /**
     41  
          * Constructs the appropriate update task based on configuration.
     42  
          *
     43  
          * @return an UpdateTask
     44  
          * @throws MalformedURLException thrown if a configured URL is malformed
     45  
          * @throws DownloadFailedException thrown if a timestamp cannot be checked
     46  
          * on a configured URL
     47  
          * @throws UpdateException thrown if there is an exception generating the
     48  
          * update task
     49  
          */
     50  
         public static UpdateTask getUpdateTask() throws MalformedURLException, DownloadFailedException, UpdateException {
     51  
             final UpdateTask task;
     52  0
             final DataStoreMetaInfo properties = new DataStoreMetaInfo();
     53  0
             if (properties.isBatchUpdateMode()) {
     54  0
                 task = new BatchUpdateTask(properties);
     55  
             } else {
     56  0
                 task = new StandardUpdateTask(properties);
     57  
             }
     58  0
             return task;
     59  
         }
     60  
     }
    + + + + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Index.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.Updateable.html similarity index 53% rename from dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Index.html rename to dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.Updateable.html index 97eda7435..8ca3039da 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Index.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.Updateable.html @@ -8,11 +8,11 @@ -
    Coverage Report - org.owasp.dependencycheck.data.cpe.Index
    +
    Coverage Report - org.owasp.dependencycheck.data.update.Updateable
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    Index
    64%
    22/34
    37%
    3/8
    1.625
    Updateable
    93%
    27/29
    100%
    4/4
    1.25
     
    @@ -54,277 +54,304 @@  18  
      */
     19   -
     package org.owasp.dependencycheck.data.cpe;
    +
     package org.owasp.dependencycheck.data.update;
     20  
     
     21   -
     import java.io.File;
    +
     import java.net.MalformedURLException;
     22   -
     import java.io.IOException;
    +
     import java.net.URL;
     23   -
     import java.util.HashMap;
    +
     import java.util.Iterator;
     24  
     import java.util.Map;
     25   -
     import org.apache.lucene.analysis.Analyzer;
    +
     import java.util.Map.Entry;
     26   -
     import org.apache.lucene.analysis.core.KeywordAnalyzer;
    +
     import java.util.TreeMap;
     27   -
     import org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper;
    +
     import org.owasp.dependencycheck.utils.DownloadFailedException;
     28   -
     import org.apache.lucene.document.Document;
    +
     import org.owasp.dependencycheck.utils.Downloader;
     29   -
     import org.apache.lucene.document.Field;
    +
     
     30   -
     import org.apache.lucene.document.TextField;
    -  31   -
     import org.apache.lucene.index.CorruptIndexException;
    -  32   -
     import org.apache.lucene.index.Term;
    -  33   -
     import org.apache.lucene.queryparser.classic.QueryParser;
    -  34   -
     import org.apache.lucene.store.Directory;
    -  35   -
     import org.apache.lucene.store.FSDirectory;
    -  36   -
     import org.apache.lucene.util.Version;
    -  37   -
     import org.owasp.dependencycheck.data.lucene.AbstractIndex;
    -  38   -
     import org.owasp.dependencycheck.utils.Settings;
    -  39   -
     import org.owasp.dependencycheck.data.lucene.FieldAnalyzer;
    -  40   -
     import org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer;
    -  41   -
     
    -  42  
     /**
    -  43   -
      * The Index class is used to utilize and maintain the CPE Index.
    -  44   +  31   +
      * Contains a collection of updateable NvdCveInfo objects. This is used to
    +  32   +
      * determine which files need to be downloaded and processed.
    +  33  
      *
    -  45   +  34  
      * @author Jeremy Long (jeremy.long@owasp.org)
    -  46   +  35  
      */
    -  47  30
     public class Index extends AbstractIndex {
    +  36  14
     public class Updateable implements java.lang.Iterable<NvdCveInfo>, Iterator<NvdCveInfo> {
    +  37   +
     
    +  38   +
         /**
    +  39   +
          * A collection of sources of data.
    +  40   +
          */
    +  41  7
         private Map<String, NvdCveInfo> collection = new TreeMap<String, NvdCveInfo>();
    +  42   +
     
    +  43   +
         /**
    +  44   +
          * Returns the collection of NvdCveInfo objects. This method is mainly used
    +  45   +
          * for testing.
    +  46   +
          *
    +  47   +
          * @return the collection of NvdCveInfo objects
     48   -
     
    +
          */
     49   -
         /**
    -  50   -
          * Returns the directory that holds the CPE Index.
    +
         protected Map<String, NvdCveInfo> getCollection() {
    +  50  3
             return collection;
     51   -
          *
    +
         }
     52   -
          * @return the Directory containing the CPE Index.
    +
     
     53   -
          * @throws IOException is thrown if an IOException occurs.
    +
         /**
     54   -
          */
    +
          * Gets whether or not an update is needed.
     55   -
         @Override
    +
          *
     56   -
         public Directory getDirectory() throws IOException {
    -  57  30
             final File path = getDataDirectory();
    -  58  30
             return FSDirectory.open(path);
    -  59   -
         }
    -  60   -
     
    -  61   -
         /**
    +
          * @return true or false depending on whether an update is needed
    +  57   +
          */
    +  58   +
         public boolean isUpdateNeeded() {
    +  59  3
             for (NvdCveInfo item : this) {
    +  60  4
                 if (item.getNeedsUpdate()) {
    +  61  1
                     return true;
     62   -
          * Retrieves the directory that the JAR file exists in so that we can ensure
    -  63   -
          * we always use a common data directory.
    -  64   -
          *
    -  65   -
          * @return the data directory for this index.
    -  66   -
          * @throws IOException is thrown if an IOException occurs of course...
    -  67   -
          */
    -  68   -
         public File getDataDirectory() throws IOException {
    -  69  30
             final File path = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY);
    -  70  30
             if (!path.exists()) {
    -  71  0
                 if (!path.mkdirs()) {
    -  72  0
                     throw new IOException("Unable to create CPE Data directory");
    -  73  
                 }
    -  74   +  63  
             }
    -  75  30
             return path;
    +  64  2
             return false;
    +  65   +
         }
    +  66   +
     
    +  67   +
         /**
    +  68   +
          * Adds a new entry of updateable information to the contained collection.
    +  69   +
          *
    +  70   +
          * @param id the key for the item to be added
    +  71   +
          * @param url the URL to download the item
    +  72   +
          * @param oldUrl the URL for the old version of the item (the NVD CVE old
    +  73   +
          * schema still contains useful data we need).
    +  74   +
          * @throws MalformedURLException thrown if the URL provided is invalid
    +  75   +
          * @throws DownloadFailedException thrown if the download fails.
     76   -
         }
    +
          */
     77   -
     
    -  78   -
         /**
    -  79   -
          * Creates an Analyzer for the CPE Index.
    +
         public void add(String id, String url, String oldUrl) throws MalformedURLException, DownloadFailedException {
    +  78  1
             add(id, url, oldUrl, false);
    +  79  1
         }
     80   -
          *
    -  81   -
          * @return the CPE Analyzer.
    -  82   -
          */
    -  83   -
         @SuppressWarnings("unchecked")
    -  84   -
         @Override
    -  85   -
         public Analyzer createIndexingAnalyzer() {
    -  86  27
             final Map fieldAnalyzers = new HashMap();
    -  87  27
             fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer());
    -  88  27
             return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers);
    -  89   -
         }
    -  90   -
         /**
    -  91   -
          * The search field analyzer for the product field.
    -  92   -
          */
    -  93   -
         private SearchFieldAnalyzer productSearchFieldAnalyzer;
    -  94   -
         /**
    -  95   -
          * The search field analyzer for the vendor field.
    -  96   -
          */
    -  97   -
         private SearchFieldAnalyzer vendorSearchFieldAnalyzer;
    -  98  
     
    -  99   +  81  
         /**
    -  100   -
          * Creates an Analyzer for searching the CPE Index.
    -  101   +  82   +
          * Adds a new entry of updateable information to the contained collection.
    +  83  
          *
    -  102   -
          * @return the CPE Analyzer.
    -  103   +  84   +
          * @param id the key for the item to be added
    +  85   +
          * @param url the URL to download the item
    +  86   +
          * @param oldUrl the URL for the old version of the item (the NVD CVE old
    +  87   +
          * schema still contains useful data we need).
    +  88   +
          * @param needsUpdate whether or not the data needs to be updated
    +  89   +
          * @throws MalformedURLException thrown if the URL provided is invalid
    +  90   +
          * @throws DownloadFailedException thrown if the download fails.
    +  91  
          */
    +  92   +
         public void add(String id, String url, String oldUrl, boolean needsUpdate) throws MalformedURLException, DownloadFailedException {
    +  93  13
             final NvdCveInfo item = new NvdCveInfo();
    +  94  13
             item.setNeedsUpdate(needsUpdate); //the others default to true, to make life easier later this should default to false.
    +  95  13
             item.setId(id);
    +  96  13
             item.setUrl(url);
    +  97  13
             item.setOldSchemaVersionUrl(oldUrl);
    +  98  13
             item.setTimestamp(Downloader.getLastModified(new URL(url)));
    +  99  13
             collection.put(id, item);
    +  100  13
         }
    +  101   +
     
    +  102   +
         /**
    +  103   +
          * Clears the contained collection of NvdCveInfo entries.
     104   -
         @SuppressWarnings("unchecked")
    +
          */
     105   -
         @Override
    -  106   -
         public Analyzer createSearchingAnalyzer() {
    -  107  27
             final Map fieldAnalyzers = new HashMap();
    +
         public void clear() {
    +  106  1
             collection.clear();
    +  107  1
         }
     108  
     
    -  109  27
             fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer());
    -  110  27
             productSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43);
    -  111  27
             vendorSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43);
    -  112  27
             fieldAnalyzers.put(Fields.PRODUCT, productSearchFieldAnalyzer);
    -  113  27
             fieldAnalyzers.put(Fields.VENDOR, vendorSearchFieldAnalyzer);
    +  109   +
         /**
    +  110   +
          * Returns the timestamp for the given entry.
    +  111   +
          *
    +  112   +
          * @param key the key to lookup in the collection of NvdCveInfo items
    +  113   +
          * @return the timestamp for the given entry
     114   -
     
    -  115  27
             return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers);
    -  116   -
         }
    +
          */
    +  115   +
         public long getTimeStamp(String key) {
    +  116  0
             return collection.get(key).getTimestamp();
     117   -
     
    +
         }
     118  
         /**
     119   -
          * Creates the Lucene QueryParser used when querying the index.
    +
          * An internal iterator used to implement iterable.
     120   -
          *
    -  121   -
          * @return a QueryParser.
    +
          */
    +  121  7
         private Iterator<Entry<String, NvdCveInfo>> iterableContent = null;
     122   -
          */
    +
     
     123   -
         @Override
    +
         /**
     124   -
         public QueryParser createQueryParser() {
    -  125  21
             return new QueryParser(Version.LUCENE_43, Fields.DOCUMENT_KEY, getSearchingAnalyzer());
    +
          * <p>Returns an iterator for the NvdCveInfo contained.</p>
    +  125   +
          * <p><b>This method is not thread safe.</b></p>
     126   -
         }
    +
          *
     127   -
     
    +
          * @return an NvdCveInfo Iterator
     128   -
         /**
    +
          */
     129   -
          * Resets the searching analyzers
    -  130   -
          */
    -  131  
         @Override
    -  132   -
         protected void resetSearchingAnalyzer() {
    -  133  111
             if (productSearchFieldAnalyzer != null) {
    -  134  111
                 productSearchFieldAnalyzer.clear();
    -  135   -
             }
    -  136  111
             if (vendorSearchFieldAnalyzer != null) {
    -  137  111
                 vendorSearchFieldAnalyzer.clear();
    -  138   -
             }
    -  139  111
         }
    -  140   -
     
    -  141   -
         /**
    -  142   -
          * Saves a CPE IndexEntry into the Lucene index.
    -  143   -
          *
    -  144   -
          * @param entry a CPE entry.
    -  145   -
          * @throws CorruptIndexException is thrown if the index is corrupt.
    -  146   -
          * @throws IOException is thrown if an IOException occurs.
    -  147   -
          */
    -  148   -
         public void saveEntry(IndexEntry entry) throws CorruptIndexException, IOException {
    -  149  0
             final Document doc = convertEntryToDoc(entry);
    -  150  0
             final Term term = new Term(Fields.DOCUMENT_KEY, entry.getDocumentId());
    -  151  0
             getIndexWriter().updateDocument(term, doc);
    -  152  0
         }
    -  153   -
     
    -  154   -
         /**
    -  155   -
          * Converts a CPE entry into a Lucene Document.
    -  156   -
          *
    -  157   -
          * @param entry a CPE IndexEntry.
    -  158   -
          * @return a Lucene Document containing a CPE IndexEntry.
    -  159   -
          */
    -  160   -
         protected Document convertEntryToDoc(IndexEntry entry) {
    -  161  0
             final Document doc = new Document();
    -  162   -
     
    -  163  0
             final Field vendor = new TextField(Fields.VENDOR, entry.getVendor(), Field.Store.YES);
    -  164  0
             doc.add(vendor);
    -  165   -
     
    -  166  0
             final Field product = new TextField(Fields.PRODUCT, entry.getProduct(), Field.Store.YES);
    -  167  0
             doc.add(product);
    -  168  0
             return doc;
    -  169   +  130   +
         public Iterator<NvdCveInfo> iterator() {
    +  131  4
             iterableContent = collection.entrySet().iterator();
    +  132  4
             return this;
    +  133  
         }
    +  134   +
     
    +  135   +
         /**
    +  136   +
          * <p>Returns whether or not there is another item in the collection.</p>
    +  137   +
          * <p><b>This method is not thread safe.</b></p>
    +  138   +
          *
    +  139   +
          * @return true or false depending on whether or not another item exists in
    +  140   +
          * the collection
    +  141   +
          */
    +  142   +
         @Override
    +  143   +
         public boolean hasNext() {
    +  144  10
             return iterableContent.hasNext();
    +  145   +
         }
    +  146   +
     
    +  147   +
         /**
    +  148   +
          * <p>Returns the next item in the collection.</p>
    +  149   +
          * <p><b>This method is not thread safe.</b></p>
    +  150   +
          *
    +  151   +
          * @return the next NvdCveInfo item in the collection
    +  152   +
          */
    +  153   +
         @Override
    +  154   +
         public NvdCveInfo next() {
    +  155  7
             return iterableContent.next().getValue();
    +  156   +
         }
    +  157   +
     
    +  158   +
         /**
    +  159   +
          * <p>Removes the current NvdCveInfo object from the collection.</p>
    +  160   +
          * <p><b>This method is not thread safe.</b></p>
    +  161   +
          */
    +  162   +
         @Override
    +  163   +
         public void remove() {
    +  164  1
             iterableContent.remove();
    +  165  1
         }
    +  166   +
     
    +  167   +
         /**
    +  168   +
          * Returns the specified item from the collection.
    +  169   +
          *
     170   +
          * @param key the key to lookup the return value
    +  171   +
          * @return the NvdCveInfo object stored using the specified key
    +  172   +
          */
    +  173   +
         NvdCveInfo get(String key) {
    +  174  2
             return collection.get(key);
    +  175   +
         }
    +  176   +
     
    +  177   +
         @Override
    +  178   +
         public String toString() {
    +  179  0
             return "Updateable{" + "size=" + collection.size() + '}';
    +  180   +
         }
    +  181  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Dependency.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Dependency.html index d5328e036..df852a68e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Dependency.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Dependency.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    Dependency
    57%
    80/140
    12%
    15/124
    2.78
    Dependency
    59%
    83/140
    13%
    17/124
    2.78
     
    @@ -190,13 +190,13 @@
          * Constructs a new Dependency object.
     87  
          */
    -  88  42
         public Dependency() {
    -  89  42
             vendorEvidence = new EvidenceCollection();
    -  90  42
             productEvidence = new EvidenceCollection();
    -  91  42
             versionEvidence = new EvidenceCollection();
    -  92  42
             identifiers = new TreeSet<Identifier>();
    -  93  42
             vulnerabilities = new TreeSet<Vulnerability>(new VulnerabilityComparator());
    -  94  42
         }
    +  88  45
         public Dependency() {
    +  89  45
             vendorEvidence = new EvidenceCollection();
    +  90  45
             productEvidence = new EvidenceCollection();
    +  91  45
             versionEvidence = new EvidenceCollection();
    +  92  45
             identifiers = new TreeSet<Identifier>();
    +  93  45
             vulnerabilities = new TreeSet<Vulnerability>(new VulnerabilityComparator());
    +  94  45
         }
     95  
     
     96   @@ -211,13 +211,13 @@
          */
     101  
         public Dependency(File file) {
    -  102  24
             this();
    -  103  24
             this.actualFilePath = file.getPath();
    -  104  24
             this.filePath = this.actualFilePath;
    -  105  24
             this.fileName = file.getName();
    -  106  24
             this.fileExtension = FileUtils.getFileExtension(fileName);
    -  107  24
             determineHashes(file);
    -  108  24
         }
    +  102  27
             this();
    +  103  27
             this.actualFilePath = file.getPath();
    +  104  27
             this.filePath = this.actualFilePath;
    +  105  27
             this.fileName = file.getName();
    +  106  27
             this.fileExtension = FileUtils.getFileExtension(fileName);
    +  107  27
             determineHashes(file);
    +  108  27
         }
     109  
     
     110   @@ -232,7 +232,7 @@
          */
     115  
         public String getFileName() {
    -  116  63
             return this.fileName;
    +  116  79
             return this.fileName;
     117  
         }
     118   @@ -281,7 +281,7 @@
          */
     142  
         public String getActualFilePath() {
    -  143  49
             return this.actualFilePath;
    +  143  58
             return this.actualFilePath;
     144  
         }
     145   @@ -318,7 +318,7 @@
          */
     162  
         public String getFilePath() {
    -  163  7
             return this.filePath;
    +  163  10
             return this.filePath;
     164  
         }
     165   @@ -351,7 +351,7 @@
          */
     180  
         public String getFileExtension() {
    -  181  7
             return this.fileExtension;
    +  181  31
             return this.fileExtension;
     182  
         }
     183   @@ -368,7 +368,7 @@
          */
     189  
         public String getMd5sum() {
    -  190  2
             return this.md5sum;
    +  190  5
             return this.md5sum;
     191  
         }
     192   @@ -385,8 +385,8 @@
          */
     198  
         public void setMd5sum(String md5sum) {
    -  199  25
             this.md5sum = md5sum;
    -  200  25
         }
    +  199  28
             this.md5sum = md5sum;
    +  200  28
         }
     201  
     
     202   @@ -401,7 +401,7 @@
          */
     207  
         public String getSha1sum() {
    -  208  2
             return this.sha1sum;
    +  208  5
             return this.sha1sum;
     209  
         }
     210   @@ -418,8 +418,8 @@
          */
     216  
         public void setSha1sum(String sha1sum) {
    -  217  25
             this.sha1sum = sha1sum;
    -  218  25
         }
    +  217  28
             this.sha1sum = sha1sum;
    +  218  28
         }
     219  
     
     220   @@ -434,7 +434,7 @@
          */
     225  
         public Set<Identifier> getIdentifiers() {
    -  226  41
             return this.identifiers;
    +  226  78
             return this.identifiers;
     227  
         }
     228   @@ -492,8 +492,8 @@
          */
     257  
         public void addIdentifier(Identifier identifier) {
    -  258  32
             this.identifiers.add(identifier);
    -  259  32
         }
    +  258  60
             this.identifiers.add(identifier);
    +  259  60
         }
     260  
     
     261   @@ -525,7 +525,7 @@
          */
     275  
         public EvidenceCollection getEvidenceUsed() {
    -  276  1
             return EvidenceCollection.mergeUsed(this.productEvidence, this.vendorEvidence, this.versionEvidence);
    +  276  4
             return EvidenceCollection.mergeUsed(this.productEvidence, this.vendorEvidence, this.versionEvidence);
     277  
         }
     278   @@ -542,7 +542,7 @@
          */
     284  
         public EvidenceCollection getVendorEvidence() {
    -  285  255
             return this.vendorEvidence;
    +  285  347
             return this.vendorEvidence;
     286  
         }
     287   @@ -559,7 +559,7 @@
          */
     293  
         public EvidenceCollection getProductEvidence() {
    -  294  613
             return this.productEvidence;
    +  294  904
             return this.productEvidence;
     295  
         }
     296   @@ -576,7 +576,7 @@
          */
     302  
         public EvidenceCollection getVersionEvidence() {
    -  303  143
             return this.versionEvidence;
    +  303  246
             return this.versionEvidence;
     304  
         }
     305   @@ -585,7 +585,7 @@
          * A list of exceptions that occurred during analysis of this dependency.
     307  
          */
    -  308  42
         private List<Exception> analysisExceptions = new ArrayList<Exception>();
    +  308  45
         private List<Exception> analysisExceptions = new ArrayList<Exception>();
     309  
     
     310   @@ -600,7 +600,7 @@
          */
     315  
         public List<Exception> getAnalysisExceptions() {
    -  316  0
             return analysisExceptions;
    +  316  3
             return analysisExceptions;
     317  
         }
     318   @@ -657,7 +657,7 @@
          */
     346  
         public String getDescription() {
    -  347  8
             return description;
    +  347  15
             return description;
     348  
         }
     349   @@ -674,8 +674,8 @@
          */
     355  
         public void setDescription(String description) {
    -  356  15
             this.description = description;
    -  357  15
         }
    +  356  19
             this.description = description;
    +  357  19
         }
     358  
         /**
     359   @@ -698,7 +698,7 @@
          */
     368  
         public String getLicense() {
    -  369  4
             return license;
    +  369  11
             return license;
     370  
         }
     371   @@ -715,8 +715,8 @@
          */
     377  
         public void setLicense(String license) {
    -  378  5
             this.license = license;
    -  379  5
         }
    +  378  7
             this.license = license;
    +  379  7
         }
     380  
         /**
     381   @@ -739,7 +739,7 @@
          */
     390  
         public SortedSet<Vulnerability> getVulnerabilities() {
    -  391  0
             return vulnerabilities;
    +  391  12
             return vulnerabilities;
     392  
         }
     393   @@ -772,12 +772,12 @@
          */
     408  
         private void determineHashes(File file) {
    -  409  24
             String md5 = null;
    -  410  24
             String sha1 = null;
    +  409  27
             String md5 = null;
    +  410  27
             String sha1 = null;
     411  
             try {
    -  412  24
                 md5 = Checksum.getMD5Checksum(file);
    -  413  24
                 sha1 = Checksum.getSHA1Checksum(file);
    +  412  27
                 md5 = Checksum.getMD5Checksum(file);
    +  413  27
                 sha1 = Checksum.getSHA1Checksum(file);
     414  0
             } catch (IOException ex) {
     415  0
                 final String msg = String.format("Unable to read '%s' to determine hashes.", file.getName());
     416  0
                 Logger.getLogger(Dependency.class.getName()).log(Level.WARNING, msg);
    @@ -786,10 +786,10 @@  419  0
                 final String msg = "Unable to use MD5 of SHA1 checksums.";
     420  0
                 Logger.getLogger(Dependency.class.getName()).log(Level.WARNING, msg);
     421  0
                 Logger.getLogger(Dependency.class.getName()).log(Level.FINE, null, ex);
    -  422  24
             }
    -  423  24
             this.setMd5sum(md5);
    -  424  24
             this.setSha1sum(sha1);
    -  425  24
         }
    +  422  27
             }
    +  423  27
             this.setMd5sum(md5);
    +  424  27
             this.setSha1sum(sha1);
    +  425  27
         }
     426  
     
     427   @@ -812,7 +812,7 @@
          * A collection of related dependencies.
     437  
          */
    -  438  42
         private Set<Dependency> relatedDependencies = new TreeSet<Dependency>();
    +  438  45
         private Set<Dependency> relatedDependencies = new TreeSet<Dependency>();
     439  
     
     440   @@ -827,7 +827,7 @@
          */
     445  
         public Set<Dependency> getRelatedDependencies() {
    -  446  0
             return relatedDependencies;
    +  446  3
             return relatedDependencies;
     447  
         }
     448   @@ -993,23 +993,23 @@
         @Override
     549  
         public int hashCode() {
    -  550  5
             int hash = 3;
    -  551  5
             hash = 47 * hash + (this.actualFilePath != null ? this.actualFilePath.hashCode() : 0);
    -  552  5
             hash = 47 * hash + (this.filePath != null ? this.filePath.hashCode() : 0);
    -  553  5
             hash = 47 * hash + (this.fileName != null ? this.fileName.hashCode() : 0);
    -  554  5
             hash = 47 * hash + (this.fileExtension != null ? this.fileExtension.hashCode() : 0);
    -  555  5
             hash = 47 * hash + (this.md5sum != null ? this.md5sum.hashCode() : 0);
    -  556  5
             hash = 47 * hash + (this.sha1sum != null ? this.sha1sum.hashCode() : 0);
    -  557  5
             hash = 47 * hash + (this.identifiers != null ? this.identifiers.hashCode() : 0);
    -  558  5
             hash = 47 * hash + (this.vendorEvidence != null ? this.vendorEvidence.hashCode() : 0);
    -  559  5
             hash = 47 * hash + (this.productEvidence != null ? this.productEvidence.hashCode() : 0);
    -  560  5
             hash = 47 * hash + (this.versionEvidence != null ? this.versionEvidence.hashCode() : 0);
    -  561  5
             hash = 47 * hash + (this.analysisExceptions != null ? this.analysisExceptions.hashCode() : 0);
    -  562  5
             hash = 47 * hash + (this.description != null ? this.description.hashCode() : 0);
    -  563  5
             hash = 47 * hash + (this.license != null ? this.license.hashCode() : 0);
    -  564  5
             hash = 47 * hash + (this.vulnerabilities != null ? this.vulnerabilities.hashCode() : 0);
    -  565  5
             hash = 47 * hash + (this.relatedDependencies != null ? this.relatedDependencies.hashCode() : 0);
    -  566  5
             return hash;
    +  550  29
             int hash = 3;
    +  551  29
             hash = 47 * hash + (this.actualFilePath != null ? this.actualFilePath.hashCode() : 0);
    +  552  29
             hash = 47 * hash + (this.filePath != null ? this.filePath.hashCode() : 0);
    +  553  29
             hash = 47 * hash + (this.fileName != null ? this.fileName.hashCode() : 0);
    +  554  29
             hash = 47 * hash + (this.fileExtension != null ? this.fileExtension.hashCode() : 0);
    +  555  29
             hash = 47 * hash + (this.md5sum != null ? this.md5sum.hashCode() : 0);
    +  556  29
             hash = 47 * hash + (this.sha1sum != null ? this.sha1sum.hashCode() : 0);
    +  557  29
             hash = 47 * hash + (this.identifiers != null ? this.identifiers.hashCode() : 0);
    +  558  29
             hash = 47 * hash + (this.vendorEvidence != null ? this.vendorEvidence.hashCode() : 0);
    +  559  29
             hash = 47 * hash + (this.productEvidence != null ? this.productEvidence.hashCode() : 0);
    +  560  29
             hash = 47 * hash + (this.versionEvidence != null ? this.versionEvidence.hashCode() : 0);
    +  561  29
             hash = 47 * hash + (this.analysisExceptions != null ? this.analysisExceptions.hashCode() : 0);
    +  562  29
             hash = 47 * hash + (this.description != null ? this.description.hashCode() : 0);
    +  563  29
             hash = 47 * hash + (this.license != null ? this.license.hashCode() : 0);
    +  564  29
             hash = 47 * hash + (this.vulnerabilities != null ? this.vulnerabilities.hashCode() : 0);
    +  565  29
             hash = 47 * hash + (this.relatedDependencies != null ? this.relatedDependencies.hashCode() : 0);
    +  566  29
             return hash;
     567  
         }
     568   @@ -1037,6 +1037,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Evidence.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Evidence.html index b8ae8a1f1..248c947a2 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Evidence.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Evidence.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    Evidence
    46%
    23/49
    22%
    9/40
    2.294
    Evidence
    48%
    24/49
    25%
    10/40
    2.294
    Evidence$Confidence
    100%
    5/5
    N/A
    2.294
    @@ -68,7 +68,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     25  
      */
    -  26  98438
     public class Evidence implements Comparable<Evidence> {
    +  26  122292
     public class Evidence implements Comparable<Evidence> {
     27  
     
     28   @@ -77,7 +77,7 @@
          * The confidence that the evidence is "high" quality.
     30  
          */
    -  31  32
         public enum Confidence {
    +  31  56
         public enum Confidence {
     32  
     
     33   @@ -138,12 +138,12 @@
          * @param confidence the confidence of the evidence.
     64  
          */
    -  65  57383
         public Evidence(String source, String name, String value, Confidence confidence) {
    -  66  57383
             this.source = source;
    -  67  57383
             this.name = name;
    -  68  57383
             this.value = value;
    -  69  57383
             this.confidence = confidence;
    -  70  57383
         }
    +  65  67264
         public Evidence(String source, String name, String value, Confidence confidence) {
    +  66  67264
             this.source = source;
    +  67  67264
             this.name = name;
    +  68  67264
             this.value = value;
    +  69  67264
             this.confidence = confidence;
    +  70  67264
         }
     71  
         /**
     72   @@ -166,7 +166,7 @@
          */
     81  
         public String getName() {
    -  82  13
             return name;
    +  82  52
             return name;
     83  
         }
     84   @@ -207,7 +207,7 @@
          */
     103  
         public String getSource() {
    -  104  2
             return source;
    +  104  41
             return source;
     105  
         }
     106   @@ -248,8 +248,8 @@
          */
     125  
         public String getValue() {
    -  126  4448
             used = true;
    -  127  4448
             return value;
    +  126  6321
             used = true;
    +  127  6321
             return value;
     128  
         }
     129   @@ -272,8 +272,8 @@
          */
     138  
         public String getValue(Boolean setUsed) {
    -  139  116
             used = used || setUsed;
    -  140  116
             return value;
    +  139  166
             used = used || setUsed;
    +  140  166
             return value;
     141  
         }
     142   @@ -314,7 +314,7 @@
          */
     161  
         public boolean isUsed() {
    -  162  6217
             return used;
    +  162  8846
             return used;
     163  
         }
     164   @@ -355,7 +355,7 @@
          */
     183  
         public Confidence getConfidence() {
    -  184  1664
             return confidence;
    +  184  2249
             return confidence;
     185  
         }
     186   @@ -471,29 +471,29 @@
          */
     249  
         public int compareTo(Evidence o) {
    -  250  98438
             if (source.equals(o.source)) {
    -  251  81974
                 if (name.equals(o.name)) {
    -  252  81778
                     if (value.equals(o.value)) {
    -  253  57082
                         if (confidence.equals(o.confidence)) {
    -  254  57082
                             return 0; //they are equal
    +  250  122292
             if (source.equals(o.source)) {
    +  251  95835
                 if (name.equals(o.name)) {
    +  252  95561
                     if (value.equals(o.value)) {
    +  253  66918
                         if (confidence.equals(o.confidence)) {
    +  254  66913
                             return 0; //they are equal
     255  
                         } else {
    -  256  0
                             return confidence.compareTo(o.confidence);
    +  256  5
                             return confidence.compareTo(o.confidence);
     257  
                         }
     258  
                     } else {
    -  259  24696
                         return value.compareToIgnoreCase(o.value);
    +  259  28643
                         return value.compareToIgnoreCase(o.value);
     260  
                     }
     261  
                 } else {
    -  262  196
                     return name.compareToIgnoreCase(o.name);
    +  262  274
                     return name.compareToIgnoreCase(o.name);
     263  
                 }
     264  
             } else {
    -  265  16464
                 return source.compareToIgnoreCase(o.source);
    +  265  26457
                 return source.compareToIgnoreCase(o.source);
     266  
             }
     267   @@ -502,6 +502,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.EvidenceCollection.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.EvidenceCollection.html index b2568e383..cad0ad596 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.EvidenceCollection.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.EvidenceCollection.html @@ -112,10 +112,10 @@
          * collection.
     45  
          */
    -  46  279
         private static final Filter<Evidence> HIGHEST_CONFIDENCE = new Filter<Evidence>() {
    +  46  388
         private static final Filter<Evidence> HIGHEST_CONFIDENCE = new Filter<Evidence>() {
     47  
             public boolean passes(Evidence evidence) {
    -  48  278
                 return evidence.getConfidence() == Evidence.Confidence.HIGHEST;
    +  48  387
                 return evidence.getConfidence() == Evidence.Confidence.HIGHEST;
     49  
             }
     50   @@ -128,10 +128,10 @@
          * collection.
     54  
          */
    -  55  276
         private static final Filter<Evidence> HIGH_CONFIDENCE = new Filter<Evidence>() {
    +  55  385
         private static final Filter<Evidence> HIGH_CONFIDENCE = new Filter<Evidence>() {
     56  
             public boolean passes(Evidence evidence) {
    -  57  275
                 return evidence.getConfidence() == Evidence.Confidence.HIGH;
    +  57  384
                 return evidence.getConfidence() == Evidence.Confidence.HIGH;
     58  
             }
     59   @@ -147,7 +147,7 @@  64  1
         private static final Filter<Evidence> MEDIUM_CONFIDENCE = new Filter<Evidence>() {
     65  
             public boolean passes(Evidence evidence) {
    -  66  271
                 return evidence.getConfidence() == Evidence.Confidence.MEDIUM;
    +  66  373
                 return evidence.getConfidence() == Evidence.Confidence.MEDIUM;
     67  
             }
     68   @@ -161,7 +161,7 @@  72  1
         private static final Filter<Evidence> LOW_CONFIDENCE = new Filter<Evidence>() {
     73  
             public boolean passes(Evidence evidence) {
    -  74  472
                 return evidence.getConfidence() == Evidence.Confidence.LOW;
    +  74  630
                 return evidence.getConfidence() == Evidence.Confidence.LOW;
     75  
             }
     76   @@ -177,7 +177,7 @@  81  1
         private static final Filter<Evidence> EVIDENCE_USED = new Filter<Evidence>() {
     82  
             public boolean passes(Evidence evidence) {
    -  83  6215
                 return evidence.isUsed();
    +  83  8787
                 return evidence.isUsed();
     84  
             }
     85   @@ -200,15 +200,15 @@
          */
     94  
         public final Iterable<Evidence> iterator(Evidence.Confidence confidence) {
    -  95  207
             if (confidence == Evidence.Confidence.HIGHEST) {
    -  96  47
                 return EvidenceCollection.HIGHEST_CONFIDENCE.filter(this.list);
    -  97  160
             } else if (confidence == Evidence.Confidence.HIGH) {
    -  98  47
                 return EvidenceCollection.HIGH_CONFIDENCE.filter(this.list);
    -  99  113
             } else if (confidence == Evidence.Confidence.MEDIUM) {
    -  100  46
                 return EvidenceCollection.MEDIUM_CONFIDENCE.filter(this.list);
    +  95  332
             if (confidence == Evidence.Confidence.HIGHEST) {
    +  96  77
                 return EvidenceCollection.HIGHEST_CONFIDENCE.filter(this.list);
    +  97  255
             } else if (confidence == Evidence.Confidence.HIGH) {
    +  98  77
                 return EvidenceCollection.HIGH_CONFIDENCE.filter(this.list);
    +  99  178
             } else if (confidence == Evidence.Confidence.MEDIUM) {
    +  100  75
                 return EvidenceCollection.MEDIUM_CONFIDENCE.filter(this.list);
     101  
             } else {
    -  102  67
                 return EvidenceCollection.LOW_CONFIDENCE.filter(this.list);
    +  102  103
                 return EvidenceCollection.LOW_CONFIDENCE.filter(this.list);
     103  
             }
     104   @@ -237,10 +237,10 @@
          * Creates a new EvidenceCollection.
     116  
          */
    -  117  128
         public EvidenceCollection() {
    -  118  128
             list = new TreeSet<Evidence>();
    -  119  128
             weightedStrings = new HashSet<String>();
    -  120  128
         }
    +  117  140
         public EvidenceCollection() {
    +  118  140
             list = new TreeSet<Evidence>();
    +  119  140
             weightedStrings = new HashSet<String>();
    +  120  140
         }
     121  
     
     122   @@ -255,8 +255,8 @@
          */
     127  
         public void addEvidence(Evidence e) {
    -  128  57366
             list.add(e);
    -  129  57366
         }
    +  128  67295
             list.add(e);
    +  129  67295
         }
     130  
     
     131   @@ -279,9 +279,9 @@
          */
     140  
         public void addEvidence(String source, String name, String value, Evidence.Confidence confidence) {
    -  141  57363
             final Evidence e = new Evidence(source, name, value, confidence);
    -  142  57363
             addEvidence(e);
    -  143  57363
         }
    +  141  67235
             final Evidence e = new Evidence(source, name, value, confidence);
    +  142  67235
             addEvidence(e);
    +  143  67235
         }
     144  
     
     145   @@ -316,8 +316,8 @@
          */
     160  
         public void addWeighting(String str) {
    -  161  41
             weightedStrings.add(str);
    -  162  41
         }
    +  161  51
             weightedStrings.add(str);
    +  162  51
         }
     163  
     
     164   @@ -334,7 +334,7 @@
          */
     170  
         public Set<String> getWeighting() {
    -  171  81
             return weightedStrings;
    +  171  105
             return weightedStrings;
     172  
         }
     173   @@ -351,7 +351,7 @@
          */
     179  
         public Set<Evidence> getEvidence() {
    -  180  12
             return list;
    +  180  18
             return list;
     181  
         }
     182   @@ -432,7 +432,7 @@
          */
     227  
         public Iterator<Evidence> iterator() {
    -  228  758
             return list.iterator();
    +  228  1143
             return list.iterator();
     229  
         }
     230   @@ -451,23 +451,23 @@
          */
     237  
         public boolean containsUsedString(String text) {
    -  238  749
             if (text == null) {
    +  238  1128
             if (text == null) {
     239  0
                 return false;
     240  
             }
    -  241  749
             final String textToTest = text.toLowerCase();
    +  241  1128
             final String textToTest = text.toLowerCase();
     242  
     
    -  243  749
             for (Evidence e : EvidenceCollection.EVIDENCE_USED.filter(this)) {
    +  243  1128
             for (Evidence e : EvidenceCollection.EVIDENCE_USED.filter(this)) {
     244  
                 //TODO consider changing the regex to only compare alpha-numeric (i.e. strip everything else)
    -  245  4102
                 final String value = urlCorrection(e.getValue().toLowerCase()).replaceAll("[\\s_-]", "");
    -  246  4102
                 if (value.contains(textToTest)) {
    -  247  269
                     return true;
    +  245  5814
                 final String value = urlCorrection(e.getValue().toLowerCase()).replaceAll("[\\s_-]", "");
    +  246  5814
                 if (value.contains(textToTest)) {
    +  247  393
                     return true;
     248  
                 }
    -  249  3833
             }
    -  250  480
             return false;
    +  249  5421
             }
    +  250  735
             return false;
     251  
         }
     252   @@ -522,14 +522,14 @@
          */
     281  
         public boolean contains(Evidence.Confidence confidence) {
    -  282  80
             for (Evidence e : list) {
    -  283  366
                 if (e.getConfidence().equals(confidence)) {
    -  284  78
                     return true;
    +  282  104
             for (Evidence e : list) {
    +  283  473
                 if (e.getConfidence().equals(confidence)) {
    +  284  101
                     return true;
     285  
                 }
     286  
             }
    -  287  2
             return false;
    +  287  3
             return false;
     288  
         }
     289   @@ -550,18 +550,18 @@
          */
     297  
         public static EvidenceCollection mergeUsed(EvidenceCollection... ec) {
    -  298  1
             final EvidenceCollection ret = new EvidenceCollection();
    -  299  4
             for (EvidenceCollection col : ec) {
    -  300  3
                 for (Evidence e : col.list) {
    -  301  2
                     if (e.isUsed()) {
    -  302  1
                         ret.addEvidence(e);
    +  298  4
             final EvidenceCollection ret = new EvidenceCollection();
    +  299  16
             for (EvidenceCollection col : ec) {
    +  300  12
                 for (Evidence e : col.list) {
    +  301  59
                     if (e.isUsed()) {
    +  302  58
                         ret.addEvidence(e);
     303  
                     }
     304  
                 }
     305  
             }
    -  306  1
             return ret;
    +  306  4
             return ret;
     307  
         }
     308   @@ -627,7 +627,7 @@
          */
     343  
         public int size() {
    -  344  100
             return list.size();
    +  344  129
             return list.size();
     345  
         }
     346   @@ -666,22 +666,22 @@
          */
     363  
         private String urlCorrection(String value) {
    -  364  4102
             if (value == null || !UrlStringUtils.containsUrl(value)) {
    -  365  4027
                 return value;
    +  364  5814
             if (value == null || !UrlStringUtils.containsUrl(value)) {
    +  365  5681
                 return value;
     366  
             }
    -  367  75
             final StringBuilder sb = new StringBuilder(value.length());
    -  368  75
             final String[] parts = value.split("\\s");
    -  369  150
             for (String part : parts) {
    -  370  75
                 if (UrlStringUtils.isUrl(part)) {
    +  367  133
             final StringBuilder sb = new StringBuilder(value.length());
    +  368  133
             final String[] parts = value.split("\\s");
    +  369  266
             for (String part : parts) {
    +  370  133
                 if (UrlStringUtils.isUrl(part)) {
     371  
                     try {
    -  372  75
                         final List<String> data = UrlStringUtils.extractImportantUrlData(part);
    -  373  75
                         sb.append(' ').append(StringUtils.join(data, ' '));
    +  372  133
                         final List<String> data = UrlStringUtils.extractImportantUrlData(part);
    +  373  133
                         sb.append(' ').append(StringUtils.join(data, ' '));
     374  0
                     } catch (MalformedURLException ex) {
     375  0
                         Logger.getLogger(EvidenceCollection.class.getName()).log(Level.INFO, "error parsing " + part, ex);
     376  0
                         sb.append(' ').append(part);
    -  377  75
                     }
    +  377  133
                     }
     378  
                 } else {
     379  0
                     sb.append(' ').append(part);
    @@ -689,13 +689,13 @@
                 }
     381  
             }
    -  382  75
             return sb.toString().trim();
    +  382  133
             return sb.toString().trim();
     383  
         }
     384  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Identifier.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Identifier.html index 7b359423b..7e8b59928 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Identifier.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Identifier.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    Identifier
    25%
    10/39
    4%
    1/22
    2
    Identifier
    41%
    16/39
    13%
    3/22
    2
     
    @@ -65,7 +65,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     24  
      */
    -  25  51
     public class Identifier implements Comparable<Identifier> {
    +  25  94
     public class Identifier implements Comparable<Identifier> {
     26  
     
     27   @@ -82,11 +82,11 @@
          * @param url the identifier url.
     33  
          */
    -  34  110
         public Identifier(String type, String value, String url) {
    -  35  110
             this.type = type;
    -  36  110
             this.value = value;
    -  37  110
             this.url = url;
    -  38  110
         }
    +  34  194
         public Identifier(String type, String value, String url) {
    +  35  194
             this.type = type;
    +  36  194
             this.value = value;
    +  37  194
             this.url = url;
    +  38  194
         }
     39  
     
     40   @@ -132,7 +132,7 @@
          */
     62  
         public String getValue() {
    -  63  103
             return value;
    +  63  255
             return value;
     64  
         }
     65   @@ -173,7 +173,7 @@
          */
     84  
         public String getUrl() {
    -  85  0
             return url;
    +  85  11
             return url;
     86  
         }
     87   @@ -214,7 +214,7 @@
          */
     106  
         public String getType() {
    -  107  26
             return type;
    +  107  63
             return type;
     108  
         }
     109   @@ -255,7 +255,7 @@
          */
     128  
         public String getDescription() {
    -  129  0
             return description;
    +  129  6
             return description;
     130  
         }
     131   @@ -306,10 +306,10 @@
         @Override
     160  
         public int hashCode() {
    -  161  0
             int hash = 5;
    -  162  0
             hash = 53 * hash + (this.value != null ? this.value.hashCode() : 0);
    -  163  0
             hash = 53 * hash + (this.type != null ? this.type.hashCode() : 0);
    -  164  0
             return hash;
    +  161  19
             int hash = 5;
    +  162  19
             hash = 53 * hash + (this.value != null ? this.value.hashCode() : 0);
    +  163  19
             hash = 53 * hash + (this.type != null ? this.type.hashCode() : 0);
    +  164  19
             return hash;
     165  
         }
     166   @@ -349,17 +349,17 @@
          */
     184  
         public int compareTo(Identifier o) {
    -  185  90
             if (o == null) {
    +  185  161
             if (o == null) {
     186  0
                 return -1;
     187  
             }
    -  188  90
             return this.value.compareTo(o.value);
    +  188  161
             return this.value.compareTo(o.value);
     189  
         }
     190  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Reference.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Reference.html index 9cca1059a..c60f365ba 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Reference.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Reference.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    Reference
    32%
    11/34
    8%
    3/34
    3.444
    Reference
    41%
    14/34
    8%
    3/34
    3.444
     
    @@ -73,7 +73,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     28  
      */
    -  29  461
     public class Reference implements Serializable, Comparable<Reference> {
    +  29  1198
     public class Reference implements Serializable, Comparable<Reference> {
     30  
     
     31   @@ -106,7 +106,7 @@
          */
     45  
         public String getName() {
    -  46  0
             return name;
    +  46  208
             return name;
     47  
         }
     48   @@ -123,8 +123,8 @@
          */
     54  
         public void setName(String name) {
    -  55  176
             this.name = name;
    -  56  176
         }
    +  55  391
             this.name = name;
    +  56  391
         }
     57  
         /**
     58   @@ -147,7 +147,7 @@
          */
     67  
         public String getUrl() {
    -  68  0
             return url;
    +  68  208
             return url;
     69  
         }
     70   @@ -164,8 +164,8 @@
          */
     76  
         public void setUrl(String url) {
    -  77  176
             this.url = url;
    -  78  176
         }
    +  77  391
             this.url = url;
    +  78  391
         }
     79  
         /**
     80   @@ -188,7 +188,7 @@
          */
     89  
         public String getSource() {
    -  90  0
             return source;
    +  90  208
             return source;
     91  
         }
     92   @@ -205,8 +205,8 @@
          */
     98  
         public void setSource(String source) {
    -  99  176
             this.source = source;
    -  100  176
         }
    +  99  391
             this.source = source;
    +  100  391
         }
     101  
     
     102   @@ -266,8 +266,8 @@
          */
     138  
         public int compareTo(Reference o) {
    -  139  285
             if (source.equals(o.source)) {
    -  140  45
                 if (name.equals(o.name)) {
    +  139  807
             if (source.equals(o.source)) {
    +  140  141
                 if (name.equals(o.name)) {
     141  0
                     if (url.equals(o.url)) {
     142  0
                         return 0; //they are equal
     143   @@ -277,12 +277,12 @@
                     }
     146  
                 } else {
    -  147  45
                     return name.compareTo(o.name);
    +  147  141
                     return name.compareTo(o.name);
     148  
                 }
     149  
             } else {
    -  150  240
                 return source.compareTo(o.source);
    +  150  666
                 return source.compareTo(o.source);
     151  
             }
     152   @@ -291,6 +291,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Vulnerability.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Vulnerability.html index 68d0e0792..357a8b823 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Vulnerability.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Vulnerability.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    Vulnerability
    57%
    39/68
    18%
    3/16
    1.312
    Vulnerability
    66%
    45/68
    18%
    3/16
    1.312
     
    @@ -77,7 +77,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     30  
      */
    -  31  45
     public class Vulnerability implements Serializable, Comparable<Vulnerability> {
    +  31  77
     public class Vulnerability implements Serializable, Comparable<Vulnerability> {
     32  
     
     33   @@ -110,7 +110,7 @@
          */
     47  
         public String getName() {
    -  48  0
             return name;
    +  48  192
             return name;
     49  
         }
     50   @@ -127,8 +127,8 @@
          */
     56  
         public void setName(String name) {
    -  57  45
             this.name = name;
    -  58  45
         }
    +  57  77
             this.name = name;
    +  58  77
         }
     59  
         /**
     60   @@ -151,7 +151,7 @@
          */
     69  
         public String getDescription() {
    -  70  0
             return description;
    +  70  30
             return description;
     71  
         }
     72   @@ -168,15 +168,15 @@
          */
     78  
         public void setDescription(String description) {
    -  79  45
             this.description = description;
    -  80  45
         }
    +  79  77
             this.description = description;
    +  80  77
         }
     81  
         /**
     82  
          * References for this vulnerability.
     83  
          */
    -  84  45
         private SortedSet<Reference> references = new TreeSet<Reference>();
    +  84  77
         private SortedSet<Reference> references = new TreeSet<Reference>();
     85  
     
     86   @@ -191,7 +191,7 @@
          */
     91  
         public Set<Reference> getReferences() {
    -  92  0
             return references;
    +  92  30
             return references;
     93  
         }
     94   @@ -244,19 +244,19 @@
          */
     120  
         public void addReference(String referenceSource, String referenceName, String referenceUrl) {
    -  121  86
             final Reference ref = new Reference();
    -  122  86
             ref.setSource(referenceSource);
    -  123  86
             ref.setName(referenceName);
    -  124  86
             ref.setUrl(referenceUrl);
    -  125  86
             this.references.add(ref);
    -  126  86
         }
    +  121  301
             final Reference ref = new Reference();
    +  122  301
             ref.setSource(referenceSource);
    +  123  301
             ref.setName(referenceName);
    +  124  301
             ref.setUrl(referenceUrl);
    +  125  301
             this.references.add(ref);
    +  126  301
         }
     127  
         /**
     128  
          * A set of vulnerable software.
     129  
          */
    -  130  45
         private SortedSet<VulnerableSoftware> vulnerableSoftware = new TreeSet<VulnerableSoftware>();
    +  130  77
         private SortedSet<VulnerableSoftware> vulnerableSoftware = new TreeSet<VulnerableSoftware>();
     131  
     
     132   @@ -271,7 +271,7 @@
          */
     137  
         public Set<VulnerableSoftware> getVulnerableSoftware() {
    -  138  0
             return vulnerableSoftware;
    +  138  30
             return vulnerableSoftware;
     139  
         }
     140   @@ -306,7 +306,7 @@
          */
     156  
         public boolean addVulnerableSoftware(String cpe) {
    -  157  1212
             return addVulnerableSoftware(cpe, null);
    +  157  3200
             return addVulnerableSoftware(cpe, null);
     158  
         }
     159   @@ -329,13 +329,13 @@
          */
     168  
         public boolean addVulnerableSoftware(String cpe, String previousVersion) {
    -  169  1223
             final VulnerableSoftware vs = new VulnerableSoftware();
    -  170  1223
             vs.setCpe(cpe);
    -  171  1223
             if (previousVersion != null) {
    -  172  11
                 vs.setPreviousVersion(previousVersion);
    +  169  3237
             final VulnerableSoftware vs = new VulnerableSoftware();
    +  170  3237
             vs.setCpe(cpe);
    +  171  3237
             if (previousVersion != null) {
    +  172  37
                 vs.setPreviousVersion(previousVersion);
     173  
             }
    -  174  1223
             return updateVulnerableSoftware(vs);
    +  174  3237
             return updateVulnerableSoftware(vs);
     175  
         }
     176   @@ -354,11 +354,11 @@
          */
     183  
         public boolean updateVulnerableSoftware(VulnerableSoftware vulnSoftware) {
    -  184  1223
             if (vulnerableSoftware.contains(vulnSoftware)) {
    +  184  3237
             if (vulnerableSoftware.contains(vulnSoftware)) {
     185  0
                 vulnerableSoftware.remove(vulnSoftware);
     186  
             }
    -  187  1223
             return vulnerableSoftware.add(vulnSoftware);
    +  187  3237
             return vulnerableSoftware.add(vulnSoftware);
     188  
         }
     189   @@ -383,7 +383,7 @@
          */
     199  
         public String getCwe() {
    -  200  0
             return cwe;
    +  200  58
             return cwe;
     201  
         }
     202   @@ -400,8 +400,8 @@
          */
     208  
         public void setCwe(String cwe) {
    -  209  37
             this.cwe = cwe;
    -  210  37
         }
    +  209  69
             this.cwe = cwe;
    +  210  69
         }
     211  
         /**
     212   @@ -424,7 +424,7 @@
          */
     221  
         public float getCvssScore() {
    -  222  0
             return cvssScore;
    +  222  89
             return cvssScore;
     223  
         }
     224   @@ -441,8 +441,8 @@
          */
     230  
         public void setCvssScore(float cvssScore) {
    -  231  44
             this.cvssScore = cvssScore;
    -  232  44
         }
    +  231  76
             this.cvssScore = cvssScore;
    +  232  76
         }
     233  
         /**
     234   @@ -482,8 +482,8 @@
          */
     252  
         public void setCvssAccessVector(String cvssAccessVector) {
    -  253  44
             this.cvssAccessVector = cvssAccessVector;
    -  254  44
         }
    +  253  76
             this.cvssAccessVector = cvssAccessVector;
    +  254  76
         }
     255  
         /**
     256   @@ -523,8 +523,8 @@
          */
     274  
         public void setCvssAccessComplexity(String cvssAccessComplexity) {
    -  275  44
             this.cvssAccessComplexity = cvssAccessComplexity;
    -  276  44
         }
    +  275  76
             this.cvssAccessComplexity = cvssAccessComplexity;
    +  276  76
         }
     277  
         /**
     278   @@ -564,8 +564,8 @@
          */
     296  
         public void setCvssAuthentication(String cvssAuthentication) {
    -  297  44
             this.cvssAuthentication = cvssAuthentication;
    -  298  44
         }
    +  297  76
             this.cvssAuthentication = cvssAuthentication;
    +  298  76
         }
     299  
         /**
     300   @@ -605,8 +605,8 @@
          */
     318  
         public void setCvssConfidentialityImpact(String cvssConfidentialityImpact) {
    -  319  44
             this.cvssConfidentialityImpact = cvssConfidentialityImpact;
    -  320  44
         }
    +  319  76
             this.cvssConfidentialityImpact = cvssConfidentialityImpact;
    +  320  76
         }
     321  
         /**
     322   @@ -646,8 +646,8 @@
          */
     340  
         public void setCvssIntegrityImpact(String cvssIntegrityImpact) {
    -  341  44
             this.cvssIntegrityImpact = cvssIntegrityImpact;
    -  342  44
         }
    +  341  76
             this.cvssIntegrityImpact = cvssIntegrityImpact;
    +  342  76
         }
     343  
         /**
     344   @@ -687,8 +687,8 @@
          */
     362  
         public void setCvssAvailabilityImpact(String cvssAvailabilityImpact) {
    -  363  44
             this.cvssAvailabilityImpact = cvssAvailabilityImpact;
    -  364  44
         }
    +  363  76
             this.cvssAvailabilityImpact = cvssAvailabilityImpact;
    +  364  76
         }
     365  
     
     366   @@ -747,6 +747,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerabilityComparator.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerabilityComparator.html index 94d32dd83..20b28b61f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerabilityComparator.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerabilityComparator.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    VulnerabilityComparator
    50%
    1/2
    N/A
    1
    VulnerabilityComparator
    100%
    2/2
    N/A
    1
     
    @@ -73,7 +73,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     28  
      */
    -  29  42
     public class VulnerabilityComparator implements Comparator<Vulnerability>, Serializable {
    +  29  126
     public class VulnerabilityComparator implements Comparator<Vulnerability>, Serializable {
     30  
     
     31   @@ -102,13 +102,13 @@
          */
     43  
         public int compare(Vulnerability o1, Vulnerability o2) {
    -  44  0
             return o2.getName().compareTo(o1.getName());
    +  44  81
             return o2.getName().compareTo(o1.getName());
     45  
         }
     46  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerableSoftware.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerableSoftware.html index 52c0f4921..871b9f3f7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerableSoftware.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerableSoftware.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    VulnerableSoftware
    74%
    68/91
    77%
    57/74
    3.278
    VulnerableSoftware
    76%
    70/91
    81%
    60/74
    3.278
     
    @@ -83,7 +83,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     33  
      */
    -  34  17568
     public class VulnerableSoftware extends IndexEntry implements Serializable, Comparable<VulnerableSoftware> {
    +  34  59027
     public class VulnerableSoftware extends IndexEntry implements Serializable, Comparable<VulnerableSoftware> {
     35  
     
     36   @@ -110,14 +110,14 @@
         public void setCpe(String cpe) {
     47  
             try {
    -  48  3089
                 parseName(cpe);
    +  48  6904
                 parseName(cpe);
     49  0
             } catch (UnsupportedEncodingException ex) {
     50  0
                 final String msg = String.format("Character encoding is unsupported for CPE '%s'.", cpe);
     51  0
                 Logger.getLogger(VulnerableSoftware.class.getName()).log(Level.WARNING, msg);
     52  0
                 Logger.getLogger(VulnerableSoftware.class.getName()).log(Level.FINE, null, ex);
     53  0
                 setName(cpe);
    -  54  3089
             }
    -  55  3089
         }
    +  54  6904
             }
    +  55  6904
         }
     56  
     
     57   @@ -148,19 +148,19 @@
         @Override
     70  
         public void parseName(String cpeName) throws UnsupportedEncodingException {
    -  71  3484
             this.name = cpeName;
    -  72  3484
             if (cpeName != null && cpeName.length() > 7) {
    -  73  3484
                 final String[] data = cpeName.substring(7).split(":");
    -  74  3484
                 if (data.length >= 1) {
    -  75  3484
                     this.setVendor(URLDecoder.decode(data[0].replace("+", "%2B"), "UTF-8")); //.replaceAll("[_-]", " ")
    -  76  3484
                     if (data.length >= 2) {
    -  77  3484
                         this.setProduct(URLDecoder.decode(data[1].replace("+", "%2B"), "UTF-8")); //.replaceAll("[_-]", " ")
    -  78  3484
                         if (data.length >= 3) {
    -  79  3476
                             version = URLDecoder.decode(data[2].replace("+", "%2B"), "UTF-8");
    -  80  3476
                             if (data.length >= 4) {
    -  81  667
                                 revision = URLDecoder.decode(data[3].replace("+", "%2B"), "UTF-8");
    -  82  667
                                 if (data.length >= 5) {
    -  83  0
                                     edition = URLDecoder.decode(data[4].replace("+", "%2B"), "UTF-8");
    +  71  8917
             this.name = cpeName;
    +  72  8917
             if (cpeName != null && cpeName.length() > 7) {
    +  73  8917
                 final String[] data = cpeName.substring(7).split(":");
    +  74  8917
                 if (data.length >= 1) {
    +  75  8917
                     this.setVendor(URLDecoder.decode(data[0].replace("+", "%2B"), "UTF-8")); //.replaceAll("[_-]", " ")
    +  76  8917
                     if (data.length >= 2) {
    +  77  8917
                         this.setProduct(URLDecoder.decode(data[1].replace("+", "%2B"), "UTF-8")); //.replaceAll("[_-]", " ")
    +  78  8917
                         if (data.length >= 3) {
    +  79  8901
                             version = URLDecoder.decode(data[2].replace("+", "%2B"), "UTF-8");
    +  80  8901
                             if (data.length >= 4) {
    +  81  2356
                                 revision = URLDecoder.decode(data[3].replace("+", "%2B"), "UTF-8");
    +  82  2356
                                 if (data.length >= 5) {
    +  83  1
                                     edition = URLDecoder.decode(data[4].replace("+", "%2B"), "UTF-8");
     84  
                                 }
     85   @@ -173,7 +173,7 @@
                 }
     89  
             }
    -  90  3484
         }
    +  90  8917
         }
     91  
         /**
     92   @@ -196,7 +196,7 @@
          */
     101  
         public boolean hasPreviousVersion() {
    -  102  0
             return previousVersion != null;
    +  102  1924
             return previousVersion != null;
     103  
         }
     104   @@ -230,8 +230,8 @@
          */
     119  
         public void setPreviousVersion(String previousVersion) {
    -  120  12
             this.previousVersion = previousVersion;
    -  121  12
         }
    +  120  38
             this.previousVersion = previousVersion;
    +  121  38
         }
     122  
     
     123   @@ -284,9 +284,9 @@
         @Override
     151  
         public int hashCode() {
    -  152  1861
             int hash = 7;
    -  153  1861
             hash = 83 * hash + (this.getName() != null ? this.getName().hashCode() : 0);
    -  154  1861
             return hash;
    +  152  3662
             int hash = 7;
    +  153  3662
             hash = 83 * hash + (this.getName() != null ? this.getName().hashCode() : 0);
    +  154  3662
             return hash;
     155  
         }
     156   @@ -328,23 +328,23 @@
         @Override
     175  
         public int compareTo(VulnerableSoftware vs) {
    -  176  14085
             int result = 0;
    -  177  14085
             final String[] left = this.getName().split(":");
    -  178  14085
             final String[] right = vs.getName().split(":");
    -  179  14085
             final int max = (left.length <= right.length) ? left.length : right.length;
    -  180  14085
             if (max > 0) {
    -  181  84428
                 for (int i = 0; result == 0 && i < max; i++) {
    -  182  70343
                     final String[] subLeft = left[i].split("\\.");
    -  183  70343
                     final String[] subRight = right[i].split("\\.");
    -  184  70343
                     final int subMax = (subLeft.length <= subRight.length) ? subLeft.length : subRight.length;
    -  185  70343
                     if (subMax > 0) {
    -  186  162013
                         for (int x = 0; result == 0 && x < subMax; x++) {
    -  187  91670
                             if (isPositiveInteger(subLeft[x]) && isPositiveInteger(subRight[x])) {
    -  188  34746
                                 final int iLeft = Integer.parseInt(subLeft[x]);
    -  189  34746
                                 final int iRight = Integer.parseInt(subRight[x]);
    -  190  34746
                                 if (iLeft != iRight) {
    -  191  13134
                                     if (iLeft > iRight) {
    -  192  9674
                                         result = 2;
    +  176  50111
             int result = 0;
    +  177  50111
             final String[] left = this.getName().split(":");
    +  178  50111
             final String[] right = vs.getName().split(":");
    +  179  50111
             final int max = (left.length <= right.length) ? left.length : right.length;
    +  180  50111
             if (max > 0) {
    +  181  302866
                 for (int i = 0; result == 0 && i < max; i++) {
    +  182  252755
                     final String[] subLeft = left[i].split("\\.");
    +  183  252755
                     final String[] subRight = right[i].split("\\.");
    +  184  252755
                     final int subMax = (subLeft.length <= subRight.length) ? subLeft.length : subRight.length;
    +  185  252755
                     if (subMax > 0) {
    +  186  567549
                         for (int x = 0; result == 0 && x < subMax; x++) {
    +  187  314794
                             if (isPositiveInteger(subLeft[x]) && isPositiveInteger(subRight[x])) {
    +  188  109094
                                 final int iLeft = Integer.parseInt(subLeft[x]);
    +  189  109094
                                 final int iRight = Integer.parseInt(subRight[x]);
    +  190  109094
                                 if (iLeft != iRight) {
    +  191  42544
                                     if (iLeft > iRight) {
    +  192  39084
                                         result = 2;
     193  
                                     } else {
     194  3460
                                         result = -2;
    @@ -352,18 +352,18 @@
                                     }
     196  
                                 }
    -  197  34746
                             } else {
    -  198  56924
                                 result = subLeft[x].compareToIgnoreCase(subRight[x]);
    +  197  109094
                             } else {
    +  198  205700
                                 result = subLeft[x].compareToIgnoreCase(subRight[x]);
     199  
                             }
     200  
                         }
    -  201  70343
                         if (result == 0) {
    -  202  56539
                             if (subLeft.length > subRight.length) {
    -  203  250
                                 result = 2;
    +  201  252755
                         if (result == 0) {
    +  202  204705
                             if (subLeft.length > subRight.length) {
    +  203  1440
                                 result = 2;
     204  
                             }
    -  205  56539
                             if (subRight.length > subLeft.length) {
    +  205  204705
                             if (subRight.length > subLeft.length) {
     206  7
                                 result = -2;
     207  
                             }
    @@ -376,12 +376,12 @@
                     }
     212  
                 }
    -  213  14085
                 if (result == 0) {
    -  214  24
                     if (left.length > right.length) {
    -  215  14
                         result = 2;
    +  213  50111
                 if (result == 0) {
    +  214  614
                     if (left.length > right.length) {
    +  215  604
                         result = 2;
     216  
                     }
    -  217  24
                     if (right.length > left.length) {
    +  217  614
                     if (right.length > left.length) {
     218  10
                         result = -2;
     219  
                     }
    @@ -392,7 +392,7 @@  222  0
                 result = this.getName().compareToIgnoreCase(vs.getName());
     223  
             }
    -  224  14085
             return result;
    +  224  50111
             return result;
     225  
         }
     226   @@ -411,19 +411,19 @@
          */
     233  
         private static boolean isPositiveInteger(final String str) {
    -  234  126488
             if (str == null || str.isEmpty()) {
    +  234  424020
             if (str == null || str.isEmpty()) {
     235  12
                 return false;
     236  
             }
    -  237  206170
             for (int i = 0; i < str.length(); i++) {
    -  238  136606
                 final char c = str.charAt(i);
    -  239  136606
                 if (c < '0' || c > '9') {
    -  240  56912
                     return false;
    +  237  659456
             for (int i = 0; i < str.length(); i++) {
    +  238  441136
                 final char c = str.charAt(i);
    +  239  441136
                 if (c < '0' || c > '9') {
    +  240  205688
                     return false;
     241  
                 }
     242  
             }
    -  243  69564
             return true;
    +  243  218320
             return true;
     244  
         }
     245   @@ -448,7 +448,7 @@
          */
     255  
         public String getName() {
    -  256  32049
             return name;
    +  256  109747
             return name;
     257  
         }
     258   @@ -489,7 +489,7 @@
          */
     277  
         public String getVersion() {
    -  278  5363
             return version;
    +  278  14153
             return version;
     279  
         }
     280   @@ -530,7 +530,7 @@
          */
     299  
         public String getRevision() {
    -  300  7436
             return revision;
    +  300  16805
             return revision;
     301  
         }
     302   @@ -594,6 +594,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter.html index 551f18f6f..c69d59bd5 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter.html @@ -79,7 +79,7 @@
      * @author Jeremy Long (jeremy.long@owasp.org)
     31  
      */
    -  32  5
     public class MavenNamespaceFilter extends XMLFilterImpl {
    +  32  7
     public class MavenNamespaceFilter extends XMLFilterImpl {
     33  
     
     34   @@ -96,7 +96,7 @@
          * A flag indicating whether or not the namespace (prefix) has been added.
     40  
          */
    -  41  5
         private boolean namespaceAdded = false;
    +  41  7
         private boolean namespaceAdded = false;
     42  
     
     43   @@ -113,9 +113,9 @@
         @Override
     49  
         public void startDocument() throws SAXException {
    -  50  5
             super.startDocument();
    -  51  5
             startPrefixMapping("", NAMESPACE);
    -  52  5
         }
    +  50  7
             super.startDocument();
    +  51  7
             startPrefixMapping("", NAMESPACE);
    +  52  7
         }
     53  
     
     54   @@ -140,8 +140,8 @@
         @Override
     64  
         public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
    -  65  1234
             super.startElement(NAMESPACE, localName, qName, atts);
    -  66  1234
         }
    +  65  1545
             super.startElement(NAMESPACE, localName, qName, atts);
    +  66  1545
         }
     67  
     
     68   @@ -166,8 +166,8 @@
         public void endElement(String uri, String localName, String qName)
     78  
                 throws SAXException {
    -  79  1234
             super.endElement(NAMESPACE, localName, qName);
    -  80  1234
         }
    +  79  1545
             super.endElement(NAMESPACE, localName, qName);
    +  80  1545
         }
     81  
     
     82   @@ -188,16 +188,16 @@
         @Override
     90  
         public void startPrefixMapping(String prefix, String url) throws SAXException {
    -  91  5
             if (!this.namespaceAdded) {
    -  92  5
                 namespaceAdded = true;
    -  93  5
                 super.startPrefixMapping("", NAMESPACE);
    +  91  7
             if (!this.namespaceAdded) {
    +  92  7
                 namespaceAdded = true;
    +  93  7
                 super.startPrefixMapping("", NAMESPACE);
     94  
             }
    -  95  5
         }
    +  95  7
         }
     96  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Activation.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Activation.html index 7fa5f8ce6..862528a2b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Activation.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Activation.html @@ -117,7 +117,7 @@
     })
     50  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  51  2
     public class Activation {
    +  51  3
     public class Activation {
     52  
     
     53   @@ -393,6 +393,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile.html index 6a676cc3e..1fac3728e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile.html @@ -226,6 +226,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS.html index 2202292e8..0b3c8c04c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS.html @@ -334,6 +334,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty.html index a3a3f591b..16be53123 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty.html @@ -111,7 +111,7 @@
     })
     47  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  48  2
     public class ActivationProperty {
    +  48  3
     public class ActivationProperty {
     49  
     
     50   @@ -226,6 +226,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Build.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Build.html index 2a9fbdf5c..367c7e8f5 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Build.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Build.html @@ -236,7 +236,7 @@
     })
     107  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  108  5
     public class Build {
    +  108  7
     public class Build {
     109  
     
     110   @@ -1273,7 +1273,7 @@
         })
     651  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  652  5
         public static class Plugins {
    +  652  7
         public static class Plugins {
     653  
     
     654   @@ -1393,7 +1393,7 @@
         })
     713  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  714  2
         public static class Resources {
    +  714  3
         public static class Resources {
     715  
     
     716   @@ -1503,7 +1503,7 @@
          *
     770  
          */
    -  771  5
         @XmlAccessorType(XmlAccessType.FIELD)
    +  771  7
         @XmlAccessorType(XmlAccessType.FIELD)
     772  
         @XmlType(name = "", propOrder = {
     773   @@ -1586,6 +1586,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html index a7ca415ab..26458ce54 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html @@ -203,7 +203,7 @@
     })
     91  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  92  6
     public class BuildBase {
    +  92  7
     public class BuildBase {
     93  
     
     94   @@ -802,7 +802,7 @@
         })
     405  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  406  6
         public static class Plugins {
    +  406  7
         public static class Plugins {
     407  
     
     408   @@ -1032,7 +1032,7 @@
          *
     524  
          */
    -  525  6
         @XmlAccessorType(XmlAccessType.FIELD)
    +  525  7
         @XmlAccessorType(XmlAccessType.FIELD)
     526  
         @XmlType(name = "", propOrder = {
     527   @@ -1115,6 +1115,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.html index 22a35f1f5..13d689af3 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.html @@ -417,6 +417,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Contributor.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Contributor.html index e94d3ad9d..f2ecdc749 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Contributor.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Contributor.html @@ -847,6 +847,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html index b5a56914e..3c1a4e485 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html @@ -144,7 +144,7 @@
     })
     63  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  64  66
     public class Dependency {
    +  64  91
     public class Dependency {
     65  
     
     66   @@ -670,7 +670,7 @@
          *
     340  
          */
    -  341  66
         @XmlAccessorType(XmlAccessType.FIELD)
    +  341  91
         @XmlAccessorType(XmlAccessType.FIELD)
     342  
         @XmlType(name = "", propOrder = {
     343   @@ -679,7 +679,7 @@
         })
     345  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  346  3
         public static class Exclusions {
    +  346  4
         public static class Exclusions {
     347  
     
     348   @@ -753,6 +753,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.html index 3254974be..a4ae5c6e3 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.html @@ -311,6 +311,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository.html index 714d09341..971a000b5 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository.html @@ -393,6 +393,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Developer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Developer.html index 829a93ceb..67e7c0c88 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Developer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Developer.html @@ -898,6 +898,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement.html index 17b8e73c5..20df377bf 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement.html @@ -446,6 +446,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Exclusion.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Exclusion.html index 8053b41be..5e41e960e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Exclusion.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Exclusion.html @@ -103,7 +103,7 @@
     })
     43  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  44  4
     public class Exclusion {
    +  44  5
     public class Exclusion {
     45  
     
     46   @@ -218,6 +218,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Extension.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Extension.html index 6518899f2..7105ef8bd 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Extension.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Extension.html @@ -273,6 +273,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement.html index 67c3ecbd1..aaf0c76dc 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement.html @@ -222,6 +222,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.License.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.License.html index c25c44663..770b7c616 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.License.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.License.html @@ -336,6 +336,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.MailingList.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.MailingList.html index 812b9075a..5e4a73174 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.MailingList.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.MailingList.html @@ -588,6 +588,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Model.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Model.html index 6190768a8..e65745f79 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Model.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Model.html @@ -406,7 +406,7 @@
     })
     189  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  190  5
     public class Model {
    +  190  7
     public class Model {
     191  
     
     192   @@ -651,7 +651,7 @@
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
     315  
         public String getGroupId() {
    -  316  5
             return groupId;
    +  316  7
             return groupId;
     317  
         }
     318   @@ -700,7 +700,7 @@
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
     341  
         public String getArtifactId() {
    -  342  5
             return artifactId;
    +  342  7
             return artifactId;
     343  
         }
     344   @@ -798,7 +798,7 @@
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
     393  
         public String getName() {
    -  394  5
             return name;
    +  394  7
             return name;
     395  
         }
     396   @@ -847,7 +847,7 @@
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
     419  
         public String getVersion() {
    -  420  5
             return version;
    +  420  7
             return version;
     421  
         }
     422   @@ -896,7 +896,7 @@
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
     445  
         public String getDescription() {
    -  446  7
             return description;
    +  446  10
             return description;
     447  
         }
     448   @@ -1337,7 +1337,7 @@
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
     679  
         public Model.Licenses getLicenses() {
    -  680  6
             return licenses;
    +  680  8
             return licenses;
     681  
         }
     682   @@ -1435,7 +1435,7 @@
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
     731  
         public Organization getOrganization() {
    -  732  5
             return organization;
    +  732  7
             return organization;
     733  
         }
     734   @@ -2173,7 +2173,7 @@
         })
     1120  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  1121  5
         public static class Dependencies {
    +  1121  7
         public static class Dependencies {
     1122  
     
     1123   @@ -2893,7 +2893,7 @@
         })
     1492  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  1493  5
         public static class Profiles {
    +  1493  6
         public static class Profiles {
     1494  
     
     1495   @@ -3247,7 +3247,7 @@
          *
     1675  
          */
    -  1676  5
         @XmlAccessorType(XmlAccessType.FIELD)
    +  1676  7
         @XmlAccessorType(XmlAccessType.FIELD)
     1677  
         @XmlType(name = "", propOrder = {
     1678   @@ -3330,6 +3330,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Notifier.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Notifier.html index a5419cd02..16d4f2255 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Notifier.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Notifier.html @@ -659,6 +659,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory.html index b26268df0..b47419324 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory.html @@ -1394,6 +1394,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Organization.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Organization.html index 79e0af7cf..6f17ebadc 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Organization.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Organization.html @@ -218,6 +218,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Parent.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Parent.html index ac41b4a22..cd41db304 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Parent.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Parent.html @@ -109,7 +109,7 @@
     })
     46  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  47  5
     public class Parent {
    +  47  7
     public class Parent {
     48  
     
     49   @@ -332,6 +332,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Plugin.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Plugin.html index aaebd09f9..e931a40be 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Plugin.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Plugin.html @@ -211,7 +211,7 @@
     })
     95  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  96  31
     public class Plugin {
    +  96  37
     public class Plugin {
     97  
     
     98   @@ -747,7 +747,7 @@
         })
     377  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  378  19
         public static class Configuration {
    +  378  23
         public static class Configuration {
     379  
     
     380   @@ -989,7 +989,7 @@
         })
     502  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  503  21
         public static class Executions {
    +  503  25
         public static class Executions {
     504  
     
     505   @@ -1099,7 +1099,7 @@
          *
     559  
          */
    -  560  31
         @XmlAccessorType(XmlAccessType.FIELD)
    +  560  37
         @XmlAccessorType(XmlAccessType.FIELD)
     561  
         @XmlType(name = "", propOrder = {
     562   @@ -1184,6 +1184,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.html index 519375db6..cb5e8edba 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.html @@ -161,7 +161,7 @@
     })
     71  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  72  23
     public class PluginExecution {
    +  72  27
     public class PluginExecution {
     73  
     
     74   @@ -483,7 +483,7 @@
         })
     240  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  241  10
         public static class Configuration {
    +  241  11
         public static class Configuration {
     242  
     
     243   @@ -595,7 +595,7 @@
          *
     298  
          */
    -  299  23
         @XmlAccessorType(XmlAccessType.FIELD)
    +  299  27
         @XmlAccessorType(XmlAccessType.FIELD)
     300  
         @XmlType(name = "", propOrder = {
     301   @@ -604,7 +604,7 @@
         })
     303  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  304  23
         public static class Goals {
    +  304  27
         public static class Goals {
     305  
     
     306   @@ -678,6 +678,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.html index 6f743bd83..beacd4c6c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.html @@ -311,6 +311,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites.html index d99df9f0e..d1862a9b6 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites.html @@ -167,6 +167,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Profile.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Profile.html index d5b27756a..d0ee63835 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Profile.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Profile.html @@ -261,7 +261,7 @@
     })
     119  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  120  9
     public class Profile {
    +  120  11
     public class Profile {
     121  
     
     122   @@ -952,7 +952,7 @@
         })
     483  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  484  2
         public static class Dependencies {
    +  484  3
         public static class Dependencies {
     485  
     
     486   @@ -1546,7 +1546,7 @@
          *
     790  
          */
    -  791  9
         @XmlAccessorType(XmlAccessType.FIELD)
    +  791  11
         @XmlAccessorType(XmlAccessType.FIELD)
     792  
         @XmlType(name = "", propOrder = {
     793   @@ -1629,6 +1629,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Relocation.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Relocation.html index 108d7b2f6..71a660538 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Relocation.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Relocation.html @@ -330,6 +330,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.html index 7f9df4bdc..5b680a619 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.html @@ -163,7 +163,7 @@
     })
     72  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  73  12
     public class ReportPlugin {
    +  73  14
     public class ReportPlugin {
     74  
     
     75   @@ -538,7 +538,7 @@
         })
     269  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  270  10
         public static class Configuration {
    +  270  12
         public static class Configuration {
     271  
     
     272   @@ -650,7 +650,7 @@
          *
     327  
          */
    -  328  12
         @XmlAccessorType(XmlAccessType.FIELD)
    +  328  14
         @XmlAccessorType(XmlAccessType.FIELD)
     329  
         @XmlType(name = "", propOrder = {
     330   @@ -733,6 +733,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.html index 773b566c2..8b02fb9d7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.html @@ -623,6 +623,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Reporting.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Reporting.html index 2af1d8ab0..66a6f7705 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Reporting.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Reporting.html @@ -132,7 +132,7 @@
     })
     57  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  58  4
     public class Reporting {
    +  58  5
     public class Reporting {
     59  
     
     60   @@ -338,7 +338,7 @@
          *
     165  
          */
    -  166  4
         @XmlAccessorType(XmlAccessType.FIELD)
    +  166  5
         @XmlAccessorType(XmlAccessType.FIELD)
     167  
         @XmlType(name = "", propOrder = {
     168   @@ -347,7 +347,7 @@
         })
     170  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  171  4
         public static class Plugins {
    +  171  5
         public static class Plugins {
     172  
     
     173   @@ -421,6 +421,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Repository.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Repository.html index 1e939a5ae..683052a1c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Repository.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Repository.html @@ -446,6 +446,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy.html index cf2b26cea..dd7130f14 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy.html @@ -277,6 +277,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Resource.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Resource.html index 38b83f7ae..1524445ed 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Resource.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Resource.html @@ -13,7 +13,7 @@ - +
    Classes in this File Line Coverage Branch Coverage Complexity
    Resource
    11%
    2/17
    N/A
    1.167
    Resource$Excludes
    0%
    0/4
    0%
    0/2
    1.167
    Resource$Excludes
    25%
    1/4
    0%
    0/2
    1.167
    Resource$Includes
    25%
    1/4
    0%
    0/2
    1.167
    @@ -163,7 +163,7 @@
     })
     72  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  73  6
     public class Resource {
    +  73  9
     public class Resource {
     74  
     
     75   @@ -485,7 +485,7 @@
         })
     241  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  242  0
         public static class Excludes {
    +  242  2
         public static class Excludes {
     243  
     
     244   @@ -595,7 +595,7 @@
          *
     298  
          */
    -  299  6
         @XmlAccessorType(XmlAccessType.FIELD)
    +  299  9
         @XmlAccessorType(XmlAccessType.FIELD)
     300  
         @XmlType(name = "", propOrder = {
     301   @@ -604,7 +604,7 @@
         })
     303  
         @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  304  2
         public static class Includes {
    +  304  3
         public static class Includes {
     305  
     
     306   @@ -678,6 +678,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Scm.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Scm.html index 4b600e40f..2d0a41434 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Scm.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Scm.html @@ -109,7 +109,7 @@
     })
     46  
     @Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2012-11-09T12:33:57-05:00", comments = "JAXB RI vJAXB 2.1.10 in JDK 6")
    -  47  4
     public class Scm {
    +  47  6
     public class Scm {
     48  
     
     49   @@ -332,6 +332,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Site.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Site.html index 501dda993..30ec5d2af 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Site.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Site.html @@ -277,6 +277,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.package-info.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.package-info.html index 623ba08cf..9c7dcf401 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.package-info.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.package-info.html @@ -37,6 +37,6 @@
     package org.owasp.dependencycheck.jaxb.pom.generated;
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.ReportGenerator.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.ReportGenerator.html index 3c0235130..5d17aaf9c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.ReportGenerator.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.ReportGenerator.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    ReportGenerator
    0%
    0/82
    0%
    0/38
    5.333
    ReportGenerator
    54%
    45/82
    15%
    6/38
    5.333
    ReportGenerator$Format
    0%
    0/5
    N/A
    5.333
    @@ -191,18 +191,18 @@
          * @param analyzers the list of analyzers used.
     89  
          */
    -  90  0
         public ReportGenerator(String applicationName, List<Dependency> dependencies, List<Analyzer> analyzers) {
    -  91  0
             engine = createVelocityEngine();
    -  92  0
             context = createContext();
    +  90  1
         public ReportGenerator(String applicationName, List<Dependency> dependencies, List<Analyzer> analyzers) {
    +  91  1
             engine = createVelocityEngine();
    +  92  1
             context = createContext();
     93  
     
    -  94  0
             engine.init();
    +  94  1
             engine.init();
     95  
     
    -  96  0
             context.put("applicationName", applicationName);
    -  97  0
             context.put("dependencies", dependencies);
    -  98  0
             context.put("analyzers", analyzers);
    -  99  0
         }
    +  96  1
             context.put("applicationName", applicationName);
    +  97  1
             context.put("dependencies", dependencies);
    +  98  1
             context.put("analyzers", analyzers);
    +  99  1
         }
     100  
     
     101   @@ -217,11 +217,11 @@
          */
     106  
         private VelocityEngine createVelocityEngine() {
    -  107  0
             final VelocityEngine ve = new VelocityEngine();
    -  108  0
             ve.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, VelocityLoggerRedirect.class.getName());
    -  109  0
             ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
    -  110  0
             ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
    -  111  0
             return ve;
    +  107  1
             final VelocityEngine ve = new VelocityEngine();
    +  108  1
             ve.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, VelocityLoggerRedirect.class.getName());
    +  109  1
             ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
    +  110  1
             ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
    +  111  1
             return ve;
     112  
         }
     113   @@ -242,13 +242,13 @@
                 justification = "No plan to fix this style issue")
     121  
         private Context createContext() {
    -  122  0
             final ToolManager manager = new ToolManager();
    -  123  0
             final Context c = manager.createContext();
    -  124  0
             final EasyFactoryConfiguration config = new EasyFactoryConfiguration();
    -  125  0
             config.addDefaultTools();
    -  126  0
             config.toolbox("application").tool("esc", "org.apache.velocity.tools.generic.EscapeTool").tool("org.apache.velocity.tools.generic.DateTool");
    -  127  0
             manager.configure(config);
    -  128  0
             return c;
    +  122  1
             final ToolManager manager = new ToolManager();
    +  123  1
             final Context c = manager.createContext();
    +  124  1
             final EasyFactoryConfiguration config = new EasyFactoryConfiguration();
    +  125  1
             config.addDefaultTools();
    +  126  1
             config.toolbox("application").tool("esc", "org.apache.velocity.tools.generic.EscapeTool").tool("org.apache.velocity.tools.generic.DateTool");
    +  127  1
             manager.configure(config);
    +  128  1
             return c;
     129  
         }
     130   @@ -353,10 +353,10 @@
          */
     189  
         protected void generateReport(String templateName, String outFileName) throws IOException, Exception {
    -  190  0
             InputStream input = null;
    -  191  0
             String templatePath = null;
    -  192  0
             final File f = new File(templateName);
    -  193  0
             if (f.exists() && f.isFile()) {
    +  190  1
             InputStream input = null;
    +  191  1
             String templatePath = null;
    +  192  1
             final File f = new File(templateName);
    +  193  1
             if (f.exists() && f.isFile()) {
     194  
                 try {
     195  0
                     templatePath = templateName;
    @@ -368,25 +368,25 @@  201  0
                 }
     202  
             } else {
    -  203  0
                 templatePath = "templates/" + templateName + ".vsl";
    -  204  0
                 input = this.getClass().getClassLoader().getResourceAsStream(templatePath);
    +  203  1
                 templatePath = "templates/" + templateName + ".vsl";
    +  204  1
                 input = this.getClass().getClassLoader().getResourceAsStream(templatePath);
     205  
             }
    -  206  0
             if (input == null) {
    +  206  1
             if (input == null) {
     207  0
                 throw new IOException("Template file doesn't exist");
     208  
             }
     209  
     
    -  210  0
             final InputStreamReader reader = new InputStreamReader(input, "UTF-8");
    -  211  0
             OutputStreamWriter writer = null;
    -  212  0
             OutputStream outputStream = null;
    +  210  1
             final InputStreamReader reader = new InputStreamReader(input, "UTF-8");
    +  211  1
             OutputStreamWriter writer = null;
    +  212  1
             OutputStream outputStream = null;
     213  
     
     214  
             try {
    -  215  0
                 final File outDir = new File(outFileName).getParentFile();
    -  216  0
                 if (!outDir.exists()) {
    +  215  1
                 final File outDir = new File(outFileName).getParentFile();
    +  216  1
                 if (!outDir.exists()) {
     217  0
                     final boolean created = outDir.mkdirs();
     218  0
                     if (!created) {
     219  0
                         throw new Exception("Unable to create directory '" + outDir.getAbsolutePath() + "'.");
    @@ -396,47 +396,47 @@
                 }
     222  
     
    -  223  0
                 outputStream = new FileOutputStream(outFileName);
    -  224  0
                 writer = new OutputStreamWriter(outputStream, "UTF-8");
    +  223  1
                 outputStream = new FileOutputStream(outFileName);
    +  224  1
                 writer = new OutputStreamWriter(outputStream, "UTF-8");
     225  
     
    -  226  0
                 if (!engine.evaluate(context, writer, templatePath, reader)) {
    +  226  1
                 if (!engine.evaluate(context, writer, templatePath, reader)) {
     227  0
                     throw new Exception("Failed to convert the template into html.");
     228  
                 }
    -  229  0
                 writer.flush();
    +  229  1
                 writer.flush();
     230  
             } finally {
    -  231  0
                 if (writer != null) {
    +  231  1
                 if (writer != null) {
     232  
                     try {
    -  233  0
                         writer.close();
    +  233  1
                         writer.close();
     234  0
                     } catch (Exception ex) {
     235  0
                         Logger.getLogger(ReportGenerator.class.getName()).log(Level.FINEST, null, ex);
    -  236  0
                     }
    +  236  1
                     }
     237  
                 }
    -  238  0
                 if (outputStream != null) {
    +  238  1
                 if (outputStream != null) {
     239  
                     try {
    -  240  0
                         outputStream.close();
    +  240  1
                         outputStream.close();
     241  0
                     } catch (Exception ex) {
     242  0
                         Logger.getLogger(ReportGenerator.class.getName()).log(Level.FINEST, null, ex);
    -  243  0
                     }
    +  243  1
                     }
     244  
                 }
     245  
                 try {
    -  246  0
                     reader.close();
    +  246  1
                     reader.close();
     247  0
                 } catch (Exception ex) {
     248  0
                     Logger.getLogger(ReportGenerator.class.getName()).log(Level.FINEST, null, ex);
    -  249  0
                 }
    +  249  1
                 }
     250  0
             }
    -  251  0
         }
    +  251  1
         }
     252  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.VelocityLoggerRedirect.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.VelocityLoggerRedirect.html index 4b7bac202..c0f4c82ba 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.VelocityLoggerRedirect.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.VelocityLoggerRedirect.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    VelocityLoggerRedirect
    0%
    0/14
    0%
    0/6
    3
    VelocityLoggerRedirect
    57%
    8/14
    33%
    2/6
    3
     
    @@ -99,7 +99,7 @@
      * @author Steve Springett (steve.springett@owasp.org)
     41  
      */
    -  42  0
     public class VelocityLoggerRedirect implements LogChute {
    +  42  1
     public class VelocityLoggerRedirect implements LogChute {
     43  
     
     44   @@ -116,7 +116,7 @@
         public void init(RuntimeServices rsvc) {
     50  
             // do nothing
    -  51  0
         }
    +  51  1
         }
     52  
     
     53   @@ -135,8 +135,8 @@
          */
     60  
         public void log(int level, String message) {
    -  61  0
             Logger.getLogger(Velocity.class.getName()).log(getLevel(level), message);
    -  62  0
         }
    +  61  32
             Logger.getLogger(Velocity.class.getName()).log(getLevel(level), message);
    +  62  32
         }
     63  
     
     64   @@ -175,7 +175,7 @@
          */
     82  
         public boolean isLevelEnabled(int level) {
    -  83  0
             return true;
    +  83  13
             return true;
     84  
         }
     85   @@ -194,13 +194,13 @@
          */
     92  
         private Level getLevel(int velocityLevel) {
    -  93  0
             switch (velocityLevel) {
    +  93  32
             switch (velocityLevel) {
     94  
                 case TRACE_ID:
    -  95  0
                     return Level.ALL;
    +  95  8
                     return Level.ALL;
     96  
                 case DEBUG_ID:
    -  97  0
                     return Level.FINE;
    +  97  24
                     return Level.FINE;
     98  
                 case INFO_ID:
     99  0
                     return Level.INFO;
    @@ -221,6 +221,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Checksum.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Checksum.html index f4540f753..0e67a4d96 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Checksum.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Checksum.html @@ -88,36 +88,36 @@
          */
     36  
         public static byte[] getChecksum(String algorithm, File file) throws NoSuchAlgorithmException, IOException {
    -  37  53
             InputStream fis = null;
    -  38  53
             byte[] buffer = new byte[1024];
    -  39  53
             MessageDigest complete = MessageDigest.getInstance(algorithm);
    +  37  59
             InputStream fis = null;
    +  38  59
             byte[] buffer = new byte[1024];
    +  39  59
             MessageDigest complete = MessageDigest.getInstance(algorithm);
     40  
             int numRead;
     41  
             try {
    -  42  52
                 fis = new FileInputStream(file);
    +  42  58
                 fis = new FileInputStream(file);
     43  
                 do {
    -  44  26914
                     numRead = fis.read(buffer);
    -  45  26914
                     if (numRead > 0) {
    -  46  26863
                         complete.update(buffer, 0, numRead);
    +  44  30964
                     numRead = fis.read(buffer);
    +  45  30964
                     if (numRead > 0) {
    +  46  30907
                         complete.update(buffer, 0, numRead);
     47  
                     }
    -  48  26914
                 } while (numRead != -1);
    +  48  30964
                 } while (numRead != -1);
     49  
             } finally {
    -  50  52
                 if (fis != null) {
    +  50  58
                 if (fis != null) {
     51  
                     try {
    -  52  51
                         fis.close();
    +  52  57
                         fis.close();
     53  0
                     } catch (IOException ex) {
     54  0
                         Logger.getLogger(Checksum.class.getName()).log(Level.FINEST, "Error closing file '" + file.getName() + "'.", ex);
    -  55  52
                     }
    +  55  58
                     }
     56  
                 }
     57  
             }
    -  58  51
             return complete.digest();
    +  58  57
             return complete.digest();
     59  
         }
     60   @@ -140,8 +140,8 @@
          */
     69  
         public static String getMD5Checksum(File file) throws IOException, NoSuchAlgorithmException {
    -  70  25
             byte[] b = getChecksum("MD5", file);
    -  71  25
             return getHex(b);
    +  70  28
             byte[] b = getChecksum("MD5", file);
    +  71  28
             return getHex(b);
     72  
         }
     73   @@ -164,8 +164,8 @@
          */
     82  
         public static String getSHA1Checksum(File file) throws IOException, NoSuchAlgorithmException {
    -  83  25
             byte[] b = getChecksum("SHA1", file);
    -  84  25
             return getHex(b);
    +  83  28
             byte[] b = getChecksum("SHA1", file);
    +  84  28
             return getHex(b);
     85  
         }
     86   @@ -192,22 +192,22 @@
          */
     97  
         public static String getHex(byte[] raw) {
    -  98  51
             if (raw == null) {
    +  98  57
             if (raw == null) {
     99  0
                 return null;
     100  
             }
    -  101  51
             final StringBuilder hex = new StringBuilder(2 * raw.length);
    -  102  968
             for (final byte b : raw) {
    -  103  917
                 hex.append(HEXES.charAt((b & 0xF0) >> 4)).append(HEXES.charAt((b & 0x0F)));
    +  101  57
             final StringBuilder hex = new StringBuilder(2 * raw.length);
    +  102  1082
             for (final byte b : raw) {
    +  103  1025
                 hex.append(HEXES.charAt((b & 0xF0) >> 4)).append(HEXES.charAt((b & 0x0F)));
     104  
             }
    -  105  51
             return hex.toString();
    +  105  57
             return hex.toString();
     106  
         }
     107  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersion.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersion.html index 5afb215ef..ad753479c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersion.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersion.html @@ -106,8 +106,8 @@
          * Constructor for a empty DependencyVersion.
     45  
          */
    -  46  2
         public DependencyVersion() {
    -  47  2
         }
    +  46  16
         public DependencyVersion() {
    +  47  16
         }
     48  
     
     49   @@ -126,9 +126,9 @@
          * @param version the well formated version number to parse
     56  
          */
    -  57  4748
         public DependencyVersion(String version) {
    -  58  4748
             parseVersion(version);
    -  59  4748
         }
    +  57  10386
         public DependencyVersion(String version) {
    +  58  10386
             parseVersion(version);
    +  59  10386
         }
     60  
     
     61   @@ -147,21 +147,21 @@
          */
     68  
         public final void parseVersion(String version) {
    -  69  4750
             versionParts = new ArrayList<String>();
    -  70  4750
             if (version != null) {
    -  71  4750
                 final Pattern rx = Pattern.compile("(\\d+|[a-z]+\\d+|(release|beta|alpha)$)");
    -  72  4750
                 final Matcher matcher = rx.matcher(version.toLowerCase());
    -  73  19747
                 while (matcher.find()) {
    -  74  14997
                     versionParts.add(matcher.group());
    +  69  10388
             versionParts = new ArrayList<String>();
    +  70  10388
             if (version != null) {
    +  71  10388
                 final Pattern rx = Pattern.compile("(\\d+|[a-z]+\\d+|(release|beta|alpha)$)");
    +  72  10388
                 final Matcher matcher = rx.matcher(version.toLowerCase());
    +  73  42686
                 while (matcher.find()) {
    +  74  32298
                     versionParts.add(matcher.group());
     75  
                 }
    -  76  4750
                 if (versionParts.isEmpty()) {
    -  77  30
                     versionParts.add(version);
    +  76  10388
                 if (versionParts.isEmpty()) {
    +  77  55
                     versionParts.add(version);
     78  
                 }
     79  
             }
    -  80  4750
         }
    +  80  10388
         }
     81  
         /**
     82   @@ -184,7 +184,7 @@
          */
     91  
         public List<String> getVersionParts() {
    -  92  8414
             return versionParts;
    +  92  16338
             return versionParts;
     93  
         }
     94   @@ -201,8 +201,8 @@
          */
     100  
         public void setVersionParts(List<String> versionParts) {
    -  101  1
             this.versionParts = versionParts;
    -  102  1
         }
    +  101  15
             this.versionParts = versionParts;
    +  102  15
         }
     103  
     
     104   @@ -236,7 +236,7 @@
         @Override
     119  
         public String toString() {
    -  120  430
             return StringUtils.join(versionParts.toArray(), ".");
    +  120  2056
             return StringUtils.join(versionParts.toArray(), ".");
     121  
         }
     122   @@ -257,33 +257,33 @@
         @Override
     130  
         public boolean equals(Object obj) {
    -  131  4595
             if (obj == null) {
    +  131  10155
             if (obj == null) {
     132  0
                 return false;
     133  
             }
    -  134  4595
             if (getClass() != obj.getClass()) {
    +  134  10155
             if (getClass() != obj.getClass()) {
     135  0
                 return false;
     136  
             }
    -  137  4595
             final DependencyVersion other = (DependencyVersion) obj;
    -  138  4595
             final int max = (this.versionParts.size() < other.versionParts.size())
    +  137  10155
             final DependencyVersion other = (DependencyVersion) obj;
    +  138  10155
             final int max = (this.versionParts.size() < other.versionParts.size())
     139  
                     ? this.versionParts.size() : other.versionParts.size();
     140  
             //TODO steal better version of code from compareTo
    -  141  7572
             for (int i = 0; i < max; i++) {
    -  142  7227
                 final String thisPart = this.versionParts.get(i);
    -  143  7227
                 final String otherPart = other.versionParts.get(i);
    -  144  7227
                 if (!thisPart.equals(otherPart)) {
    -  145  4250
                     return false;
    +  141  16396
             for (int i = 0; i < max; i++) {
    +  142  15726
                 final String thisPart = this.versionParts.get(i);
    +  143  15726
                 final String otherPart = other.versionParts.get(i);
    +  144  15726
                 if (!thisPart.equals(otherPart)) {
    +  145  9485
                     return false;
     146  
                 }
     147  
             }
    -  148  345
             if (this.versionParts.size() > max) {
    -  149  21
                 for (int i = max; i < this.versionParts.size(); i++) {
    -  150  21
                     if (!"0".equals(this.versionParts.get(i))) {
    -  151  21
                         return false;
    +  148  670
             if (this.versionParts.size() > max) {
    +  149  88
                 for (int i = max; i < this.versionParts.size(); i++) {
    +  150  88
                     if (!"0".equals(this.versionParts.get(i))) {
    +  151  88
                         return false;
     152  
                     }
     153   @@ -292,10 +292,10 @@
             }
     155  
     
    -  156  324
             if (other.versionParts.size() > max) {
    -  157  258
                 for (int i = max; i < other.versionParts.size(); i++) {
    -  158  250
                     if (!"0".equals(other.versionParts.get(i))) {
    -  159  234
                         return false;
    +  156  582
             if (other.versionParts.size() > max) {
    +  157  463
                 for (int i = max; i < other.versionParts.size(); i++) {
    +  158  447
                     if (!"0".equals(other.versionParts.get(i))) {
    +  159  415
                         return false;
     160  
                     }
     161   @@ -314,7 +314,7 @@
              *  }
     168  
              */
    -  169  90
             return true;
    +  169  167
             return true;
     170  
         }
     171   @@ -358,35 +358,35 @@
          */
     192  
         public boolean matchesAtLeastThreeLevels(DependencyVersion version) {
    -  193  3971
             if (version == null) {
    +  193  7507
             if (version == null) {
     194  0
                 return false;
     195  
             }
     196  
     
    -  197  3971
             boolean ret = true;
    -  198  3971
             int max = (this.versionParts.size() < version.versionParts.size())
    +  197  7507
             boolean ret = true;
    +  198  7507
             int max = (this.versionParts.size() < version.versionParts.size())
     199  
                     ? this.versionParts.size() : version.versionParts.size();
     200  
     
    -  201  3971
             if (max > 3) {
    +  201  7507
             if (max > 3) {
     202  2
                 max = 3;
     203  
             }
     204  
     
    -  205  6258
             for (int i = 0; i < max; i++) {
    -  206  6024
                 if (this.versionParts.get(i) == null || !this.versionParts.get(i).equals(version.versionParts.get(i))) {
    -  207  3737
                     ret = false;
    -  208  3737
                     break;
    +  205  11690
             for (int i = 0; i < max; i++) {
    +  206  11276
                 if (this.versionParts.get(i) == null || !this.versionParts.get(i).equals(version.versionParts.get(i))) {
    +  207  7093
                     ret = false;
    +  208  7093
                     break;
     209  
                 }
     210  
             }
     211  
     
    -  212  3971
             return ret;
    +  212  7507
             return ret;
     213  
         }
     214   @@ -395,30 +395,30 @@
         @Override
     216  
         public int compareTo(DependencyVersion version) {
    -  217  22
             if (version == null) {
    +  217  28
             if (version == null) {
     218  0
                 return 1;
     219  
             }
    -  220  22
             final List<String> left = this.getVersionParts();
    -  221  22
             final List<String> right = version.getVersionParts();
    -  222  22
             final int max = left.size() < right.size() ? left.size() : right.size();
    +  220  28
             final List<String> left = this.getVersionParts();
    +  221  28
             final List<String> right = version.getVersionParts();
    +  222  28
             final int max = left.size() < right.size() ? left.size() : right.size();
     223  
     
    -  224  46
             for (int i = 0; i < max; i++) {
    -  225  39
                 final String lStr = left.get(i);
    -  226  39
                 final String rStr = right.get(i);
    -  227  39
                 if (lStr.equals(rStr)) {
    -  228  24
                     continue;
    +  224  54
             for (int i = 0; i < max; i++) {
    +  225  47
                 final String lStr = left.get(i);
    +  226  47
                 final String rStr = right.get(i);
    +  227  47
                 if (lStr.equals(rStr)) {
    +  228  26
                     continue;
     229  
                 }
     230  
                 try {
    -  231  15
                     final int l = Integer.parseInt(lStr);
    -  232  14
                     final int r = Integer.parseInt(rStr);
    -  233  9
                     if (l < r) {
    -  234  3
                         return -1;
    -  235  6
                     } else if (l > r) {
    -  236  6
                         return 1;
    +  231  21
                     final int l = Integer.parseInt(lStr);
    +  232  20
                     final int r = Integer.parseInt(rStr);
    +  233  15
                     if (l < r) {
    +  234  6
                         return -1;
    +  235  9
                     } else if (l > r) {
    +  236  9
                         return 1;
     237  
                     }
     238  6
                 } catch (NumberFormatException ex) {
    @@ -447,6 +447,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersionUtil.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersionUtil.html index 06cfa9259..0627e7527 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersionUtil.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersionUtil.html @@ -133,56 +133,56 @@
          */
     60  
         public static DependencyVersion parseVersion(String text) {
    -  61  4708
             if (text == null) {
    -  62  12
                 return null;
    +  61  10348
             if (text == null) {
    +  62  24
                 return null;
     63  
             }
     64  
             //'-' is a special case used within the CVE entries, just include it as the version.
    -  65  4696
             if ("-".equals(text)) {
    -  66  1
                 final DependencyVersion dv = new DependencyVersion();
    -  67  1
                 final ArrayList<String> list = new ArrayList<String>();
    -  68  1
                 list.add(text);
    -  69  1
                 dv.setVersionParts(list);
    -  70  1
                 return dv;
    +  65  10324
             if ("-".equals(text)) {
    +  66  15
                 final DependencyVersion dv = new DependencyVersion();
    +  67  15
                 final ArrayList<String> list = new ArrayList<String>();
    +  68  15
                 list.add(text);
    +  69  15
                 dv.setVersionParts(list);
    +  70  15
                 return dv;
     71  
             }
    -  72  4695
             String version = null;
    -  73  4695
             Matcher matcher = RX_VERSION.matcher(text);
    -  74  4695
             if (matcher.find()) {
    -  75  4674
                 version = matcher.group();
    +  72  10309
             String version = null;
    +  73  10309
             Matcher matcher = RX_VERSION.matcher(text);
    +  74  10309
             if (matcher.find()) {
    +  75  10193
                 version = matcher.group();
     76  
             }
     77  
             //throw away the results if there are two things that look like version numbers
    -  78  4695
             if (matcher.find()) {
    +  78  10309
             if (matcher.find()) {
     79  2
                 return null;
     80  
             }
    -  81  4693
             if (version == null) {
    -  82  21
                 matcher = RX_SINGLE_VERSION.matcher(text);
    -  83  21
                 if (matcher.find()) {
    -  84  18
                     version = matcher.group();
    +  81  10307
             if (version == null) {
    +  82  116
                 matcher = RX_SINGLE_VERSION.matcher(text);
    +  83  116
                 if (matcher.find()) {
    +  84  112
                     version = matcher.group();
     85  
                 } else {
    -  86  3
                     return null;
    +  86  4
                     return null;
     87  
                 }
     88  
                 //throw away the results if there are two things that look like version numbers
    -  89  18
                 if (matcher.find()) {
    +  89  112
                 if (matcher.find()) {
     90  1
                     return null;
     91  
                 }
     92  
             }
    -  93  4689
             return new DependencyVersion(version);
    +  93  10302
             return new DependencyVersion(version);
     94  
         }
     95  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DownloadFailedException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DownloadFailedException.html index 6b88dfaa7..237d7ddda 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DownloadFailedException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DownloadFailedException.html @@ -149,6 +149,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Downloader.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Downloader.html index 9835fc60c..d7f255cef 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Downloader.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Downloader.html @@ -235,10 +235,10 @@
          */
     130  
         public static long getLastModified(URL url) throws DownloadFailedException {
    -  131  3
             long timestamp = 0;
    +  131  14
             long timestamp = 0;
     132  
             //TODO add the FPR protocol?
    -  133  3
             if ("file".equalsIgnoreCase(url.getProtocol())) {
    +  133  14
             if ("file".equalsIgnoreCase(url.getProtocol())) {
     134  
                 File lastModifiedFile;
     135   @@ -259,15 +259,15 @@
     //                    }
     143  
     //                } else {
    -  144  3
                     lastModifiedFile = new File(url.toURI());
    +  144  14
                     lastModifiedFile = new File(url.toURI());
     145  
     //                }
     146  0
                 } catch (URISyntaxException ex) {
     147  0
                     final String msg = String.format("Unable to locate '%s'; is the cve.url-2.0.modified property set correctly?", url.toString());
     148  0
                     throw new DownloadFailedException(msg);
    -  149  3
                 }
    -  150  3
                 timestamp = lastModifiedFile.lastModified();
    -  151  3
             } else {
    +  149  14
                 }
    +  150  14
                 timestamp = lastModifiedFile.lastModified();
    +  151  14
             } else {
     152  0
                 HttpURLConnection conn = null;
     153  
                 try {
    @@ -293,7 +293,7 @@
                 }
     169  
             }
    -  170  3
             return timestamp;
    +  170  14
             return timestamp;
     171  
         }
     172   @@ -354,6 +354,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.ExtractionException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.ExtractionException.html index 57767a294..68804e0c3 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.ExtractionException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.ExtractionException.html @@ -149,6 +149,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.FileUtils.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.FileUtils.html index f10c7f892..fe5a87227 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.FileUtils.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.FileUtils.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    FileUtils
    48%
    41/85
    50%
    20/40
    5.375
    FileUtils
    52%
    40/76
    62%
    20/32
    5.286
     
    @@ -135,13 +135,13 @@
          */
     60  
         public static String getFileExtension(String fileName) {
    -  61  199
             String ret = null;
    -  62  199
             final int pos = fileName.lastIndexOf(".");
    -  63  199
             if (pos >= 0) {
    -  64  189
                 ret = fileName.substring(pos + 1, fileName.length()).toLowerCase();
    +  61  190
             String ret = null;
    +  62  190
             final int pos = fileName.lastIndexOf(".");
    +  63  190
             if (pos >= 0) {
    +  64  181
                 ret = fileName.substring(pos + 1, fileName.length()).toLowerCase();
     65  
             }
    -  66  199
             return ret;
    +  66  190
             return ret;
     67  
         }
     68   @@ -162,290 +162,253 @@
          */
     76  
         public static void delete(File file) throws IOException {
    -  77  35
             if (file.isDirectory()) {
    -  78  32
                 for (File c : file.listFiles()) {
    -  79  28
                     delete(c);
    +  77  18
             if (file.isDirectory()) {
    +  78  16
                 for (File c : file.listFiles()) {
    +  79  14
                     delete(c);
     80  
                 }
     81  
             }
    -  82  35
             if (!org.apache.commons.io.FileUtils.deleteQuietly(file)) {
    -  83   -
                 //if (!file.delete()) {
    -  84  0
                 throw new FileNotFoundException("Failed to delete file: " + file);
    +  82  18
             if (!org.apache.commons.io.FileUtils.deleteQuietly(file)) {
    +  83  0
                 throw new FileNotFoundException("Failed to delete file: " + file);
    +  84   +
             }
     85   -
             } else {
    -  86  35
                 file.deleteOnExit();
    +
             /* else {
    +  86   +
              //delete on exit was a bad idea. if for some reason the file can't be deleted
     87   -
             }
    -  88  35
         }
    +
              // this will cause a newly constructed file to be deleted and a subsequent run may fail.
    +  88   +
              // still not sure why a file fails to be deleted, but can be overwritten... odd.
     89   -
     
    +
              file.deleteOnExit();
     90   -
         /**
    -  91   -
          * Deletes a file. If the File is a directory it will recursively delete the
    +
              }*/
    +  91  18
         }
     92   -
          * contents.
    +
     
     93   -
          *
    +
         /**
     94   -
          * @param file the File to delete
    -  95   -
          * @param deleteOnExit setting this to true will cause errors to be ignored
    -  96   -
          * and if there is an error deleting the file it will be setup to be deleted
    -  97   -
          * when the JVM exits.
    -  98   -
          * @throws IOException is thrown if the file could not be deleted
    -  99   -
          */
    -  100   -
         public static void delete(File file, boolean deleteOnExit) throws IOException {
    -  101  0
             if (file.isDirectory()) {
    -  102  0
                 for (File c : file.listFiles()) {
    -  103  0
                     delete(c);
    -  104   -
                 }
    -  105   -
             }
    -  106  0
             if (!org.apache.commons.io.FileUtils.deleteQuietly(file)) {
    -  107   -
                 //if (!file.delete()) {
    -  108  0
                 if (deleteOnExit) {
    -  109  0
                     file.deleteOnExit();
    -  110   -
                 } else {
    -  111  0
                     throw new FileNotFoundException("Failed to delete file: " + file);
    -  112   -
                 }
    -  113   -
             }
    -  114  0
         }
    -  115   -
     
    -  116   -
         /**
    -  117  
          * Returns the data directory. If a path was specified in
    -  118   +  95  
          * dependencycheck.properties or was specified using the Settings object,
    -  119   +  96  
          * and the path exists, that path will be returned as a File object. If it
    -  120   +  97  
          * does not exist, then a File object will be created based on the file
    -  121   +  98  
          * location of the JAR containing the specified class.
    -  122   +  99  
          *
    -  123   +  100  
          * @param configuredFilePath the configured relative or absolute path
    -  124   +  101  
          * @param clazz the class whos path will be resolved
    -  125   +  102  
          * @return a File object
    -  126   +  103  
          * @throws IOException is thrown if the path could not be decoded
    -  127   +  104  
          * @deprecated This method should no longer be used. See the implementation
    -  128   +  105  
          * in dependency-check-cli/App.java to see how the data directory should be
    -  129   +  106  
          * set.
    -  130   +  107  
          */
    -  131   +  108  
         @java.lang.Deprecated
    -  132   +  109  
         public static File getDataDirectory(String configuredFilePath, Class clazz) throws IOException {
    -  133  0
             final File file = new File(configuredFilePath);
    -  134  0
             if (file.isDirectory() && file.canWrite()) {
    -  135  0
                 return new File(file.getCanonicalPath());
    -  136   +  110  0
             final File file = new File(configuredFilePath);
    +  111  0
             if (file.isDirectory() && file.canWrite()) {
    +  112  0
                 return new File(file.getCanonicalPath());
    +  113  
             } else {
    -  137  0
                 final File exePath = getPathToJar(clazz);
    -  138  0
                 return new File(exePath, configuredFilePath);
    -  139   +  114  0
                 final File exePath = getPathToJar(clazz);
    +  115  0
                 return new File(exePath, configuredFilePath);
    +  116  
             }
    -  140   +  117  
         }
    -  141   +  118  
     
    -  142   +  119  
         /**
    -  143   +  120  
          * Retrieves the physical path to the parent directory containing the
    -  144   +  121  
          * provided class. For example, if a JAR file contained a class
    -  145   +  122  
          * org.something.clazz this method would return the parent directory of the
    -  146   +  123  
          * JAR file.
    -  147   +  124  
          *
    -  148   +  125  
          * @param clazz the class to determine the parent directory of
    -  149   +  126  
          * @return the parent directory of the file containing the specified class.
    -  150   +  127  
          * @throws UnsupportedEncodingException thrown if UTF-8 is not supported.
    -  151   +  128  
          * @deprecated this should no longer be used.
    -  152   +  129  
          */
    -  153   +  130  
         @java.lang.Deprecated
    -  154   +  131  
         public static File getPathToJar(Class clazz) throws UnsupportedEncodingException {
    -  155  0
             final String filePath = clazz.getProtectionDomain().getCodeSource().getLocation().getPath();
    -  156  0
             final String decodedPath = URLDecoder.decode(filePath, "UTF-8");
    -  157  0
             final File jarPath = new File(decodedPath);
    -  158  0
             return jarPath.getParentFile();
    -  159   +  132  0
             final String filePath = clazz.getProtectionDomain().getCodeSource().getLocation().getPath();
    +  133  0
             final String decodedPath = URLDecoder.decode(filePath, "UTF-8");
    +  134  0
             final File jarPath = new File(decodedPath);
    +  135  0
             return jarPath.getParentFile();
    +  136  
         }
    -  160   +  137  
     
    -  161   +  138  
         /**
    -  162   +  139  
          * Extracts the contents of an archive into the specified directory.
    -  163   +  140  
          *
    -  164   +  141  
          * @param archive an archive file such as a WAR or EAR
    -  165   +  142  
          * @param extractTo a directory to extract the contents to
    -  166   +  143  
          * @throws ExtractionException thrown if an exception occurs while
    -  167   +  144  
          * extracting the files
    -  168   +  145  
          */
    -  169   +  146  
         public static void extractFiles(File archive, File extractTo) throws ExtractionException {
    -  170  2
             extractFiles(archive, extractTo, null);
    -  171  2
         }
    -  172   +  147  1
             extractFiles(archive, extractTo, null);
    +  148  1
         }
    +  149  
     
    -  173   +  150  
         /**
    -  174   +  151  
          * Extracts the contents of an archive into the specified directory. The
    -  175   +  152  
          * files are only extracted if they are supported by the analyzers loaded
    -  176   +  153  
          * into the specified engine. If the engine is specified as null then all
    -  177   +  154  
          * files are extracted.
    -  178   +  155  
          *
    -  179   +  156  
          * @param archive an archive file such as a WAR or EAR
    -  180   +  157  
          * @param extractTo a directory to extract the contents to
    -  181   +  158  
          * @param engine the scanning engine
    -  182   +  159  
          * @throws ExtractionException thrown if there is an error extracting the
    -  183   +  160  
          * files
    -  184   +  161  
          */
    -  185   +  162  
         public static void extractFiles(File archive, File extractTo, Engine engine) throws ExtractionException {
    -  186  2
             if (archive == null || extractTo == null) {
    -  187  0
                 return;
    -  188   +  163  1
             if (archive == null || extractTo == null) {
    +  164  0
                 return;
    +  165  
             }
    -  189   +  166  
     
    -  190  2
             FileInputStream fis = null;
    -  191  2
             ZipInputStream zis = null;
    -  192   +  167  1
             FileInputStream fis = null;
    +  168  1
             ZipInputStream zis = null;
    +  169  
     
    -  193   +  170  
             try {
    -  194  2
                 fis = new FileInputStream(archive);
    -  195  0
             } catch (FileNotFoundException ex) {
    -  196  0
                 Logger.getLogger(FileUtils.class.getName()).log(Level.INFO, null, ex);
    -  197  0
                 throw new ExtractionException("Archive file was not found.", ex);
    -  198  2
             }
    -  199  2
             zis = new ZipInputStream(new BufferedInputStream(fis));
    -  200   +  171  1
                 fis = new FileInputStream(archive);
    +  172  0
             } catch (FileNotFoundException ex) {
    +  173  0
                 Logger.getLogger(FileUtils.class.getName()).log(Level.INFO, null, ex);
    +  174  0
                 throw new ExtractionException("Archive file was not found.", ex);
    +  175  1
             }
    +  176  1
             zis = new ZipInputStream(new BufferedInputStream(fis));
    +  177  
             ZipEntry entry;
    -  201   +  178  
             try {
    -  202  36
                 while ((entry = zis.getNextEntry()) != null) {
    -  203  34
                     if (entry.isDirectory()) {
    -  204  4
                         final File d = new File(extractTo, entry.getName());
    -  205  4
                         if (!d.exists() && !d.mkdirs()) {
    -  206  0
                             final String msg = String.format("Unable to create '%s'.", d.getAbsolutePath());
    -  207  0
                             throw new ExtractionException(msg);
    -  208   +  179  18
                 while ((entry = zis.getNextEntry()) != null) {
    +  180  17
                     if (entry.isDirectory()) {
    +  181  2
                         final File d = new File(extractTo, entry.getName());
    +  182  2
                         if (!d.exists() && !d.mkdirs()) {
    +  183  0
                             final String msg = String.format("Unable to create '%s'.", d.getAbsolutePath());
    +  184  0
                             throw new ExtractionException(msg);
    +  185  
                         }
    -  209  4
                     } else {
    -  210  30
                         final File file = new File(extractTo, entry.getName());
    -  211  30
                         final String ext = getFileExtension(file.getName());
    -  212  30
                         if (engine == null || engine.supportsExtension(ext)) {
    -  213  30
                             BufferedOutputStream bos = null;
    -  214   +  186  2
                     } else {
    +  187  15
                         final File file = new File(extractTo, entry.getName());
    +  188  15
                         final String ext = getFileExtension(file.getName());
    +  189  15
                         if (engine == null || engine.supportsExtension(ext)) {
    +  190  15
                             BufferedOutputStream bos = null;
    +  191  
                             FileOutputStream fos;
    -  215   +  192  
                             try {
    -  216  30
                                 fos = new FileOutputStream(file);
    -  217  30
                                 bos = new BufferedOutputStream(fos, BUFFER_SIZE);
    -  218   +  193  15
                                 fos = new FileOutputStream(file);
    +  194  15
                                 bos = new BufferedOutputStream(fos, BUFFER_SIZE);
    +  195  
                                 int count;
    -  219  30
                                 final byte data[] = new byte[BUFFER_SIZE];
    -  220  191432
                                 while ((count = zis.read(data, 0, BUFFER_SIZE)) != -1) {
    -  221  191402
                                     bos.write(data, 0, count);
    -  222   +  196  15
                                 final byte data[] = new byte[BUFFER_SIZE];
    +  197  91875
                                 while ((count = zis.read(data, 0, BUFFER_SIZE)) != -1) {
    +  198  91860
                                     bos.write(data, 0, count);
    +  199  
                                 }
    -  223  30
                                 bos.flush();
    -  224  0
                             } catch (FileNotFoundException ex) {
    -  225  0
                                 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, null, ex);
    -  226  0
                                 final String msg = String.format("Unable to find file '%s'.", file.getName());
    -  227  0
                                 throw new ExtractionException(msg, ex);
    -  228  0
                             } catch (IOException ex) {
    -  229  0
                                 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, null, ex);
    -  230  0
                                 final String msg = String.format("IO Exception while parsing file '%s'.", file.getName());
    -  231  0
                                 throw new ExtractionException(msg, ex);
    -  232   +  200  15
                                 bos.flush();
    +  201  0
                             } catch (FileNotFoundException ex) {
    +  202  0
                                 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, null, ex);
    +  203  0
                                 final String msg = String.format("Unable to find file '%s'.", file.getName());
    +  204  0
                                 throw new ExtractionException(msg, ex);
    +  205  0
                             } catch (IOException ex) {
    +  206  0
                                 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, null, ex);
    +  207  0
                                 final String msg = String.format("IO Exception while parsing file '%s'.", file.getName());
    +  208  0
                                 throw new ExtractionException(msg, ex);
    +  209  
                             } finally {
    -  233  30
                                 if (bos != null) {
    -  234   +  210  15
                                 if (bos != null) {
    +  211  
                                     try {
    -  235  30
                                         bos.close();
    -  236  0
                                     } catch (IOException ex) {
    -  237  0
                                         Logger.getLogger(FileUtils.class.getName()).log(Level.FINEST, null, ex);
    -  238  30
                                     }
    -  239   +  212  15
                                         bos.close();
    +  213  0
                                     } catch (IOException ex) {
    +  214  0
                                         Logger.getLogger(FileUtils.class.getName()).log(Level.FINEST, null, ex);
    +  215  15
                                     }
    +  216  
                                 }
    -  240   +  217  
                             }
    -  241   +  218  
                         }
    -  242  30
                     }
    -  243   +  219  15
                     }
    +  220  
                 }
    -  244  0
             } catch (IOException ex) {
    -  245  0
                 final String msg = String.format("Exception reading archive '%s'.", archive.getName());
    -  246  0
                 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, msg, ex);
    -  247  0
                 throw new ExtractionException(msg, ex);
    -  248   +  221  0
             } catch (IOException ex) {
    +  222  0
                 final String msg = String.format("Exception reading archive '%s'.", archive.getName());
    +  223  0
                 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, msg, ex);
    +  224  0
                 throw new ExtractionException(msg, ex);
    +  225  
             } finally {
    -  249  0
                 try {
    -  250  2
                     zis.close();
    -  251  0
                 } catch (IOException ex) {
    -  252  0
                     Logger.getLogger(FileUtils.class.getName()).log(Level.FINEST, null, ex);
    -  253  2
                 }
    -  254  0
             }
    -  255  2
         }
    -  256   +  226  0
                 try {
    +  227  1
                     zis.close();
    +  228  0
                 } catch (IOException ex) {
    +  229  0
                     Logger.getLogger(FileUtils.class.getName()).log(Level.FINEST, null, ex);
    +  230  1
                 }
    +  231  0
             }
    +  232  1
         }
    +  233  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Filter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Filter.html index f632201ef..10b88ee16 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Filter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Filter.html @@ -56,19 +56,19 @@
     
     19  
         public Iterator<T> filter(Iterator<T> iterator) {
    -  20  957
             return new FilterIterator(iterator);
    +  20  1461
             return new FilterIterator(iterator);
     21  
         }
     22  
     
     23  
         public Iterable<T> filter(final Iterable<T> iterable) {
    -  24  957
             return new Iterable<T>() {
    +  24  1461
             return new Iterable<T>() {
     25  
     
     26  
                 public Iterator<T> iterator() {
    -  27  957
                     return filter(iterable.iterator());
    +  27  1461
                     return filter(iterable.iterator());
     28  
                 }
     29   @@ -86,28 +86,28 @@
             private T next;
     36  
     
    -  37  957
             private FilterIterator(Iterator<T> iterator) {
    -  38  957
                 this.iterator = iterator;
    -  39  957
                 toNext();
    -  40  957
             }
    +  37  1461
             private FilterIterator(Iterator<T> iterator) {
    +  38  1461
                 this.iterator = iterator;
    +  39  1461
                 toNext();
    +  40  1461
             }
     41  
     
     42  
             public boolean hasNext() {
    -  43  5124
                 return next != null;
    +  43  7338
                 return next != null;
     44  
             }
     45  
     
     46  
             public T next() {
    -  47  4436
                 if (next == null) {
    +  47  6270
                 if (next == null) {
     48  0
                     throw new NoSuchElementException();
     49  
                 }
    -  50  4436
                 T returnValue = next;
    -  51  4436
                 toNext();
    -  52  4436
                 return returnValue;
    +  50  6270
                 T returnValue = next;
    +  51  6270
                 toNext();
    +  52  6270
                 return returnValue;
     53  
             }
     54   @@ -121,22 +121,22 @@
     
     59  
             private void toNext() {
    -  60  5393
                 next = null;
    -  61  8216
                 while (iterator.hasNext()) {
    -  62  7514
                     T item = iterator.next();
    -  63  7514
                     if (item != null && passes(item)) {
    -  64  4691
                         next = item;
    -  65  4691
                         break;
    +  60  7731
                 next = null;
    +  61  11648
                 while (iterator.hasNext()) {
    +  62  10564
                     T item = iterator.next();
    +  63  10564
                     if (item != null && passes(item)) {
    +  64  6647
                         next = item;
    +  65  6647
                         break;
     66  
                     }
    -  67  2823
                 }
    -  68  5393
             }
    +  67  3917
                 }
    +  68  7731
             }
     69  
         }
     70  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.InvalidSettingException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.InvalidSettingException.html index 70cbb7428..f84162388 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.InvalidSettingException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.InvalidSettingException.html @@ -149,6 +149,6 @@
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.NonClosingStream.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.NonClosingStream.html index 0b788ea06..2ea84ea34 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.NonClosingStream.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.NonClosingStream.html @@ -93,8 +93,8 @@
          */
     38  
         public NonClosingStream(InputStream in) {
    -  39  5
             super(in);
    -  40  5
         }
    +  39  7
             super(in);
    +  40  7
         }
     41  
     
     42   @@ -109,11 +109,11 @@
         public void close() {
     47  
             // don't close the stream.
    -  48  5
         }
    +  48  7
         }
     49  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Settings.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Settings.html index 2329c3f49..af36d39a6 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Settings.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Settings.html @@ -360,8 +360,8 @@
          */
     180  
         public static void setString(String key, String value) {
    -  181  14
             INSTANCE.props.setProperty(key, value);
    -  182  14
         }
    +  181  17
             INSTANCE.props.setProperty(key, value);
    +  182  17
         }
     183  
     
     184   @@ -471,10 +471,10 @@
          */
     241  
         public static File getFile(String key) {
    -  242  53
             final String file = getString(key);
    -  243  53
             final String baseDir = getString(Settings.KEYS.DATA_DIRECTORY);
    -  244  53
             if (baseDir != null) {
    -  245  53
                 if (baseDir.startsWith("[JAR]/")) {
    +  242  60
             final String file = getString(key);
    +  243  60
             final String baseDir = getString(Settings.KEYS.DATA_DIRECTORY);
    +  244  60
             if (baseDir != null) {
    +  245  60
                 if (baseDir.startsWith("[JAR]/")) {
     246  0
                     final File jarPath = getJarPath();
     247  0
                     final File newBase = new File(jarPath, baseDir.substring(6));
     248  0
                     if (Settings.KEYS.DATA_DIRECTORY.equals(key)) {
    @@ -484,11 +484,11 @@  251  0
                     return new File(newBase, file);
     252  
                 }
    -  253  53
                 if (Settings.KEYS.DATA_DIRECTORY.equals(key)) {
    -  254  16
                     return new File(baseDir);
    +  253  60
                 if (Settings.KEYS.DATA_DIRECTORY.equals(key)) {
    +  254  25
                     return new File(baseDir);
     255  
                 }
    -  256  37
                 return new File(baseDir, file);
    +  256  35
                 return new File(baseDir, file);
     257  
             }
     258  0
             return new File(file);
    @@ -554,8 +554,8 @@
          */
     294  
         public static String getString(String key, String defaultValue) {
    -  295  9
             final String str = System.getProperty(key, INSTANCE.props.getProperty(key, defaultValue));
    -  296  9
             return str;
    +  295  21
             final String str = System.getProperty(key, INSTANCE.props.getProperty(key, defaultValue));
    +  296  21
             return str;
     297  
         }
     298   @@ -572,7 +572,7 @@
          */
     304  
         public static File getTempDirectory() {
    -  305  5
             return new File(Settings.getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir")));
    +  305  6
             return new File(Settings.getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir")));
     306  
         }
     307   @@ -597,7 +597,7 @@
          */
     317  
         public static String getString(String key) {
    -  318  129
             return System.getProperty(key, INSTANCE.props.getProperty(key));
    +  318  143
             return System.getProperty(key, INSTANCE.props.getProperty(key));
     319  
         }
     320   @@ -616,8 +616,8 @@
          */
     327  
         public static void removeProperty(String key) {
    -  328  4
             INSTANCE.props.remove(key);
    -  329  4
         }
    +  328  1
             INSTANCE.props.remove(key);
    +  329  1
         }
     330  
     
     331   @@ -763,17 +763,17 @@
             boolean value;
     410  
             try {
    -  411  3
                 value = Boolean.parseBoolean(Settings.getString(key));
    +  411  4
                 value = Boolean.parseBoolean(Settings.getString(key));
     412  0
             } catch (NumberFormatException ex) {
     413  0
                 throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex);
    -  414  3
             }
    -  415  3
             return value;
    +  414  4
             }
    +  415  4
             return value;
     416  
         }
     417  
     }
    - + diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.UrlStringUtils.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.UrlStringUtils.html index 862c4cd9e..7df920945 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.UrlStringUtils.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.UrlStringUtils.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    UrlStringUtils
    82%
    19/23
    66%
    8/12
    2.5
    UrlStringUtils
    82%
    19/23
    75%
    9/12
    2.5
     
    @@ -125,7 +125,7 @@
          */
     56  
         public static boolean containsUrl(String text) {
    -  57  22799
             return CONTAINS_URL_TEST.matcher(text).matches();
    +  57  20636
             return CONTAINS_URL_TEST.matcher(text).matches();
     58  
         }
     59   @@ -144,7 +144,7 @@
          */
     66  
         public static boolean isUrl(String text) {
    -  67  77
             return IS_URL_TEST.matcher(text).matches();
    +  67  135
             return IS_URL_TEST.matcher(text).matches();
     68  
         }
     69   @@ -155,69 +155,71 @@
          * is an incomplete list.
     72  
          */
    -  73  1
         private static final HashSet<String> IGNORE_LIST = new HashSet<String>(Arrays.asList("www", "com", "org", "gov", "info", "name", "net", "pro", "tel", "mobi", "xxx"));
    +  73  1
         private static final HashSet<String> IGNORE_LIST = new HashSet<String>(
     74   -
     
    +
                 Arrays.asList("www", "com", "org", "gov", "info", "name", "net", "pro", "tel", "mobi", "xxx"));
     75   -
         /**
    +
     
     76   -
          * <p>Takes a URL, in String format, and adds the important parts of the URL
    +
         /**
     77   -
          * to a list of strings.</p>
    +
          * <p>Takes a URL, in String format, and adds the important parts of the URL
     78   -
          * <p>Example, given the following input:</p>
    +
          * to a list of strings.</p>
     79   -
          * <code>"https://www.somedomain.com/path1/path2/file.php?id=439"</code>
    +
          * <p>Example, given the following input:</p>
     80   -
          * <p>The function would return:</p>
    +
          * <code>"https://www.somedomain.com/path1/path2/file.php?id=439"</code>
     81   -
          * <code>{"somedomain", "path1", "path2", "file"}</code>
    +
          * <p>The function would return:</p>
     82   -
          *
    +
          * <code>{"somedomain", "path1", "path2", "file"}</code>
     83   -
          * @param text a URL
    +
          *
     84   -
          * @return importantParts a list of the important parts of the URL
    +
          * @param text a URL
     85   -
          * @throws MalformedURLException thrown if the URL is malformed
    +
          * @return importantParts a list of the important parts of the URL
     86   -
          */
    +
          * @throws MalformedURLException thrown if the URL is malformed
     87   +
          */
    +  88  
         public static List<String> extractImportantUrlData(String text) throws MalformedURLException {
    -  88  77
             final ArrayList<String> importantParts = new ArrayList<String>();
    -  89  77
             final URL url = new URL(text);
    -  90  77
             final String[] domain = url.getHost().split("\\.");
    -  91   +  89  135
             final ArrayList<String> importantParts = new ArrayList<String>();
    +  90  135
             final URL url = new URL(text);
    +  91  135
             final String[] domain = url.getHost().split("\\.");
    +  92  
             //add the domain except www and the tld.
    -  92  230
             for (int i = 0; i < domain.length - 1; i++) {
    -  93  153
                 final String sub = domain[i];
    -  94  153
                 if (!IGNORE_LIST.contains(sub.toLowerCase())) {
    -  95  125
                     importantParts.add(sub);
    -  96   -
                 }
    +  93  404
             for (int i = 0; i < domain.length - 1; i++) {
    +  94  269
                 final String sub = domain[i];
    +  95  269
                 if (!IGNORE_LIST.contains(sub.toLowerCase())) {
    +  96  185
                     importantParts.add(sub);
     97   -
             }
    -  98  77
             final String document = url.getPath();
    -  99  77
             final String[] pathParts = document.split("[\\//]");
    -  100  77
             for (int i = 0; i < pathParts.length - 2; i++) {
    -  101  0
                 if (!pathParts[i].isEmpty()) {
    -  102  0
                     importantParts.add(pathParts[i]);
    -  103  
                 }
    +  98   +
             }
    +  99  135
             final String document = url.getPath();
    +  100  135
             final String[] pathParts = document.split("[\\//]");
    +  101  135
             for (int i = 0; i < pathParts.length - 2; i++) {
    +  102  0
                 if (!pathParts[i].isEmpty()) {
    +  103  0
                     importantParts.add(pathParts[i]);
     104   +
                 }
    +  105  
             }
    -  105  77
             if (pathParts.length > 0 && !pathParts[pathParts.length - 1].isEmpty()) {
    -  106  47
                 final String fileNameNoExt = pathParts[pathParts.length - 1].replaceAll("\\..*{0,5}$", "");
    -  107  47
                 importantParts.add(fileNameNoExt);
    -  108   +  106  135
             if (pathParts.length > 0 && !pathParts[pathParts.length - 1].isEmpty()) {
    +  107  47
                 final String fileNameNoExt = pathParts[pathParts.length - 1].replaceAll("\\..*{0,5}$", "");
    +  108  47
                 importantParts.add(fileNameNoExt);
    +  109  
             }
    -  109  77
             return importantParts;
    -  110   -
         }
    +  110  135
             return importantParts;
     111   +
         }
    +  112  
     }
    - + diff --git a/dependency-check-core/cpd.html b/dependency-check-core/cpd.html index c8a15b356..dd790eb4e 100644 --- a/dependency-check-core/cpd.html +++ b/dependency-check-core/cpd.html @@ -1,13 +1,13 @@ - + dependency-check-core - CPD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-core/dependency-updates-report.html b/dependency-check-core/dependency-updates-report.html index 884f04c8e..d372d50b3 100644 --- a/dependency-check-core/dependency-updates-report.html +++ b/dependency-check-core/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-core - Dependency Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -230,7 +230,7 @@ # of dependencies where the next version available is an incremental version update -5 +6 # of dependencies where the next version available is a minor version update @@ -258,7 +258,7 @@ Next Minor Next Major - + com.google.code.findbugs annotations 2.0.1 @@ -266,7 +266,7 @@ jar - +2.0.2 @@ -450,6 +450,18 @@ 4.4.0 + +org.apache.maven.scm +maven-scm-provider-cvsexe +1.8.1 +provided + +jar + + + + + org.apache.struts struts2-core @@ -461,7 +473,7 @@ 2.1.6 2.2.1 - + org.apache.velocity velocity @@ -473,7 +485,7 @@ - + org.apache.velocity velocity-tools @@ -485,7 +497,7 @@ - + org.dojotoolkit dojo-war @@ -497,7 +509,7 @@ 1.3.1 1.4.2 - + org.glassfish.main.admingui war @@ -509,7 +521,7 @@ - + org.jsoup jsoup @@ -521,7 +533,7 @@ - + org.mortbay.jetty jetty @@ -533,7 +545,7 @@ 6.1.17 - + org.springframework spring-webmvc @@ -545,7 +557,7 @@ 2.5.6 3.0.0.RELEASE - + Status Group Id Artifact Id @@ -563,27 +575,30 @@

    com.google.code.findbugs:annotations

    - - - + + + - + - + - + - + - + -
    Status No newer versions available.
    Status There is at least one newer incremental version available. Incremental updates are typically passive.
    Group Id com.google.code.findbugs
    Artifact Id annotations
    Current Version 2.0.1
    Scope compile
    Classifier
    Typejar
    +jar + +Newer versions +2.0.2 Next Incremental

    com.h2database:h2

    @@ -637,7 +652,7 @@ -
    jar
    Newer versions2.5.1 Next Incremental
    2.6 Next Minor
    2.6.1
    2.6.2
    3.0-RC1
    3.0-RC2 Latest Minor
    3.0 Next Major
    3.0.1 Latest Major
    +2.5.1 Next Incremental
    2.6 Next Minor
    2.6.1
    2.6.2
    2.6.3
    3.0-RC1
    3.0-RC2 Latest Minor
    3.0 Next Major
    3.0.1
    3.0.2
    3.0.3
    3.1 Latest Major

    commons-cli:commons-cli

    @@ -892,7 +907,7 @@ -
    jar
    Newer versions4.4.0 Next Minor
    +4.4.0 Next Minor
    4.5.0 Latest Minor

    org.apache.lucene:lucene-core

    @@ -919,7 +934,7 @@ -
    jar
    Newer versions4.4.0 Next Minor
    +4.4.0 Next Minor
    4.5.0 Latest Minor

    org.apache.lucene:lucene-queryparser

    @@ -946,7 +961,7 @@ -
    jar
    Newer versions4.4.0 Next Minor
    +4.4.0 Next Minor
    4.5.0 Latest Minor

    org.apache.lucene:lucene-test-framework

    @@ -973,7 +988,31 @@ -
    jar
    Newer versions4.4.0 Next Minor
    +4.4.0 Next Minor
    4.5.0 Latest Minor +
    +

    org.apache.maven.scm:maven-scm-provider-cvsexe

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.scm
    Artifact Idmaven-scm-provider-cvsexe
    Current Version1.8.1
    Scopeprovided
    Classifier
    Typejar

    org.apache.struts:struts2-core

    @@ -1000,7 +1039,7 @@ -
    jar
    Newer versions2.1.6 Next Incremental
    2.1.8
    2.1.8.1 Latest Incremental
    2.2.1 Next Minor
    2.2.1.1
    2.2.3
    2.2.3.1
    2.3.1
    2.3.1.1
    2.3.1.2
    2.3.3
    2.3.4
    2.3.4.1
    2.3.7
    2.3.8
    2.3.12
    2.3.14
    2.3.14.1
    2.3.14.2
    2.3.14.3
    2.3.15
    2.3.15.1 Latest Minor
    +2.1.6 Next Incremental
    2.1.8
    2.1.8.1 Latest Incremental
    2.2.1 Next Minor
    2.2.1.1
    2.2.3
    2.2.3.1
    2.3.1
    2.3.1.1
    2.3.1.2
    2.3.3
    2.3.4
    2.3.4.1
    2.3.7
    2.3.8
    2.3.12
    2.3.14
    2.3.14.1
    2.3.14.2
    2.3.14.3
    2.3.15
    2.3.15.1
    2.3.15.2 Latest Minor

    org.apache.velocity:velocity

    @@ -1075,7 +1114,7 @@ -
    war
    Newer versions1.3.1 Next Incremental
    1.3.2 Latest Incremental
    1.4.2 Next Minor
    1.4.3
    1.5.0
    1.6.0
    1.6.1
    1.7.0
    1.7.1
    1.7.2
    1.8.0
    1.8.1
    1.8.2
    1.8.3
    1.9.0b2
    1.9.0 Latest Minor
    +1.3.1 Next Incremental
    1.3.2 Latest Incremental
    1.4.2 Next Minor
    1.4.3
    1.5.0
    1.6.0
    1.6.1
    1.7.0
    1.7.1
    1.7.2
    1.8.0
    1.8.1
    1.8.2
    1.8.3
    1.9.0b2
    1.9.0
    1.9.1 Latest Minor

    org.glassfish.main.admingui:war

    diff --git a/dependency-check-core/failsafe-report.html b/dependency-check-core/failsafe-report.html index baa5439d6..14f789d29 100644 --- a/dependency-check-core/failsafe-report.html +++ b/dependency-check-core/failsafe-report.html @@ -1,13 +1,13 @@ - + dependency-check-core - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -246,12 +246,12 @@ function toggleDisplay(elementId) { - + -
    Success Rate Time
    68 0 0 0 100%387.58

    +697.048

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -272,7 +272,7 @@ function toggleDisplay(elementId) { 0 0 100% -11.066 +13.314 org.owasp.dependencycheck.utils 2 @@ -280,15 +280,15 @@ function toggleDisplay(elementId) { 0 0 100% -0.681 +18.994 org.owasp.dependencycheck.data.update -1 +3 0 0 0 100% -375.83 +664.736 org.owasp.dependencycheck.data.cpe 2 @@ -296,7 +296,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.003
    +0.004

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck

    @@ -318,7 +318,7 @@ function toggleDisplay(elementId) { 0 0 100% -11.066
    +13.314

    org.owasp.dependencycheck.utils

    @@ -339,7 +339,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.681
    +18.994

    org.owasp.dependencycheck.data.update

    @@ -360,7 +360,16 @@ function toggleDisplay(elementId) { -
    0 0 100%375.83
    +656.457 + + +StandardUpdateTaskIntegrationTest +2 +0 +0 +0 +100% +8.279

    org.owasp.dependencycheck.data.cpe

    @@ -381,7 +390,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.003

    +0.004

    Test Cases

    [Summary] [Package List] [Test Cases]

    @@ -391,7 +400,7 @@ function toggleDisplay(elementId) { testUpdateNeeded -0.003 +0.004 testUpdate @@ -402,25 +411,36 @@ function toggleDisplay(elementId) { testUpdate -375.83
    +656.457 +
    +

    StandardUpdateTaskIntegrationTest

    + + + + + + + + +
    testUpdatesNeeded5.678
    testUpdate2.601

    EngineIntegrationTest

    -
    testScan11.066
    +13.314

    DownloaderIntegrationTest

    - + -
    testGetLastModified0.053
    0.305
    testFetchFile0.628

    +18.689
    diff --git a/dependency-check-core/findbugs.html b/dependency-check-core/findbugs.html index 059e3e7be..c457b84ca 100644 --- a/dependency-check-core/findbugs.html +++ b/dependency-check-core/findbugs.html @@ -1,13 +1,13 @@ - + dependency-check-core - FindBugs Bug Detector Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -230,8 +230,8 @@ Errors Missing Classes -173 -8 +179 +7 0 0
    @@ -253,21 +253,18 @@ org.owasp.dependencycheck.concurrency.DirectorySpinLock 1 -org.owasp.dependencycheck.data.update.DatabaseUpdater -1 - org.owasp.dependencycheck.utils.Downloader 1

    org.owasp.dependencycheck.analyzer.ArchiveAnalyzer

    - + - + @@ -276,34 +273,34 @@

    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer

    Bug Category Details Line Priority
    exceptional return value of java.io.File.mkdirs() ignored in org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.initialize() BAD_PRACTICE RV_RETURN_VALUE_IGNORED_BAD_PRACTICE
    - + - - - - - - + + + + + + - +
    Bug Category Details Line Priority
    Possible null pointer dereference of currentVersion on branch that might be infeasible in org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.removeSpuriousCPE(Dependency)STYLENP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE162Medium
    Possible null pointer dereference of currentVersion in org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.removeSpuriousCPE(Dependency)CORRECTNESSNP_NULL_ON_SOME_PATH164Medium
    Possible null pointer dereference of nextVersion on branch that might be infeasible in org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.removeSpuriousCPE(Dependency) STYLE NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE162164 Medium

    org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer

    - + - + @@ -312,43 +309,28 @@

    org.owasp.dependencycheck.concurrency.DirectorySpinLock

    Bug Category Details Line Priority
    Dead store to extractComments in org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.analyze(Dependency, Engine) STYLE DLS_DEAD_LOCAL_STORE
    - + - + -
    Bug Category Details Line Priority
    exceptional return value of java.io.File.delete() ignored in org.owasp.dependencycheck.concurrency.DirectorySpinLock.close() BAD_PRACTICE RV_RETURN_VALUE_IGNORED_BAD_PRACTICE 247Medium
    -
    -

    org.owasp.dependencycheck.data.update.DatabaseUpdater

    - - - - - - - - - - - -
    BugCategoryDetailsLinePriority
    Null passed for nonnull parameter of new java.net.URL(String) in org.owasp.dependencycheck.data.update.DatabaseUpdater.retrieveCurrentTimestampsFromWeb()CORRECTNESSNP_NULL_PARAM_DEREF550 Medium

    org.owasp.dependencycheck.utils.Downloader

    - + - + diff --git a/dependency-check-core/index.html b/dependency-check-core/index.html index 2a1a93147..ff97116c0 100644 --- a/dependency-check-core/index.html +++ b/dependency-check-core/index.html @@ -1,13 +1,13 @@ - + dependency-check-core - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-core/license.html b/dependency-check-core/license.html index 66e3303d4..1d2525cd3 100644 --- a/dependency-check-core/license.html +++ b/dependency-check-core/license.html @@ -1,13 +1,13 @@ - + dependency-check-core - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-core/plugin-updates-report.html b/dependency-check-core/plugin-updates-report.html index 0bd762cc7..aeaab2568 100644 --- a/dependency-check-core/plugin-updates-report.html +++ b/dependency-check-core/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-core - Plugin Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -222,7 +222,7 @@ - + @@ -234,7 +234,7 @@ - + @@ -350,13 +350,13 @@ - + - - + + @@ -479,7 +479,7 @@ -
    Bug Category Details Line Priority
    Redundant nullcheck of conn which is known to be null in org.owasp.dependencycheck.utils.Downloader.getConnection(URL) STYLE RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE
    # of plugins using the latest version available3
    2
    # of plugins where the next version available is smaller than an incremental version update
    # of plugins where the next version available is a minor version update9
    10
    # of plugins where the next version available is a major version update3.0
    org.apache.maven.plugins maven-deploy-plugin2.72.7 2.8
    0.7
    Newer versions0.8 Next Minor
    +0.8 Next Minor
    0.9 Latest Minor

    Plugin org.apache.maven.plugins:maven-antrun-plugin

    @@ -575,7 +575,7 @@
    - + @@ -584,7 +584,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.plugins
    maven-deploy-plugin
    Current Version2.7
    +2.7 + +Newer versions +2.8 Next Minor

    Plugin org.apache.maven.plugins:maven-enforcer-plugin

    @@ -638,7 +641,7 @@ -
    2.3.1
    Newer versions2.4 Next Minor
    +2.4 Next Minor
    2.5 Latest Minor

    Plugin org.apache.maven.plugins:maven-jar-plugin

    diff --git a/dependency-check-core/pmd.html b/dependency-check-core/pmd.html index cb50b9133..c56c5a4e9 100644 --- a/dependency-check-core/pmd.html +++ b/dependency-check-core/pmd.html @@ -1,13 +1,13 @@ - + dependency-check-core - PMD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -261,194 +261,191 @@ - - - -
    Line
    These nested if statements could be combined152 - 171
    Avoid empty if statements156 - 158
    +152 - 173

    org/owasp/dependencycheck/analyzer/JarAnalyzer.java

    - + - - - - + + + + -
    Violation Line
    Useless parentheses.337
    Useless parentheses.825
    337
    Useless parentheses.834
    Avoid unused method parameters such as 'classes'.963
    +972

    org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.java

    - + - +
    Violation Line
    Avoid unused local variables such as 'extractComments'. 99

    org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.java

    - + - +
    Violation Line
    Useless parentheses. 78

    org/owasp/dependencycheck/concurrency/DirectorySpinLock.java

    - + - +
    Violation Line
    These nested if statements could be combined 243 - 248

    org/owasp/dependencycheck/data/cpe/BaseIndex.java

    - + - +
    Violation Line
    These nested if statements could be combined 111 - 113

    org/owasp/dependencycheck/data/cpe/IndexEntry.java

    - + - + - +
    Violation Line
    Useless parentheses. 171
    Useless parentheses. 174

    org/owasp/dependencycheck/data/nvdcve/CveDB.java

    - + - + - +
    Violation Line
    These nested if statements could be combined 517 - 519
    Useless parentheses. 664

    org/owasp/dependencycheck/dependency/Dependency.java

    - + - + - + - + - + - + - - - - + + + +
    Violation Line
    Useless parentheses. 493
    Useless parentheses. 496
    Useless parentheses. 499
    Useless parentheses. 502
    Useless parentheses. 505
    Useless parentheses.508
    Useless parentheses.527
    508
    Useless parentheses.527
    Useless parentheses. 530

    org/owasp/dependencycheck/dependency/Evidence.java

    - + - +
    Violation Line
    Useless parentheses. 228

    org/owasp/dependencycheck/dependency/Identifier.java

    - + - + - +
    Violation Line
    Useless parentheses. 150
    Useless parentheses. 153

    org/owasp/dependencycheck/dependency/Reference.java

    - + - - - - + + + +
    Violation Line
    Useless parentheses.111
    Useless parentheses.114
    111
    Useless parentheses.114
    Useless parentheses. 117

    org/owasp/dependencycheck/dependency/Vulnerability.java

    - + - +
    Violation Line
    Useless parentheses. 375

    org/owasp/dependencycheck/dependency/VulnerableSoftware.java

    - + - - - - + + + +
    Violation Line
    Useless parentheses.139
    Useless parentheses.179
    139
    Useless parentheses.179
    Useless parentheses. 184

    org/owasp/dependencycheck/utils/Checksum.java

    - + - +
    Violation Line
    Useless parentheses. 103

    org/owasp/dependencycheck/utils/DependencyVersion.java

    - + - + - +
    Violation Line
    Useless parentheses. 138
    Useless parentheses. 198
    diff --git a/dependency-check-core/project-info.html b/dependency-check-core/project-info.html index 1412d5986..c7d99d324 100644 --- a/dependency-check-core/project-info.html +++ b/dependency-check-core/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-core - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-core/project-reports.html b/dependency-check-core/project-reports.html index 2fe5daf51..6d8786672 100644 --- a/dependency-check-core/project-reports.html +++ b/dependency-check-core/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-core - Generated Reports @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-core/project-summary.html b/dependency-check-core/project-summary.html index 3b6df0b38..f944ce164 100644 --- a/dependency-check-core/project-summary.html +++ b/dependency-check-core/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-core - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -188,7 +188,7 @@ dependency-check-core Version -1.0.2 +1.0.3 Type jar diff --git a/dependency-check-core/surefire-report.html b/dependency-check-core/surefire-report.html index 726218d23..dfc201052 100644 --- a/dependency-check-core/surefire-report.html +++ b/dependency-check-core/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-core - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -246,12 +246,12 @@ function toggleDisplay(elementId) { Success Rate Time -102 +122 0 0 0 100% -57.107
    +46.97

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -267,12 +267,12 @@ function toggleDisplay(elementId) { Time org.owasp.dependencycheck.reporting -1 +2 0 0 0 100% -0 +20.273 org.owasp.dependencycheck.data.cwe 1 @@ -280,7 +280,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.016 +0 org.owasp.dependencycheck.dependency 23 @@ -288,7 +288,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.037 +0.019 org.owasp.dependencycheck.utils 29 @@ -296,7 +296,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.015 +0.033 org.owasp.dependencycheck.concurrency 3 @@ -304,7 +304,7 @@ function toggleDisplay(elementId) { 0 0 100% -9.54 +9.508 org.owasp.dependencycheck.analyzer 26 @@ -312,15 +312,15 @@ function toggleDisplay(elementId) { 0 0 100% -15.236 +12.012 org.owasp.dependencycheck.data.update -2 +21 0 0 0 100% -29.882 +3.191 org.owasp.dependencycheck.data.nvdcve 5 @@ -328,7 +328,7 @@ function toggleDisplay(elementId) { 0 0 100% -1.435 +0.993 org.owasp.dependencycheck.data.lucene 10 @@ -336,7 +336,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.946 +0.941 org.owasp.dependencycheck.data.cpe 2 @@ -361,12 +361,12 @@ function toggleDisplay(elementId) { ReportGeneratorTest -1 +2 0 0 0 100% -0
    +20.273

    org.owasp.dependencycheck.data.cwe

    @@ -387,7 +387,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.016
    +0

    org.owasp.dependencycheck.dependency

    @@ -408,7 +408,7 @@ function toggleDisplay(elementId) { - + @@ -438,7 +438,7 @@ function toggleDisplay(elementId) { - + @@ -447,7 +447,7 @@ function toggleDisplay(elementId) { - + @@ -513,7 +513,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.037
    0.019
    VulnerableSoftwareTest0 0 100%0.014
    0.033
    DependencyVersionTest0 0 100%0.001
    0
    DependencyVersionUtilTest0 0 100%9.54
    +9.508

    org.owasp.dependencycheck.analyzer

    @@ -534,7 +534,7 @@ function toggleDisplay(elementId) { - + @@ -543,7 +543,7 @@ function toggleDisplay(elementId) { - + @@ -552,7 +552,7 @@ function toggleDisplay(elementId) { - + @@ -561,7 +561,7 @@ function toggleDisplay(elementId) { - + @@ -570,7 +570,7 @@ function toggleDisplay(elementId) { - + @@ -579,7 +579,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.014
    0.02
    AnalyzerServiceTest0 0 100%0.493
    0.502
    ArchiveAnalyzerTest0 0 100%0.493
    0.591
    CPEAnalyzerTest0 0 100%12.73
    9.91
    FileNameAnalyzerTest0 0 100%0.027
    0.02
    JarAnalyzerTest0 0 100%1.479
    +0.969

    org.owasp.dependencycheck.data.update

    @@ -593,23 +593,50 @@ function toggleDisplay(elementId) { - - - + + + - + - - - + + + -
    Success Rate Time
    DatabaseUpdater_1_Test1AbstractUpdateTaskTest4 0 0 0 100%18.812
    0.171
    DatabaseUpdater_2_Test1BatchUpdateTaskTest2 0 0 0 100%11.07
    +3.02 + + +DataStoreMetaInfoTest +5 +0 +0 +0 +100% +0 + + +NvdCveInfoTest +5 +0 +0 +0 +100% +0 + + +UpdateableTest +5 +0 +0 +0 +100% +0

    org.owasp.dependencycheck.data.nvdcve

    @@ -630,7 +657,7 @@ function toggleDisplay(elementId) { - + @@ -639,7 +666,7 @@ function toggleDisplay(elementId) { - + @@ -648,7 +675,7 @@ function toggleDisplay(elementId) { -
    0 0 100%1.15
    0.711
    NvdCve_1_2_HandlerTest0 0 100%0.03
    0.055
    NvdCve_2_0_HandlerTest0 0 100%0.255
    +0.227

    org.owasp.dependencycheck.data.lucene

    @@ -669,7 +696,7 @@ function toggleDisplay(elementId) { - + @@ -687,7 +714,7 @@ function toggleDisplay(elementId) { - + @@ -696,7 +723,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.101
    0.089
    LuceneUtilsTest0 0 100%0.041
    0.046
    UrlTokenizingFilterTest0 0 100%0.804
    +0.806

    org.owasp.dependencycheck.data.cpe

    @@ -736,21 +763,21 @@ function toggleDisplay(elementId) { -
    testNewHashSet0.014
    +0.02

    AnalyzerServiceTest

    -
    testGetAnalyzers0.493
    +0.502

    ArchiveAnalyzerTest

    - + @@ -770,7 +797,7 @@ function toggleDisplay(elementId) { - + @@ -781,30 +808,30 @@ function toggleDisplay(elementId) { - + - + - + - + -
    testAnalyze0.486
    0.585
    testGetAnalysisPhase
    testSupportsExtension0.001
    0
    testGetSupportedExtensions
    testSearchCPE1.697
    3.724
    testDetermineCPE2.496
    3.124
    testOpen1.451
    0.171
    testDetermineCPE_full7.085
    2.891
    testBuildSearch0.001
    +0

    FileNameAnalyzerTest

    - + @@ -828,45 +855,45 @@ function toggleDisplay(elementId) { -
    testAnalyze0.027
    0.019
    testClose
    testGetSupportedExtensions0
    +0.001

    JarAnalyzerTest

    - + - + - + - + -
    testAnalyze0.287
    0.262
    testGetName0.288
    0.168
    testInterpolateString0.289
    0.169
    testSupportsExtension0.263
    0.166
    testGetSupportedExtensions0.352
    +0.204

    DirectorySpinLockTest

    - + - + -
    testObtainSharedLock2.014
    2.002
    testObtainSharedLock_withContention6.024
    6.002
    testObtainExclusiveLock1.502
    +1.504

    BaseIndexTest

    @@ -887,14 +914,14 @@ function toggleDisplay(elementId) { -
    testGetCweName0.016
    +0

    FieldAnalyzerTest

    -
    testAnalyzers0.101
    +0.089

    LuceneUtilsTest

    @@ -920,69 +947,154 @@ function toggleDisplay(elementId) { - + -
    testExamples0.034
    0.038
    testClear0.007
    +0.008

    UrlTokenizingFilterTest

    - - + + - + - -
    testEmptyTerm0.011
    testExamples0.038
    testRandomStrings0.788
    0.761
    testExamples0.005
    +testEmptyTerm +0.007

    CveDBTest

    - + - + -
    testOpen0.214
    0.146
    testGetCPEs0.299
    0.135
    testGetVulnerabilities0.637
    +0.43

    NvdCve_1_2_HandlerTest

    -
    testParse0.03
    +0.055

    NvdCve_2_0_HandlerTest

    -
    testParse0.255
    +0.227
    -

    DatabaseUpdater_1_Test

    +

    AbstractUpdateTaskTest

    - -
    testBatchUpdate18.812
    +testOpenDataStores +0.122 + + +testSetDeleteAndRecreate +0 + + +testWithinRange +0.001 + + +testDeleteExistingData +0.048
    -

    DatabaseUpdater_2_Test

    +

    BatchUpdateTaskTest

    - -
    testBatchUpdateWithoutModified11.07
    +testSetDoBatchUpdate +0.141 + + +testUpdate +2.879 +
    +

    DataStoreMetaInfoTest

    + + + + + + + + + + + + + + + + + + + + +
    testIsBatchUpdateMode0
    testSave0
    testGetPropertiesFile0
    testGetProperty_String_String0
    testIsEmpty0
    +
    +

    NvdCveInfoTest

    + + + + + + + + + + + + + + + + + + + + +
    testSetGetTimestamp0
    testSetGetNeedsUpdate0
    testSetGetOldSchemaVersionUrl0
    testSetGetUrl0
    testSetGetId0
    +
    +

    UpdateableTest

    + + + + + + + + + + + + + + + + + + + + +
    testClear0
    testAdd_3args0
    testAdd_4args0
    testIsUpdateNeeded0
    testIterator0

    DependencyTest

    @@ -993,7 +1105,7 @@ function toggleDisplay(elementId) { - + @@ -1033,11 +1145,11 @@ function toggleDisplay(elementId) { - + - + @@ -1049,7 +1161,7 @@ function toggleDisplay(elementId) { - + @@ -1086,6 +1198,10 @@ function toggleDisplay(elementId) {
    testGetSha1sum0.017
    0.003
    testGetProductEvidence
    testGetFileName0.001
    0
    testGetFilePath0.001
    0
    testGetFileExtension
    testGetMd5sum0.018
    0.016
    testGetEvidence
    + + + +
    testGenerateXMLReport20.273
    testGenerateReport 0
    @@ -1094,7 +1210,7 @@ function toggleDisplay(elementId) { testGetChecksum_NoSuchAlgorithm -0.012 +0.032 testGetChecksum @@ -1106,7 +1222,7 @@ function toggleDisplay(elementId) { testGetChecksum_FileNotFound -0.001 +0 testGetHex @@ -1145,7 +1261,7 @@ function toggleDisplay(elementId) { testIterator -0.001
    +0

    DependencyVersionUtilTest

    diff --git a/dependency-check-core/taglist.html b/dependency-check-core/taglist.html index 25c03c89e..c79c1aabe 100644 --- a/dependency-check-core/taglist.html +++ b/dependency-check-core/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-core - Tag List report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -225,12 +225,12 @@ - +
    Tag strings used by tag class
    Todo Work3334 todo, FIXME

    Each tag is detailed below:

    Todo Work

    -

    Number of occurrences found in the code: 33

    +

    Number of occurrences found in the code: 34

    @@ -273,10 +273,10 @@ - + - + @@ -288,13 +288,13 @@ - + - + - + @@ -341,12 +341,6 @@ - - - - - - @@ -365,11 +359,23 @@ - + - + + + + + + + + + + + + + diff --git a/dependency-check-core/xref-test/allclasses-frame.html b/dependency-check-core/xref-test/allclasses-frame.html index f415f0e05..ae566932b 100644 --- a/dependency-check-core/xref-test/allclasses-frame.html +++ b/dependency-check-core/xref-test/allclasses-frame.html @@ -13,6 +13,12 @@
    • AbstractAnalyzerTest +
    • +
    • + AbstractUpdateImpl +
    • +
    • + AbstractUpdateTaskTest
    • AnalyzerServiceTest @@ -28,6 +34,9 @@
    • BaseIndexTestCase +
    • +
    • + BatchUpdateTaskTest
    • CPEAnalyzerTest @@ -40,15 +49,12 @@
    • CweDBTest +
    • +
    • + DataStoreMetaInfoTest
    • DatabaseUpdaterIntegrationTest -
    • -
    • - DatabaseUpdater_1_Test -
    • -
    • - DatabaseUpdater_2_Test
    • DependencyTest @@ -94,6 +100,9 @@
    • LuceneUtilsTest +
    • +
    • + NvdCveInfoTest
    • NvdCve_1_2_HandlerTest @@ -109,9 +118,15 @@
    • SpinLockTask +
    • +
    • + StandardUpdateTaskIntegrationTest
    • TokenPairConcatenatingFilterTest +
    • +
    • + UpdateableTest
    • UrlTokenizingFilterTest diff --git a/dependency-check-core/xref-test/index.html b/dependency-check-core/xref-test/index.html index e259d86e9..661cfcd9e 100644 --- a/dependency-check-core/xref-test/index.html +++ b/dependency-check-core/xref-test/index.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference + Dependency-Check Core 1.0.3 Reference diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/EngineIntegrationTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/EngineIntegrationTest.html index 9ac11c4b8..bc9cbde84 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/EngineIntegrationTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/EngineIntegrationTest.html @@ -74,7 +74,7 @@ 64 instance.analyzeDependencies(); 65 ReportGenerator rg = new ReportGenerator("DependencyCheck", 66 instance.getDependencies(), instance.getAnalyzers()); -67 rg.generateReports("./target/", "HTML"); +67 rg.generateReports("./target/", "ALL"); 68 } 69 } diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html index 98b9922a6..d4585187a 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html index cf5daf799..8e915e174 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-frame.html index 57cf0244c..d145861bd 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.concurrency + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.concurrency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-summary.html index f3095efb4..360707bd4 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.concurrency + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.concurrency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/CPEAnalyzerTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/CPEAnalyzerTest.html deleted file mode 100644 index 97a6e17fe..000000000 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/CPEAnalyzerTest.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - -CPEAnalyzerTest xref - - - -
      -
      -1   /*
      -2    * This file is part of dependency-check-core.
      -3    *
      -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
      -5    * under the terms of the GNU General Public License as published by the Free
      -6    * Software Foundation, either version 3 of the License, or (at your option) any
      -7    * later version.
      -8    *
      -9    * Dependency-check-core is distributed in the hope that it will be useful, but
      -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
      -12   * details.
      -13   *
      -14   * You should have received a copy of the GNU General Public License along with
      -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
      -16   *
      -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
      -18   */
      -19  package org.owasp.dependencycheck.data.cpe;
      -20  
      -21  import org.owasp.dependencycheck.data.cpe.IndexEntry;
      -22  import org.owasp.dependencycheck.data.cpe.CPEAnalyzer;
      -23  import java.io.File;
      -24  import java.io.IOException;
      -25  import java.util.HashSet;
      -26  import java.util.List;
      -27  import java.util.Set;
      -28  import org.apache.lucene.index.CorruptIndexException;
      -29  import org.apache.lucene.queryparser.classic.ParseException;
      -30  import org.junit.After;
      -31  import org.junit.AfterClass;
      -32  import org.owasp.dependencycheck.dependency.Dependency;
      -33  import org.owasp.dependencycheck.analyzer.JarAnalyzer;
      -34  import org.junit.Assert;
      -35  import org.junit.Before;
      -36  import org.junit.BeforeClass;
      -37  import org.junit.Test;
      -38  import org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer;
      -39  import org.owasp.dependencycheck.analyzer.FileNameAnalyzer;
      -40  import org.owasp.dependencycheck.analyzer.HintAnalyzer;
      -41  import static org.owasp.dependencycheck.data.cpe.BaseIndexTestCase.ensureIndexExists;
      -42  import org.owasp.dependencycheck.dependency.Identifier;
      -43  
      -44  /**
      -45   *
      -46   * @author Jeremy Long (jeremy.long@owasp.org)
      -47   */
      -48  public class CPEAnalyzerTest extends BaseIndexTestCase {
      -49  
      -50      @BeforeClass
      -51      public static void setUpClass() throws Exception {
      -52      }
      -53  
      -54      @AfterClass
      -55      public static void tearDownClass() throws Exception {
      -56      }
      -57  
      -58      @Before
      -59      public void setUp() throws Exception {
      -60          super.setUp();
      -61      }
      -62  
      -63      @After
      -64      public void tearDown() throws Exception {
      -65          super.tearDown();
      -66      }
      -67  
      -68      /**
      -69       * Tests of buildSearch of class CPEAnalyzer.
      -70       *
      -71       * @throws IOException is thrown when an IO Exception occurs.
      -72       * @throws CorruptIndexException is thrown when the index is corrupt.
      -73       * @throws ParseException is thrown when a parse exception occurs
      -74       */
      -75      @Test
      -76      public void testBuildSearch() throws IOException, CorruptIndexException, ParseException {
      -77          Set<String> productWeightings = new HashSet<String>(1);
      -78          productWeightings.add("struts2");
      -79  
      -80          Set<String> vendorWeightings = new HashSet<String>(1);
      -81          vendorWeightings.add("apache");
      -82  
      -83          String vendor = "apache software foundation";
      -84          String product = "struts 2 core";
      -85          String version = "2.1.2";
      -86          CPEAnalyzer instance = new CPEAnalyzer();
      -87  
      -88          String queryText = instance.buildSearch(vendor, product, null, null);
      -89          String expResult = " product:( struts 2 core )  AND  vendor:( apache software foundation ) ";
      -90          Assert.assertTrue(expResult.equals(queryText));
      -91  
      -92          queryText = instance.buildSearch(vendor, product, null, productWeightings);
      -93          expResult = " product:(  struts^5 struts2^5 2 core )  AND  vendor:( apache software foundation ) ";
      -94          Assert.assertTrue(expResult.equals(queryText));
      -95  
      -96          queryText = instance.buildSearch(vendor, product, vendorWeightings, null);
      -97          expResult = " product:( struts 2 core )  AND  vendor:(  apache^5 software foundation ) ";
      -98          Assert.assertTrue(expResult.equals(queryText));
      -99  
      -100         queryText = instance.buildSearch(vendor, product, vendorWeightings, productWeightings);
      -101         expResult = " product:(  struts^5 struts2^5 2 core )  AND  vendor:(  apache^5 software foundation ) ";
      -102         Assert.assertTrue(expResult.equals(queryText));
      -103     }
      -104 
      -105     /**
      -106      * Test of open method, of class CPEAnalyzer.
      -107      *
      -108      * @throws Exception is thrown when an exception occurs
      -109      */
      -110     @Test
      -111     public void testOpen() throws Exception {
      -112         CPEAnalyzer instance = new CPEAnalyzer();
      -113         Assert.assertFalse(instance.isOpen());
      -114         instance.open();
      -115         Assert.assertTrue(instance.isOpen());
      -116         instance.close();
      -117         Assert.assertFalse(instance.isOpen());
      -118     }
      -119 
      -120     /**
      -121      * Test of determineCPE method, of class CPEAnalyzer.
      -122      *
      -123      * @throws Exception is thrown when an exception occurs
      -124      */
      -125     @Test
      -126     public void testDetermineCPE_full() throws Exception {
      -127         callDetermineCPE_full("spring-context-support-2.5.5.jar", "cpe:/a:vmware:springsource_spring_framework:2.5.5");
      -128         callDetermineCPE_full("spring-core-3.0.0.RELEASE.jar", "cpe:/a:vmware:springsource_spring_framework:3.0.0");
      -129         callDetermineCPE_full("org.mortbay.jetty.jar", "cpe:/a:mortbay_jetty:jetty:4.2");
      -130         callDetermineCPE_full("jaxb-xercesImpl-1.5.jar", null);
      -131         callDetermineCPE_full("ehcache-core-2.2.0.jar", null);
      -132     }
      -133 
      -134     /**
      -135      * Test of determineCPE method, of class CPEAnalyzer.
      -136      *
      -137      * @throws Exception is thrown when an exception occurs
      -138      */
      -139     public void callDetermineCPE_full(String depName, String expResult) throws Exception {
      -140 
      -141         File file = new File(this.getClass().getClassLoader().getResource(depName).getPath());
      -142         Dependency dep = new Dependency(file);
      -143 
      -144         FileNameAnalyzer fnAnalyzer = new FileNameAnalyzer();
      -145         fnAnalyzer.analyze(dep, null);
      -146 
      -147         JarAnalyzer jarAnalyzer = new JarAnalyzer();
      -148         jarAnalyzer.analyze(dep, null);
      -149         HintAnalyzer hAnalyzer = new HintAnalyzer();
      -150         hAnalyzer.analyze(dep, null);
      -151 
      -152 
      -153         CPEAnalyzer instance = new CPEAnalyzer();
      -154         instance.open();
      -155         instance.analyze(dep, null);
      -156         instance.close();
      -157         FalsePositiveAnalyzer fp = new FalsePositiveAnalyzer();
      -158         fp.analyze(dep, null);
      -159 
      -160 //        for (Identifier i : dep.getIdentifiers()) {
      -161 //            System.out.println(i.getValue());
      -162 //        }
      -163         if (expResult != null) {
      -164             Identifier expIdentifier = new Identifier("cpe", expResult, expResult);
      -165             Assert.assertTrue("Incorrect match: { dep:'" + dep.getFileName() + "' }", dep.getIdentifiers().contains(expIdentifier));
      -166         } else {
      -167             Assert.assertTrue("Match found when an Identifier should not have been found: { dep:'" + dep.getFileName() + "' }", dep.getIdentifiers().isEmpty());
      -168         }
      -169     }
      -170 
      -171     /**
      -172      * Test of determineCPE method, of class CPEAnalyzer.
      -173      *
      -174      * @throws Exception is thrown when an exception occurs
      -175      */
      -176     @Test
      -177     public void testDetermineCPE() throws Exception {
      -178         File file = new File(this.getClass().getClassLoader().getResource("struts2-core-2.1.2.jar").getPath());
      -179         //File file = new File(this.getClass().getClassLoader().getResource("axis2-adb-1.4.1.jar").getPath());
      -180         Dependency struts = new Dependency(file);
      -181 
      -182         FileNameAnalyzer fnAnalyzer = new FileNameAnalyzer();
      -183         fnAnalyzer.analyze(struts, null);
      -184 
      -185         JarAnalyzer jarAnalyzer = new JarAnalyzer();
      -186         jarAnalyzer.analyze(struts, null);
      -187 
      -188 
      -189         File fileCommonValidator = new File(this.getClass().getClassLoader().getResource("commons-validator-1.4.0.jar").getPath());
      -190         Dependency commonValidator = new Dependency(fileCommonValidator);
      -191         jarAnalyzer.analyze(commonValidator, null);
      -192 
      -193         File fileSpring = new File(this.getClass().getClassLoader().getResource("spring-core-2.5.5.jar").getPath());
      -194         Dependency spring = new Dependency(fileSpring);
      -195         jarAnalyzer.analyze(spring, null);
      -196 
      -197         File fileSpring3 = new File(this.getClass().getClassLoader().getResource("spring-core-3.0.0.RELEASE.jar").getPath());
      -198         Dependency spring3 = new Dependency(fileSpring3);
      -199         jarAnalyzer.analyze(spring3, null);
      -200 
      -201         CPEAnalyzer instance = new CPEAnalyzer();
      -202         instance.open();
      -203         instance.determineCPE(commonValidator);
      -204         instance.determineCPE(struts);
      -205         instance.determineCPE(spring);
      -206         instance.determineCPE(spring3);
      -207         instance.close();
      -208 
      -209         String expResult = "cpe:/a:apache:struts:2.1.2";
      -210         Identifier expIdentifier = new Identifier("cpe", expResult, expResult);
      -211         String expResultSpring = "cpe:/a:springsource:spring_framework:2.5.5";
      -212         String expResultSpring3 = "cpe:/a:vmware:springsource_spring_framework:3.0.0";
      -213 
      -214         Assert.assertTrue("Apache Common Validator - found an identifier?", commonValidator.getIdentifiers().isEmpty());
      -215         Assert.assertTrue("Incorrect match size - struts", struts.getIdentifiers().size() >= 1);
      -216         Assert.assertTrue("Incorrect match - struts", struts.getIdentifiers().contains(expIdentifier));
      -217         Assert.assertTrue("Incorrect match size - spring3 - " + spring3.getIdentifiers().size(), spring3.getIdentifiers().size() >= 1);
      -218 
      -219         //the following two only work if the HintAnalyzer is used.
      -220         //Assert.assertTrue("Incorrect match size - spring", spring.getIdentifiers().size() == 1);
      -221         //Assert.assertTrue("Incorrect match - spring", spring.getIdentifiers().get(0).getValue().equals(expResultSpring));
      -222 
      -223     }
      -224 
      -225     /**
      -226      * Test of searchCPE method, of class CPEAnalyzer.
      -227      *
      -228      * @throws Exception is thrown when an exception occurs
      -229      */
      -230     @Test
      -231     public void testSearchCPE() throws Exception {
      -232         String vendor = "apache software foundation";
      -233         String product = "struts 2 core";
      -234         String version = "2.1.2";
      -235         String expResult = "cpe:/a:apache:struts:2.1.2";
      -236 
      -237         CPEAnalyzer instance = new CPEAnalyzer();
      -238         instance.open();
      -239 
      -240         //TODO - yeah, not a very good test as the results are the same with or without weighting...
      -241         Set<String> productWeightings = new HashSet<String>(1);
      -242         productWeightings.add("struts2");
      -243 
      -244         Set<String> vendorWeightings = new HashSet<String>(1);
      -245         vendorWeightings.add("apache");
      -246 
      -247         List<IndexEntry> result = instance.searchCPE(vendor, product, productWeightings, vendorWeightings);
      -248         //TODO fix this assert
      -249         //Assert.assertEquals(expResult, result.get(0).getName());
      -250 
      -251 
      -252         instance.close();
      -253     }
      -254 }
      -
      -
      - - diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/IndexTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/IndexTest.html deleted file mode 100644 index 8df6f3413..000000000 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/IndexTest.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - -IndexTest xref - - - -
      -
      -1   /*
      -2    * This file is part of dependency-check-core.
      -3    *
      -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
      -5    * under the terms of the GNU General Public License as published by the Free
      -6    * Software Foundation, either version 3 of the License, or (at your option) any
      -7    * later version.
      -8    *
      -9    * Dependency-check-core is distributed in the hope that it will be useful, but
      -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
      -12   * details.
      -13   *
      -14   * You should have received a copy of the GNU General Public License along with
      -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
      -16   *
      -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
      -18   */
      -19  package org.owasp.dependencycheck.data.cpe;
      -20  
      -21  import org.owasp.dependencycheck.data.cpe.Index;
      -22  import java.io.File;
      -23  import java.io.IOException;
      -24  import java.util.logging.Level;
      -25  import java.util.logging.Logger;
      -26  import org.apache.lucene.document.Document;
      -27  import org.apache.lucene.queryparser.classic.ParseException;
      -28  import org.apache.lucene.search.ScoreDoc;
      -29  import org.apache.lucene.search.TopDocs;
      -30  import org.apache.lucene.store.Directory;
      -31  import org.junit.After;
      -32  import org.junit.AfterClass;
      -33  import org.junit.Before;
      -34  import org.junit.BeforeClass;
      -35  import org.junit.Test;
      -36  import static org.junit.Assert.*;
      -37  
      -38  /**
      -39   *
      -40   * @author Jeremy Long (jeremy.long@owasp.org)
      -41   */
      -42  public class IndexTest {
      -43  
      -44      @BeforeClass
      -45      public static void setUpClass() throws Exception {
      -46      }
      -47  
      -48      @AfterClass
      -49      public static void tearDownClass() throws Exception {
      -50      }
      -51  
      -52      @Before
      -53      public void setUp() {
      -54      }
      -55  
      -56      @After
      -57      public void tearDown() {
      -58      }
      -59  
      -60      /**
      -61       * Test of open method, of class Index.
      -62       */
      -63      @Test
      -64      public void testOpen() {
      -65          Index instance = new Index();
      -66          try {
      -67              instance.open();
      -68              //TODO research why are we getting multiple documents for the same documentId. is the update method not working?
      -69  //            try {
      -70  //                instance.createSearchingAnalyzer();
      -71  //                TopDocs docs = instance.search("product:( project\\-open )", 20);
      -72  //                for (ScoreDoc d : docs.scoreDocs) {
      -73  //                    final Document doc = instance.getDocument(d.doc);
      -74  //                    String vendor = doc.getField(Fields.VENDOR).stringValue();
      -75  //                    String product = doc.getField(Fields.PRODUCT).stringValue();
      -76  //                    System.out.print(d.doc);
      -77  //                    System.out.print(" : ");
      -78  //                    System.out.print(vendor + ":");
      -79  //                    System.out.println(product);
      -80  //                }
      -81  //            } catch (ParseException ex) {
      -82  //                Logger.getLogger(IndexTest.class.getName()).log(Level.SEVERE, null, ex);
      -83  //            }
      -84          } catch (IOException ex) {
      -85              assertNull(ex.getMessage(), ex);
      -86          }
      -87          instance.close();
      -88      }
      -89  
      -90      /**
      -91       * Test of getDirectory method, of class Index.
      -92       *
      -93       * @throws Exception
      -94       */
      -95      @Test
      -96      public void testGetDirectory() throws Exception {
      -97          Index index = new Index();
      -98          Directory result = index.getDirectory();
      -99  
      -100         String exp = File.separatorChar + "target" + File.separatorChar + "data" + File.separatorChar + "cpe";
      -101         assertTrue(result.toString().contains(exp));
      -102     }
      -103 }
      -
      -
      - - diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html index a57e66390..12a63e431 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html index 57c7dae60..f656a64c7 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html index d32dd03d1..a7af71326 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html index 7013cb72a..4b4a0072e 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilterTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilterTest.html index f1dc2479b..24f91738e 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilterTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilterTest.html @@ -16,78 +16,75 @@ 6 7 import java.io.IOException; 8 import java.io.Reader; -9 import org.apache.lucene.analysis.Analyzer; -10 import org.apache.lucene.analysis.BaseTokenStreamTestCase; -11 import static org.apache.lucene.analysis.BaseTokenStreamTestCase.assertAnalyzesTo; -12 import static org.apache.lucene.analysis.BaseTokenStreamTestCase.checkOneTerm; -13 import org.apache.lucene.analysis.MockTokenizer; -14 import org.apache.lucene.analysis.Tokenizer; -15 import org.junit.After; -16 import org.junit.AfterClass; -17 import org.junit.Before; -18 import org.junit.BeforeClass; -19 import org.junit.Test; -20 import static org.junit.Assert.*; -21 -22 /** -23 * -24 * @author Jeremy Long (jeremy.long@owasp.org) -25 */ -26 public class TokenPairConcatenatingFilterTest extends BaseTokenStreamTestCase { +9 import java.io.StringReader; +10 import org.apache.lucene.analysis.Analyzer; +11 import org.apache.lucene.analysis.BaseTokenStreamTestCase; +12 import static org.apache.lucene.analysis.BaseTokenStreamTestCase.assertAnalyzesTo; +13 import static org.apache.lucene.analysis.BaseTokenStreamTestCase.assertTokenStreamContents; +14 import static org.apache.lucene.analysis.BaseTokenStreamTestCase.checkOneTerm; +15 import org.apache.lucene.analysis.MockTokenizer; +16 import org.apache.lucene.analysis.TokenStream; +17 import org.apache.lucene.analysis.Tokenizer; +18 import org.apache.lucene.analysis.core.WhitespaceTokenizer; +19 import org.apache.lucene.analysis.tokenattributes.TypeAttributeImpl; +20 import org.apache.lucene.util.Version; +21 import org.junit.After; +22 import org.junit.AfterClass; +23 import org.junit.Before; +24 import org.junit.BeforeClass; +25 import org.junit.Test; +26 import static org.junit.Assert.*; 27 -28 private Analyzer analyzer; -29 -30 public TokenPairConcatenatingFilterTest() { -31 analyzer = new Analyzer() { -32 @Override -33 protected Analyzer.TokenStreamComponents createComponents(String fieldName, -34 Reader reader) { -35 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); -36 return new Analyzer.TokenStreamComponents(source, new TokenPairConcatenatingFilter(source)); -37 } -38 }; -39 } -40 -41 @BeforeClass -42 public static void setUpClass() { -43 } -44 -45 @AfterClass -46 public static void tearDownClass() { -47 } -48 -49 @Before -50 public void setUp() throws Exception { -51 super.setUp(); -52 } -53 -54 @After -55 public void tearDown() throws Exception { -56 super.tearDown(); -57 } -58 -59 /** -60 * test some examples -61 */ -62 public void testExamples() throws IOException { -63 //TODO figure outwhy I am getting "Failed: incrementtoken() called while in wrong state" -64 // String[] expected = new String[3]; -65 // expected[0] = "one"; -66 // expected[1] = "onetwo"; -67 // expected[2] = "two"; -68 // checkOneTerm(analyzer, "one", "one"); -69 // assertAnalyzesTo(analyzer, "two", new String[]{"onetwo", "two"}); -70 //checkOneTerm(analyzer, "two", "onetwo"); -71 //checkOneTerm(analyzer, "three", "two"); -72 } -73 -74 /** -75 * Test of clear method, of class TokenPairConcatenatingFilter. -76 */ -77 @Test -78 public void testClear() { -79 } -80 } +28 /** +29 * +30 * @author Jeremy Long (jeremy.long@owasp.org) +31 */ +32 public class TokenPairConcatenatingFilterTest extends BaseTokenStreamTestCase { +33 +34 @BeforeClass +35 public static void setUpClass() { +36 } +37 +38 @AfterClass +39 public static void tearDownClass() { +40 } +41 +42 @Before +43 public void setUp() throws Exception { +44 super.setUp(); +45 } +46 +47 @After +48 public void tearDown() throws Exception { +49 super.tearDown(); +50 } +51 +52 /** +53 * test some examples +54 */ +55 public void testExamples() throws IOException { +56 Tokenizer wsTokenizer = new WhitespaceTokenizer(Version.LUCENE_43, new StringReader("one two three")); +57 TokenStream filter = new TokenPairConcatenatingFilter(wsTokenizer); +58 assertTokenStreamContents(filter, +59 new String[]{"one", "onetwo", "two", "twothree", "three"}); +60 } +61 +62 /** +63 * Test of clear method, of class TokenPairConcatenatingFilter. +64 */ +65 @Test +66 public void testClear() throws IOException { +67 +68 TokenStream ts = new WhitespaceTokenizer(Version.LUCENE_43, new StringReader("one two three")); +69 TokenPairConcatenatingFilter filter = new TokenPairConcatenatingFilter(ts); +70 assertTokenStreamContents(filter, new String[]{"one", "onetwo", "two", "twothree", "three"}); +71 +72 assertNotNull(filter.getPreviousWord()); +73 filter.clear(); +74 assertNull(filter.getPreviousWord()); +75 assertTrue(filter.getWords().isEmpty()); +76 } +77 }
      diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html index 0d0f1d222..163f6c3c3 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html index e152f5908..98533ab50 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html index 500edbe64..8570d88da 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 8c54120b7..6b7edad6e 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdaterIntegrationTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdaterIntegrationTest.html deleted file mode 100644 index 2cfb1d070..000000000 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdaterIntegrationTest.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -DatabaseUpdaterIntegrationTest xref - - - -
      -
      -1   /*
      -2    * This file is part of dependency-check-core.
      -3    *
      -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
      -5    * under the terms of the GNU General Public License as published by the Free
      -6    * Software Foundation, either version 3 of the License, or (at your option) any
      -7    * later version.
      -8    *
      -9    * Dependency-check-core is distributed in the hope that it will be useful, but
      -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
      -12   * details.
      -13   *
      -14   * You should have received a copy of the GNU General Public License along with
      -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
      -16   *
      -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
      -18   */
      -19  package org.owasp.dependencycheck.data.nvdcve.xml;
      -20  
      -21  import org.owasp.dependencycheck.data.nvdcve.xml.DatabaseUpdater;
      -22  import org.junit.After;
      -23  import org.junit.AfterClass;
      -24  import org.junit.Before;
      -25  import org.junit.BeforeClass;
      -26  import org.junit.Test;
      -27  
      -28  /**
      -29   *
      -30   * @author Jeremy Long (jeremy.long@owasp.org)
      -31   */
      -32  public class DatabaseUpdaterIntegrationTest {
      -33  
      -34      public DatabaseUpdaterIntegrationTest() {
      -35      }
      -36  
      -37      @BeforeClass
      -38      public static void setUpClass() throws Exception {
      -39      }
      -40  
      -41      @AfterClass
      -42      public static void tearDownClass() throws Exception {
      -43      }
      -44  
      -45      @Before
      -46      public void setUp() {
      -47      }
      -48  
      -49      @After
      -50      public void tearDown() {
      -51      }
      -52  
      -53      /**
      -54       * Test of update method, of class DatabaseUpdater.
      -55       *
      -56       * @throws Exception
      -57       */
      -58      @Test
      -59      public void testUpdate() throws Exception {
      -60          DatabaseUpdater instance = new DatabaseUpdater();
      -61          instance.update();
      -62      }
      -63  }
      -
      -
      - - diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve_1_2_HandlerTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve_1_2_HandlerTest.html deleted file mode 100644 index d7eed35a3..000000000 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve_1_2_HandlerTest.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -NvdCve_1_2_HandlerTest xref - - - -
      -
      -1   /*
      -2    * This file is part of dependency-check-core.
      -3    *
      -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
      -5    * under the terms of the GNU General Public License as published by the Free
      -6    * Software Foundation, either version 3 of the License, or (at your option) any
      -7    * later version.
      -8    *
      -9    * Dependency-check-core is distributed in the hope that it will be useful, but
      -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
      -12   * details.
      -13   *
      -14   * You should have received a copy of the GNU General Public License along with
      -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
      -16   *
      -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
      -18   */
      -19  package org.owasp.dependencycheck.data.nvdcve.xml;
      -20  
      -21  import org.owasp.dependencycheck.data.nvdcve.xml.NvdCve12Handler;
      -22  import java.io.File;
      -23  import java.util.List;
      -24  import java.util.Map;
      -25  import javax.xml.parsers.SAXParser;
      -26  import javax.xml.parsers.SAXParserFactory;
      -27  import org.owasp.dependencycheck.dependency.VulnerableSoftware;
      -28  import org.junit.After;
      -29  import org.junit.AfterClass;
      -30  import org.junit.Before;
      -31  import org.junit.BeforeClass;
      -32  import org.junit.Test;
      -33  import static org.junit.Assert.*;
      -34  
      -35  /**
      -36   *
      -37   * @author Jeremy Long (jeremy.long@owasp.org)
      -38   */
      -39  public class NvdCve_1_2_HandlerTest {
      -40  
      -41      public NvdCve_1_2_HandlerTest() {
      -42      }
      -43  
      -44      @BeforeClass
      -45      public static void setUpClass() throws Exception {
      -46      }
      -47  
      -48      @AfterClass
      -49      public static void tearDownClass() throws Exception {
      -50      }
      -51  
      -52      @Before
      -53      public void setUp() {
      -54      }
      -55  
      -56      @After
      -57      public void tearDown() {
      -58      }
      -59  
      -60      @Test
      -61      public void testParse() throws Exception {
      -62          SAXParserFactory factory = SAXParserFactory.newInstance();
      -63          SAXParser saxParser = factory.newSAXParser();
      -64  
      -65          File file = new File(this.getClass().getClassLoader().getResource("nvdcve-2012.xml").getPath());
      -66  
      -67          NvdCve12Handler instance = new NvdCve12Handler();
      -68          saxParser.parse(file, instance);
      -69          Map<String, List<VulnerableSoftware>> results = instance.getVulnerabilities();
      -70          assertTrue("No vulnerable software identified with a previous version in 2012 CVE 1.2?", !results.isEmpty());
      -71      }
      -72  }
      -
      -
      - - diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve_2_0_HandlerTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve_2_0_HandlerTest.html deleted file mode 100644 index 94e444d45..000000000 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve_2_0_HandlerTest.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -NvdCve_2_0_HandlerTest xref - - - -
      -
      -1   /*
      -2    * This file is part of dependency-check-core.
      -3    *
      -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
      -5    * under the terms of the GNU General Public License as published by the Free
      -6    * Software Foundation, either version 3 of the License, or (at your option) any
      -7    * later version.
      -8    *
      -9    * Dependency-check-core is distributed in the hope that it will be useful, but
      -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
      -12   * details.
      -13   *
      -14   * You should have received a copy of the GNU General Public License along with
      -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
      -16   *
      -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
      -18   */
      -19  package org.owasp.dependencycheck.data.nvdcve.xml;
      -20  
      -21  import org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler;
      -22  import java.io.File;
      -23  import javax.xml.parsers.SAXParser;
      -24  import javax.xml.parsers.SAXParserFactory;
      -25  import org.junit.After;
      -26  import org.junit.AfterClass;
      -27  import org.junit.Before;
      -28  import org.junit.BeforeClass;
      -29  import org.junit.Test;
      -30  import static org.junit.Assert.*;
      -31  
      -32  /**
      -33   *
      -34   * @author Jeremy Long (jeremy.long@owasp.org)
      -35   */
      -36  public class NvdCve_2_0_HandlerTest {
      -37  
      -38      public NvdCve_2_0_HandlerTest() {
      -39      }
      -40  
      -41      @BeforeClass
      -42      public static void setUpClass() throws Exception {
      -43      }
      -44  
      -45      @AfterClass
      -46      public static void tearDownClass() throws Exception {
      -47      }
      -48  
      -49      @Before
      -50      public void setUp() {
      -51      }
      -52  
      -53      @After
      -54      public void tearDown() {
      -55      }
      -56  
      -57      @Test
      -58      public void testParse() {
      -59          Exception results = null;
      -60          try {
      -61              SAXParserFactory factory = SAXParserFactory.newInstance();
      -62              SAXParser saxParser = factory.newSAXParser();
      -63  
      -64              File file = new File(this.getClass().getClassLoader().getResource("nvdcve-2.0-2012.xml").getPath());
      -65  
      -66              NvdCve20Handler instance = new NvdCve20Handler();
      -67  
      -68              saxParser.parse(file, instance);
      -69          } catch (Exception ex) {
      -70              results = ex;
      -71          }
      -72          assertTrue("Exception thrown during parse of 2012 CVE version 2.0?", results == null);
      -73          if (results != null) {
      -74              System.err.println(results);
      -75          }
      -76  
      -77      }
      -78  }
      -
      -
      - - diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html deleted file mode 100644 index 0d47694df..000000000 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - dependency-check-core 1.0.1 Reference Package org.owasp.dependencycheck.data.nvdcve.xml - - - - -

      - org.owasp.dependencycheck.data.nvdcve.xml -

      - -

      Classes

      - - - - - \ No newline at end of file diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html deleted file mode 100644 index 359b4da0c..000000000 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - dependency-check-core 1.0.1 Reference Package org.owasp.dependencycheck.data.nvdcve.xml - - - -
      - -
      -
      - -
      - -

      Package org.owasp.dependencycheck.data.nvdcve.xml

      - -
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzer150
    - can we utilize the pom's groupid and artifactId to filter??? most of these are due to low quality data. Other idea would be to say any CPE 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).260
    262
    move this startswith expression to a configuration file?271
    273
    org.owasp.dependencycheck.analyzer.JarAnalyzer Line
    633
    validate that the starts with is correct... or does it start with a ./ or /? // is it different on different platforms? if (entry.startsWith("META-INF/maven/")) { //trim the meta-inf/maven and pom.xml... final String pomPath = entry.substring(15, entry.length() - 8).toLowerCase(); final String[] parts = pomPath.split("/"); if (parts == null || parts.length != 2) { //misplaced pom? //TODO add logging to FINE possiblePoms.add(entry); } parts[0] = parts[0].replace('.', '/'); parts[1] = parts[1].replace('.', '/'); for (ClassNameInformation cni : classes) { final String name = cni.getName(); if (StringUtils.containsIgnoreCase(name, parts[0])) { addEntry(usePoms, entry); } if (StringUtils.containsIgnoreCase(name, parts[1])) { addEntry(usePoms, entry); } } } else { // we have a JAR file with an incorrect POM layout... //TODO add logging to FINE possiblePoms.add(entry); } } List<String> retValue; if (usePoms.isEmpty()) { if (possiblePoms.isEmpty()) { retValue = pomEntries; } else { retValue = possiblePoms; } } else { retValue = new ArrayList<String>(); int maxCount = 0; for (Map.Entry<String, Integer> entry : usePoms.entrySet()) { final int current = entry.getValue().intValue(); if (current > maxCount) { maxCount = current; retValue.clear(); retValue.add(entry.getKey()); } else if (current == maxCount) { retValue.add(entry.getKey()); } } } return retValue;968
    977
    add logging to FINE possiblePoms.add(entry); } parts[0] = parts[0].replace('.', '/'); parts[1] = parts[1].replace('.', '/'); for (ClassNameInformation cni : classes) { final String name = cni.getName(); if (StringUtils.containsIgnoreCase(name, parts[0])) { addEntry(usePoms, entry); } if (StringUtils.containsIgnoreCase(name, parts[1])) { addEntry(usePoms, entry); } } } else { // we have a JAR file with an incorrect POM layout... //TODO add logging to FINE possiblePoms.add(entry); } } List<String> retValue; if (usePoms.isEmpty()) { if (possiblePoms.isEmpty()) { retValue = pomEntries; } else { retValue = possiblePoms; } } else { retValue = new ArrayList<String>(); int maxCount = 0; for (Map.Entry<String, Integer> entry : usePoms.entrySet()) { final int current = entry.getValue().intValue(); if (current > maxCount) { maxCount = current; retValue.clear(); retValue.add(entry.getKey()); } else if (current == maxCount) { retValue.add(entry.getKey()); } } } return retValue;975
    984
    add logging to FINE possiblePoms.add(entry); } } List<String> retValue; if (usePoms.isEmpty()) { if (possiblePoms.isEmpty()) { retValue = pomEntries; } else { retValue = possiblePoms; } } else { retValue = new ArrayList<String>(); int maxCount = 0; for (Map.Entry<String, Integer> entry : usePoms.entrySet()) { final int current = entry.getValue().intValue(); if (current > maxCount) { maxCount = current; retValue.clear(); retValue.add(entry.getKey()); } else if (current == maxCount) { retValue.add(entry.getKey()); } } } return retValue;990
    999
    org.owasp.dependencycheck.analyzer.NvdCveAnalyzer Line
    consider implementing payloads/custom attributes... use custom attributes for major, minor, x, x, x, rcx these can then be used to weight the score for searches on the version. see http://lucene.apache.org/core/3_6_1/api/core/org/apache/lucene/analysis/package-summary.html#package_description look at this article to implement http://www.codewrecks.com/blog/index.php/2012/08/25/index-your-blog-using-tags-and-lucene-net/ 38
    org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilterTestLine
    figure outwhy I am getting "Failed: incrementtoken() called while in wrong state" String[] expected = new String[3]; expected[0] = "one"; expected[1] = "onetwo"; expected[2] = "two"; checkOneTerm(analyzer, "one", "one"); assertAnalyzesTo(analyzer, "two", new String[]{"onetwo", "two"}); checkOneTerm(analyzer, "two", "onetwo"); checkOneTerm(analyzer, "three", "two");63
    org.owasp.dependencycheck.data.lucene.VersionAnalyzer Line
    consider utilizing the matchThreeVersion method to get additional results. However, this might also introduce false positives. 674
    org.owasp.dependencycheck.data.update.DatabaseUpdaterorg.owasp.dependencycheck.data.update.BatchUpdateTask Line
    add FTP?296
    112
    org.owasp.dependencycheck.data.update.BatchUpdateTaskTestLine
    add some actual asserts to check things.119
    org.owasp.dependencycheck.data.update.StandardUpdateTaskIntegrationTestLine
    make this an actual test69
    org.owasp.dependencycheck.dependency.EvidenceCollection Line
    - - - - - - - - - - - - - - - - -
    Class Summary
    - DatabaseUpdaterIntegrationTest -
    - NvdCve_1_2_HandlerTest -
    - NvdCve_2_0_HandlerTest -
    - -
    - -
    -
    - -
    -
    - Copyright © 2012-2013 OWASP. All Rights Reserved. - - \ No newline at end of file diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/AbstractUpdateTaskTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/AbstractUpdateTaskTest.html new file mode 100644 index 000000000..eefc46adf --- /dev/null +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/AbstractUpdateTaskTest.html @@ -0,0 +1,154 @@ + + + + +AbstractUpdateTaskTest xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2013 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import java.io.File;
    +22  import java.io.IOException;
    +23  import java.net.MalformedURLException;
    +24  import java.text.DateFormat;
    +25  import java.util.Calendar;
    +26  import java.util.logging.Level;
    +27  import java.util.logging.Logger;
    +28  import org.junit.After;
    +29  import org.junit.AfterClass;
    +30  import org.junit.Before;
    +31  import org.junit.BeforeClass;
    +32  import org.junit.Test;
    +33  import static org.junit.Assert.*;
    +34  import org.owasp.dependencycheck.data.UpdateException;
    +35  import org.owasp.dependencycheck.utils.DownloadFailedException;
    +36  
    +37  /**
    +38   *
    +39   * @author Jeremy Long (jeremy.long@owasp.org)
    +40   */
    +41  public class AbstractUpdateTaskTest {
    +42  
    +43      public AbstractUpdateTaskTest() {
    +44      }
    +45  
    +46      @BeforeClass
    +47      public static void setUpClass() {
    +48      }
    +49  
    +50      @AfterClass
    +51      public static void tearDownClass() {
    +52      }
    +53  
    +54      @Before
    +55      public void setUp() {
    +56      }
    +57  
    +58      @After
    +59      public void tearDown() {
    +60      }
    +61  
    +62      public AbstractUpdateTask getAbstractUpdateImpl() throws Exception {
    +63          DataStoreMetaInfo props = new DataStoreMetaInfo();
    +64          AbstractUpdateTask instance = new AbstractUpdateImpl(props);
    +65          return instance;
    +66      }
    +67  
    +68      /**
    +69       * Test of setDeleteAndRecreate method, of class AbstractUpdateTask.
    +70       */
    +71      @Test
    +72      public void testSetDeleteAndRecreate() throws Exception {
    +73          boolean deleteAndRecreate = false;
    +74          boolean expResult = false;
    +75          AbstractUpdateTask instance = getAbstractUpdateImpl();
    +76          instance.setDeleteAndRecreate(deleteAndRecreate);
    +77          boolean result = instance.shouldDeleteAndRecreate();
    +78          assertEquals(expResult, result);
    +79      }
    +80  
    +81      /**
    +82       * Test of deleteExistingData method, of class AbstractUpdateTask.
    +83       */
    +84      @Test
    +85      public void testDeleteExistingData() throws Exception {
    +86          AbstractUpdateTask instance = getAbstractUpdateImpl();
    +87          Exception result = null;
    +88          try {
    +89              instance.deleteExistingData();
    +90          } catch (IOException ex) {
    +91              result = ex;
    +92          }
    +93          assertNull(result);
    +94      }
    +95  
    +96      /**
    +97       * Test of openDataStores method, of class AbstractUpdateTask.
    +98       */
    +99      @Test
    +100     public void testOpenDataStores() throws Exception {
    +101         AbstractUpdateTask instance = getAbstractUpdateImpl();
    +102         instance.openDataStores();
    +103         instance.closeDataStores();
    +104     }
    +105 
    +106     /**
    +107      * Test of withinRange method, of class AbstractUpdateTask.
    +108      */
    +109     @Test
    +110     public void testWithinRange() throws Exception {
    +111         Calendar c = Calendar.getInstance();
    +112 
    +113         long current = c.getTimeInMillis();
    +114         long lastRun = c.getTimeInMillis() - (3 * (1000 * 60 * 60 * 24));
    +115         int range = 7; // 7 days
    +116         AbstractUpdateTask instance = getAbstractUpdateImpl();
    +117         boolean expResult = true;
    +118         boolean result = instance.withinRange(lastRun, current, range);
    +119         assertEquals(expResult, result);
    +120 
    +121         lastRun = c.getTimeInMillis() - (8 * (1000 * 60 * 60 * 24));
    +122         expResult = false;
    +123         result = instance.withinRange(lastRun, current, range);
    +124         assertEquals(expResult, result);
    +125     }
    +126 
    +127     public class AbstractUpdateImpl extends AbstractUpdateTask {
    +128 
    +129         public AbstractUpdateImpl(DataStoreMetaInfo props) throws Exception {
    +130             super(props);
    +131         }
    +132 
    +133         public Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException {
    +134             return null;
    +135         }
    +136 
    +137         public void update() throws UpdateException {
    +138         }
    +139     }
    +140 }
    +
    +
    + + diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/BatchUpdateTaskTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/BatchUpdateTaskTest.html new file mode 100644 index 000000000..9b487b58a --- /dev/null +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/BatchUpdateTaskTest.html @@ -0,0 +1,135 @@ + + + + +BatchUpdateTaskTest xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2013 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import java.io.File;
    +22  import java.net.MalformedURLException;
    +23  import org.apache.commons.io.FileUtils;
    +24  import org.junit.After;
    +25  import org.junit.AfterClass;
    +26  import org.junit.Before;
    +27  import org.junit.BeforeClass;
    +28  import org.junit.Test;
    +29  import static org.junit.Assert.*;
    +30  import org.owasp.dependencycheck.data.UpdateException;
    +31  import org.owasp.dependencycheck.utils.DownloadFailedException;
    +32  import org.owasp.dependencycheck.utils.Settings;
    +33  
    +34  /**
    +35   *
    +36   * @author Jeremy Long (jeremy.long@owasp.org)
    +37   */
    +38  public class BatchUpdateTaskTest {
    +39  
    +40      public BatchUpdateTaskTest() {
    +41      }
    +42  
    +43      @BeforeClass
    +44      public static void setUpClass() {
    +45      }
    +46  
    +47      @AfterClass
    +48      public static void tearDownClass() {
    +49      }
    +50      private String old12;
    +51      private String old20;
    +52  
    +53      @Before
    +54      public void setUp() throws Exception {
    +55          old12 = Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL);
    +56          old20 = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL);
    +57  
    +58          File tmp = Settings.getTempDirectory();
    +59          if (!tmp.exists()) {
    +60              tmp.mkdirs();
    +61          }
    +62  
    +63          File dest = new File(tmp, "data.zip");
    +64          File file = new File(this.getClass().getClassLoader().getResource("data.zip").toURI());
    +65          FileUtils.copyFile(file, dest);
    +66          String path = "file:///" + dest.getCanonicalPath();
    +67          Settings.setString(Settings.KEYS.BATCH_UPDATE_URL, path);
    +68  
    +69          dest = new File(tmp, "nvdcve-2012.xml");
    +70          file = new File(this.getClass().getClassLoader().getResource("nvdcve-2012.xml").toURI());
    +71          FileUtils.copyFile(file, dest);
    +72          path = "file:///" + dest.getCanonicalPath();
    +73          Settings.setString(Settings.KEYS.CVE_MODIFIED_12_URL, path);
    +74  
    +75          dest = new File(tmp, "nvdcve-2.0-2012.xml");
    +76          file = new File(this.getClass().getClassLoader().getResource("nvdcve-2.0-2012.xml").toURI());
    +77          FileUtils.copyFile(file, dest);
    +78          path = "file:///" + dest.getCanonicalPath();
    +79          Settings.setString(Settings.KEYS.CVE_MODIFIED_20_URL, path);
    +80      }
    +81  
    +82      @After
    +83      public void tearDown() {
    +84          Settings.setString(Settings.KEYS.CVE_MODIFIED_12_URL, old12);
    +85          Settings.setString(Settings.KEYS.CVE_MODIFIED_20_URL, old20);
    +86          Settings.setString(Settings.KEYS.BATCH_UPDATE_URL, "");
    +87      }
    +88  
    +89      public BatchUpdateTask getBatchUpdateTask() throws MalformedURLException, DownloadFailedException, UpdateException {
    +90          DataStoreMetaInfo props = new DataStoreMetaInfo();
    +91          BatchUpdateTask instance = new BatchUpdateTask(props);
    +92          return instance;
    +93      }
    +94  
    +95      /**
    +96       * Test of setDoBatchUpdate method, of class BatchUpdateTask.
    +97       */
    +98      @Test
    +99      public void testSetDoBatchUpdate() throws DownloadFailedException, MalformedURLException, UpdateException {
    +100         boolean expected = false;
    +101         BatchUpdateTask instance = getBatchUpdateTask();
    +102         instance.setDoBatchUpdate(expected);
    +103         boolean results = instance.isDoBatchUpdate();
    +104         assertEquals(results, expected);
    +105     }
    +106 
    +107     /**
    +108      * Test of update method, of class BatchUpdateTask.
    +109      */
    +110     @Test
    +111     public void testUpdate() throws Exception {
    +112         BatchUpdateTask instance = getBatchUpdateTask();
    +113 
    +114         //do some setup
    +115         instance.setDoBatchUpdate(true);
    +116         instance.deleteExistingData();
    +117 
    +118         instance.update(); //no exceptions it worked?
    +119         //todo add some actual asserts to check things.
    +120     }
    +121 }
    +
    +
    + + diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DataStoreMetaInfoTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DataStoreMetaInfoTest.html new file mode 100644 index 000000000..1d1c86345 --- /dev/null +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DataStoreMetaInfoTest.html @@ -0,0 +1,132 @@ + + + + +DataStoreMetaInfoTest xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2013 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import java.io.File;
    +22  import org.junit.After;
    +23  import org.junit.AfterClass;
    +24  import org.junit.Before;
    +25  import org.junit.BeforeClass;
    +26  import org.junit.Test;
    +27  import static org.junit.Assert.*;
    +28  
    +29  /**
    +30   *
    +31   * @author Jeremy Long (jeremy.long@owasp.org)
    +32   */
    +33  public class DataStoreMetaInfoTest {
    +34  
    +35      public DataStoreMetaInfoTest() {
    +36      }
    +37  
    +38      @BeforeClass
    +39      public static void setUpClass() {
    +40      }
    +41  
    +42      @AfterClass
    +43      public static void tearDownClass() {
    +44      }
    +45  
    +46      @Before
    +47      public void setUp() {
    +48      }
    +49  
    +50      @After
    +51      public void tearDown() {
    +52      }
    +53  
    +54      /**
    +55       * Test of isBatchUpdateMode method, of class DataStoreMetaInfo.
    +56       */
    +57      @Test
    +58      public void testIsBatchUpdateMode() {
    +59          DataStoreMetaInfo instance = new DataStoreMetaInfo();
    +60          boolean expResult = false;
    +61          instance.setBatchUpdateMode(expResult);
    +62          boolean result = instance.isBatchUpdateMode();
    +63          assertEquals(expResult, result);
    +64      }
    +65  
    +66      /**
    +67       * Test of isEmpty method, of class DataStoreMetaInfo.
    +68       */
    +69      @Test
    +70      public void testIsEmpty() {
    +71          DataStoreMetaInfo instance = new DataStoreMetaInfo();
    +72          boolean expResult = false;
    +73          boolean result = instance.isEmpty();
    +74          assertEquals(expResult, result);
    +75      }
    +76  
    +77      /**
    +78       * Test of save method, of class DataStoreMetaInfo.
    +79       */
    +80      @Test
    +81      public void testSave() throws Exception {
    +82          NvdCveInfo updatedValue = new NvdCveInfo();
    +83          String key = "test";
    +84          long expected = 1337;
    +85          updatedValue.setId(key);
    +86          updatedValue.setTimestamp(expected);
    +87          DataStoreMetaInfo instance = new DataStoreMetaInfo();
    +88          instance.save(updatedValue);
    +89          //reload the properties
    +90          instance = new DataStoreMetaInfo();
    +91          long results = Long.parseLong(instance.getProperty("lastupdated." + key));
    +92          assertEquals(expected, results);
    +93  
    +94      }
    +95  
    +96      /**
    +97       * Test of getProperty method, of class DataStoreMetaInfo.
    +98       */
    +99      @Test
    +100     public void testGetProperty_String_String() {
    +101         String key = "doesn't exist";
    +102         String defaultValue = "default";
    +103         DataStoreMetaInfo instance = new DataStoreMetaInfo();
    +104         String expResult = "default";
    +105         String result = instance.getProperty(key, defaultValue);
    +106         assertEquals(expResult, result);
    +107     }
    +108 
    +109     /**
    +110      * Test of getPropertiesFile method, of class DataStoreMetaInfo.
    +111      */
    +112     @Test
    +113     public void testGetPropertiesFile() {
    +114         File result = DataStoreMetaInfo.getPropertiesFile();
    +115         //wow... rigorous!
    +116         assertNotNull(result);
    +117     }
    +118 }
    +
    +
    + + diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdaterIntegrationTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdaterIntegrationTest.html index 5280d5c2c..f371a32af 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdaterIntegrationTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdaterIntegrationTest.html @@ -24,56 +24,51 @@ 14 * You should have received a copy of the GNU General Public License along with 15 * dependency-check-core. If not, see http://www.gnu.org/licenses/. 16 * -17 * Copyright (c) 2012 Jeremy Long. All Rights Reserved. +17 * Copyright (c) 2013 Jeremy Long. All Rights Reserved. 18 */ 19 package org.owasp.dependencycheck.data.update; 20 -21 import java.io.File; -22 import java.net.URL; -23 import org.owasp.dependencycheck.data.update.DatabaseUpdater; -24 import org.junit.After; -25 import org.junit.AfterClass; -26 import org.junit.Before; -27 import org.junit.BeforeClass; -28 import org.junit.Test; -29 import org.owasp.dependencycheck.utils.Settings; -30 -31 /** -32 * -33 * @author Jeremy Long (jeremy.long@owasp.org) -34 */ -35 public class DatabaseUpdaterIntegrationTest { +21 import org.junit.After; +22 import org.junit.AfterClass; +23 import org.junit.Before; +24 import org.junit.BeforeClass; +25 import org.junit.Test; +26 import static org.junit.Assert.*; +27 +28 /** +29 * +30 * @author Jeremy Long (jeremy.long@owasp.org) +31 */ +32 public class DatabaseUpdaterIntegrationTest { +33 +34 public DatabaseUpdaterIntegrationTest() { +35 } 36 -37 public DatabaseUpdaterIntegrationTest() { -38 } -39 -40 @BeforeClass -41 public static void setUpClass() throws Exception { -42 } -43 -44 @AfterClass -45 public static void tearDownClass() throws Exception { -46 } -47 -48 @Before -49 public void setUp() { -50 } -51 -52 @After -53 public void tearDown() { -54 } -55 -56 /** -57 * Test of update method, of class DatabaseUpdater. -58 * -59 * @throws Exception -60 */ -61 @Test -62 public void testUpdate() throws Exception { -63 DatabaseUpdater instance = new DatabaseUpdater(); -64 instance.update(); -65 } -66 } +37 @BeforeClass +38 public static void setUpClass() { +39 } +40 +41 @AfterClass +42 public static void tearDownClass() { +43 } +44 +45 @Before +46 public void setUp() { +47 } +48 +49 @After +50 public void tearDown() { +51 } +52 +53 /** +54 * Test of update method, of class DatabaseUpdater. +55 */ +56 @Test +57 public void testUpdate() throws Exception { +58 DatabaseUpdater instance = new DatabaseUpdater(); +59 instance.update(); +60 } +61 }
    diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdater_1_Test.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdater_1_Test.html deleted file mode 100644 index fadfa9f95..000000000 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdater_1_Test.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - -DatabaseUpdater_1_Test xref - - - -
    -
    -1   /*
    -2    * This file is part of dependency-check-core.
    -3    *
    -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    -5    * under the terms of the GNU General Public License as published by the Free
    -6    * Software Foundation, either version 3 of the License, or (at your option) any
    -7    * later version.
    -8    *
    -9    * Dependency-check-core is distributed in the hope that it will be useful, but
    -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    -12   * details.
    -13   *
    -14   * You should have received a copy of the GNU General Public License along with
    -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    -16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    -18   */
    -19  package org.owasp.dependencycheck.data.update;
    -20  
    -21  import org.owasp.dependencycheck.data.update.DatabaseUpdater;
    -22  import java.io.File;
    -23  import org.apache.commons.io.FileUtils;
    -24  import org.junit.After;
    -25  import org.junit.AfterClass;
    -26  import org.junit.Before;
    -27  import org.junit.BeforeClass;
    -28  import org.junit.Test;
    -29  import org.owasp.dependencycheck.utils.Settings;
    -30  
    -31  /**
    -32   *
    -33   * @author Jeremy Long (jeremy.long@owasp.org)
    -34   */
    -35  public class DatabaseUpdater_1_Test {
    -36  
    -37      public DatabaseUpdater_1_Test() {
    -38      }
    -39  
    -40      @BeforeClass
    -41      public static void setUpClass() throws Exception {
    -42      }
    -43  
    -44      @AfterClass
    -45      public static void tearDownClass() throws Exception {
    -46      }
    -47      private String old12;
    -48      private String old20;
    -49  
    -50      @Before
    -51      public void setUp() throws Exception {
    -52          old12 = Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL);
    -53          old20 = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL);
    -54  
    -55          File tmp = Settings.getTempDirectory();
    -56          if (!tmp.exists()) {
    -57              tmp.mkdirs();
    -58          }
    -59  
    -60          File dest = new File(tmp, "data.zip");
    -61          File file = new File(this.getClass().getClassLoader().getResource("data.zip").toURI());
    -62          FileUtils.copyFile(file, dest);
    -63          String path = "file:///" + dest.getCanonicalPath();
    -64          Settings.setString(Settings.KEYS.BATCH_UPDATE_URL, path);
    -65  
    -66          dest = new File(tmp, "nvdcve-2012.xml");
    -67          file = new File(this.getClass().getClassLoader().getResource("nvdcve-2012.xml").toURI());
    -68          FileUtils.copyFile(file, dest);
    -69          path = "file:///" + dest.getCanonicalPath();
    -70          Settings.setString(Settings.KEYS.CVE_MODIFIED_12_URL, path);
    -71  
    -72          dest = new File(tmp, "nvdcve-2.0-2012.xml");
    -73          file = new File(this.getClass().getClassLoader().getResource("nvdcve-2.0-2012.xml").toURI());
    -74          FileUtils.copyFile(file, dest);
    -75          path = "file:///" + dest.getCanonicalPath();
    -76          Settings.setString(Settings.KEYS.CVE_MODIFIED_20_URL, path);
    -77      }
    -78  
    -79      @After
    -80      public void tearDown() {
    -81          Settings.setString(Settings.KEYS.CVE_MODIFIED_12_URL, old12);
    -82          Settings.setString(Settings.KEYS.CVE_MODIFIED_20_URL, old20);
    -83          Settings.setString(Settings.KEYS.BATCH_UPDATE_URL, "");
    -84      }
    -85  
    -86      /**
    -87       * Test of update method (when in batch mode), of class DatabaseUpdater.
    -88       *
    -89       * @throws Exception
    -90       */
    -91      @Test
    -92      public void testBatchUpdate() throws Exception {
    -93          DatabaseUpdater instance = new DatabaseUpdater();
    -94          instance.deleteExistingData();
    -95          instance.update();
    -96      }
    -97  }
    -
    -
    - - diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/NvdCveInfoTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/NvdCveInfoTest.html new file mode 100644 index 000000000..68401f027 --- /dev/null +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/NvdCveInfoTest.html @@ -0,0 +1,127 @@ + + + + +NvdCveInfoTest xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2013 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import org.junit.After;
    +22  import org.junit.AfterClass;
    +23  import org.junit.Before;
    +24  import org.junit.BeforeClass;
    +25  import org.junit.Test;
    +26  import static org.junit.Assert.*;
    +27  
    +28  /**
    +29   * Rigorous test of setters/getters.
    +30   *
    +31   * @author Jeremy Long (jeremy.long@owasp.org)
    +32   */
    +33  public class NvdCveInfoTest {
    +34  
    +35      public NvdCveInfoTest() {
    +36      }
    +37  
    +38      @BeforeClass
    +39      public static void setUpClass() {
    +40      }
    +41  
    +42      @AfterClass
    +43      public static void tearDownClass() {
    +44      }
    +45  
    +46      @Before
    +47      public void setUp() {
    +48      }
    +49  
    +50      @After
    +51      public void tearDown() {
    +52      }
    +53  
    +54      /**
    +55       * Test of setId and getId method, of class NvdCveInfo.
    +56       */
    +57      @Test
    +58      public void testSetGetId() {
    +59          NvdCveInfo instance = new NvdCveInfo();
    +60          String expResult = "id";
    +61          instance.setId(expResult);
    +62          String result = instance.getId();
    +63          assertEquals(expResult, result);
    +64      }
    +65  
    +66      /**
    +67       * Test of getUrl method, of class NvdCveInfo.
    +68       */
    +69      @Test
    +70      public void testSetGetUrl() {
    +71          NvdCveInfo instance = new NvdCveInfo();
    +72          String expResult = "http://www.someurl.com/something";
    +73          instance.setUrl(expResult);
    +74          String result = instance.getUrl();
    +75          assertEquals(expResult, result);
    +76      }
    +77  
    +78      /**
    +79       * Test of getOldSchemaVersionUrl method, of class NvdCveInfo.
    +80       */
    +81      @Test
    +82      public void testSetGetOldSchemaVersionUrl() {
    +83          NvdCveInfo instance = new NvdCveInfo();
    +84          String expResult = "http://www.someurl.com/something";
    +85          instance.setOldSchemaVersionUrl(expResult);
    +86          String result = instance.getOldSchemaVersionUrl();
    +87          assertEquals(expResult, result);
    +88      }
    +89  
    +90      /**
    +91       * Test of getTimestamp method, of class NvdCveInfo.
    +92       */
    +93      @Test
    +94      public void testSetGetTimestamp() {
    +95          NvdCveInfo instance = new NvdCveInfo();
    +96          long expResult = 1337L;
    +97          instance.setTimestamp(expResult);
    +98          long result = instance.getTimestamp();
    +99          assertEquals(expResult, result);
    +100     }
    +101 
    +102     /**
    +103      * Test of getNeedsUpdate method, of class NvdCveInfo.
    +104      */
    +105     @Test
    +106     public void testSetGetNeedsUpdate() {
    +107         NvdCveInfo instance = new NvdCveInfo();
    +108         boolean expResult = true;
    +109         instance.setNeedsUpdate(expResult);
    +110         boolean result = instance.getNeedsUpdate();
    +111         assertEquals(expResult, result);
    +112     }
    +113 }
    +
    +
    + + diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdater_2_Test.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/StandardUpdateTaskIntegrationTest.html similarity index 55% rename from dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdater_2_Test.html rename to dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/StandardUpdateTaskIntegrationTest.html index e73260e31..968aada05 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/DatabaseUpdater_2_Test.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/StandardUpdateTaskIntegrationTest.html @@ -2,11 +2,11 @@ -DatabaseUpdater_2_Test xref +StandardUpdateTaskIntegrationTest xref -
    +
     
     1   /*
     2    * This file is part of dependency-check-core.
    @@ -24,77 +24,71 @@
     14   * You should have received a copy of the GNU General Public License along with
     15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
     16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    +17   * Copyright (c) 2013 Jeremy Long. All Rights Reserved.
     18   */
     19  package org.owasp.dependencycheck.data.update;
     20  
    -21  import org.owasp.dependencycheck.data.update.DatabaseUpdater;
    -22  import java.io.File;
    -23  import org.apache.commons.io.FileUtils;
    -24  import org.junit.After;
    -25  import org.junit.AfterClass;
    -26  import org.junit.Before;
    -27  import org.junit.BeforeClass;
    -28  import org.junit.Test;
    -29  import org.owasp.dependencycheck.utils.Settings;
    +21  import java.net.MalformedURLException;
    +22  import org.junit.After;
    +23  import org.junit.AfterClass;
    +24  import org.junit.Before;
    +25  import org.junit.BeforeClass;
    +26  import org.junit.Test;
    +27  import static org.junit.Assert.*;
    +28  import org.owasp.dependencycheck.data.UpdateException;
    +29  import org.owasp.dependencycheck.utils.DownloadFailedException;
     30  
     31  /**
     32   *
     33   * @author Jeremy Long (jeremy.long@owasp.org)
     34   */
    -35  public class DatabaseUpdater_2_Test {
    +35  public class StandardUpdateTaskIntegrationTest {
     36  
    -37      public DatabaseUpdater_2_Test() {
    +37      public StandardUpdateTaskIntegrationTest() {
     38      }
     39  
     40      @BeforeClass
    -41      public static void setUpClass() throws Exception {
    +41      public static void setUpClass() {
     42      }
     43  
     44      @AfterClass
    -45      public static void tearDownClass() throws Exception {
    +45      public static void tearDownClass() {
     46      }
    -47      private String old12;
    -48      private String old20;
    -49  
    -50      @Before
    -51      public void setUp() throws Exception {
    -52          old12 = Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL);
    -53          old20 = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL);
    -54          Settings.removeProperty(Settings.KEYS.CVE_MODIFIED_12_URL);
    -55          Settings.removeProperty(Settings.KEYS.CVE_MODIFIED_20_URL);
    -56  
    -57          File tmp = Settings.getTempDirectory();
    -58          if (!tmp.exists()) {
    -59              tmp.mkdirs();
    -60          }
    +47  
    +48      @Before
    +49      public void setUp() {
    +50      }
    +51  
    +52      @After
    +53      public void tearDown() {
    +54      }
    +55  
    +56      public StandardUpdateTask getStandardUpdateTask() throws MalformedURLException, DownloadFailedException, UpdateException {
    +57          DataStoreMetaInfo props = new DataStoreMetaInfo();
    +58          StandardUpdateTask instance = new StandardUpdateTask(props);
    +59          return instance;
    +60      }
     61  
    -62          File dest = new File(tmp, "data.zip");
    -63          File file = new File(this.getClass().getClassLoader().getResource("data.zip").toURI());
    -64          FileUtils.copyFile(file, dest);
    -65          String path = "file:///" + dest.getCanonicalPath();
    -66          Settings.setString(Settings.KEYS.BATCH_UPDATE_URL, path);
    -67      }
    -68  
    -69      @After
    -70      public void tearDown() {
    -71          Settings.setString(Settings.KEYS.CVE_MODIFIED_12_URL, old12);
    -72          Settings.setString(Settings.KEYS.CVE_MODIFIED_20_URL, old20);
    -73          Settings.removeProperty(Settings.KEYS.BATCH_UPDATE_URL);
    -74      }
    -75  
    -76      /**
    -77       * Test of update method (when in batch mode), of class DatabaseUpdater.
    -78       *
    -79       * @throws Exception
    -80       */
    -81      @Test
    -82      public void testBatchUpdateWithoutModified() throws Exception {
    -83          DatabaseUpdater instance = new DatabaseUpdater();
    -84          instance.deleteExistingData();
    -85          instance.update();
    -86      }
    -87  }
    +62      /**
    +63       * Test of update method, of class StandardUpdateTask.
    +64       */
    +65      @Test
    +66      public void testUpdate() throws Exception {
    +67          StandardUpdateTask instance = getStandardUpdateTask();
    +68          instance.update();
    +69          //TODO make this an actual test
    +70      }
    +71  
    +72      /**
    +73       * Test of updatesNeeded method, of class StandardUpdateTask.
    +74       */
    +75      @Test
    +76      public void testUpdatesNeeded() throws Exception {
    +77          StandardUpdateTask instance = getStandardUpdateTask();
    +78          Updateable result = instance.updatesNeeded();
    +79          assertNotNull(result);
    +80      }
    +81  }
     

    diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/UpdateableTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/UpdateableTest.html new file mode 100644 index 000000000..3f2960b29 --- /dev/null +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/UpdateableTest.html @@ -0,0 +1,174 @@ + + + + +UpdateableTest xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2013 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import java.io.File;
    +22  import java.io.IOException;
    +23  import java.net.MalformedURLException;
    +24  import org.junit.After;
    +25  import org.junit.AfterClass;
    +26  import org.junit.Before;
    +27  import org.junit.BeforeClass;
    +28  import org.junit.Test;
    +29  import static org.junit.Assert.*;
    +30  import org.owasp.dependencycheck.utils.DownloadFailedException;
    +31  
    +32  /**
    +33   *
    +34   * @author Jeremy Long (jeremy.long@owasp.org)
    +35   */
    +36  public class UpdateableTest {
    +37  
    +38      public UpdateableTest() {
    +39      }
    +40  
    +41      @BeforeClass
    +42      public static void setUpClass() {
    +43      }
    +44  
    +45      @AfterClass
    +46      public static void tearDownClass() {
    +47      }
    +48  
    +49      @Before
    +50      public void setUp() {
    +51      }
    +52  
    +53      @After
    +54      public void tearDown() {
    +55      }
    +56  
    +57      /**
    +58       * Test of isUpdateNeeded method, of class Updateable.
    +59       */
    +60      @Test
    +61      public void testIsUpdateNeeded() throws MalformedURLException, DownloadFailedException, IOException {
    +62          String id = "key";
    +63          //use a local file as this test will load the result and check the timestamp
    +64          File f = new File("target/test-classes/nvdcve-2.0-2012.xml");
    +65          String url = "file:///" + f.getCanonicalPath();
    +66          Updateable instance = new Updateable();
    +67          instance.add(id, url, url, false);
    +68  
    +69          boolean expResult = false;
    +70          boolean result = instance.isUpdateNeeded();
    +71          assertEquals(expResult, result);
    +72  
    +73          instance.add("nextId", url, url, true);
    +74  
    +75          expResult = true;
    +76          result = instance.isUpdateNeeded();
    +77          assertEquals(expResult, result);
    +78      }
    +79  
    +80      /**
    +81       * Test of add method, of class Updateable.
    +82       */
    +83      @Test
    +84      public void testAdd_3args() throws Exception {
    +85          String id = "key";
    +86          File f = new File("target/test-classes/nvdcve-2.0-2012.xml");
    +87          //use a local file as this test will load the result and check the timestamp
    +88          String url = "file:///" + f.getCanonicalPath();
    +89          Updateable instance = new Updateable();
    +90          instance.add(id, url, url);
    +91          NvdCveInfo results = instance.get(id);
    +92          assertEquals(id, results.getId());
    +93          assertEquals(url, results.getUrl());
    +94          assertEquals(url, results.getOldSchemaVersionUrl());
    +95      }
    +96  
    +97      /**
    +98       * Test of add method, of class Updateable.
    +99       */
    +100     @Test
    +101     public void testAdd_4args() throws Exception {
    +102         String id = "key";
    +103         //use a local file as this test will load the result and check the timestamp
    +104         File f = new File("target/test-classes/nvdcve-2.0-2012.xml");
    +105         String url = "file:///" + f.getCanonicalPath();
    +106         Updateable instance = new Updateable();
    +107         instance.add(id, url, url, false);
    +108 
    +109         boolean expResult = false;
    +110         boolean result = instance.isUpdateNeeded();
    +111         assertEquals(expResult, result);
    +112 
    +113         instance.add("nextId", url, url, false);
    +114         NvdCveInfo results = instance.get(id);
    +115 
    +116         assertEquals(id, results.getId());
    +117         assertEquals(url, results.getUrl());
    +118         assertEquals(url, results.getOldSchemaVersionUrl());
    +119 
    +120     }
    +121 
    +122     /**
    +123      * Test of clear method, of class Updateable.
    +124      */
    +125     @Test
    +126     public void testClear() throws MalformedURLException, DownloadFailedException, IOException {
    +127         String id = "key";
    +128         //use a local file as this test will load the result and check the timestamp
    +129         File f = new File("target/test-classes/nvdcve-2.0-2012.xml");
    +130         String url = "file:///" + f.getCanonicalPath();
    +131         Updateable instance = new Updateable();
    +132         instance.add(id, url, url, false);
    +133         assertFalse(instance.getCollection().isEmpty());
    +134         instance.clear();
    +135         assertTrue(instance.getCollection().isEmpty());
    +136     }
    +137 
    +138     /**
    +139      * Test of iterator method, of class Updateable.
    +140      */
    +141     @Test
    +142     public void testIterator() throws IOException {
    +143         //use a local file as this test will load the result and check the timestamp
    +144         File f = new File("target/test-classes/nvdcve-2.0-2012.xml");
    +145         String url = "file:///" + f.getCanonicalPath();
    +146         Updateable instance = new Updateable();
    +147         instance.add("one", url, url, false);
    +148         instance.add("two", url, url, false);
    +149         instance.add("three", url, url, false);
    +150         int itemsProcessed = 0;
    +151         for (NvdCveInfo item : instance) {
    +152             if ("one".equals(item.getId())) {
    +153                 instance.remove();
    +154             }
    +155             itemsProcessed += 1;
    +156         }
    +157         assertEquals(3, itemsProcessed);
    +158         assertEquals(2, instance.getCollection().size());
    +159     }
    +160 }
    +
    +
    + + diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html index 326da4c51..8becbf9b0 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.update @@ -16,13 +16,28 @@ diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html index 78b4dac28..7b691991d 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.update @@ -36,18 +36,43 @@ + + AbstractUpdateImpl + + + + + AbstractUpdateTaskTest + + + + + BatchUpdateTaskTest + + + + + DataStoreMetaInfoTest + + + DatabaseUpdaterIntegrationTest - DatabaseUpdater_1_Test + NvdCveInfoTest - DatabaseUpdater_2_Test + StandardUpdateTaskIntegrationTest + + + + + UpdateableTest diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html index 0076b8906..bc24fe7c5 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html index adeafe0fd..3cfe85d27 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html index 58b798350..705b1b41b 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html index 0d744fe8d..6a50c1f47 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/ReportGeneratorTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/ReportGeneratorTest.html index 6d96f4aae..bd4a66b7b 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/ReportGeneratorTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/ReportGeneratorTest.html @@ -28,96 +28,142 @@ 18 */ 19 package org.owasp.dependencycheck.reporting; 20 -21 import org.owasp.dependencycheck.data.cpe.BaseIndexTestCase; -22 import org.junit.After; -23 import org.junit.AfterClass; -24 import org.junit.Before; -25 import org.junit.BeforeClass; -26 import org.junit.Test; -27 -28 /** -29 * -30 * @author Jeremy Long (jeremy.long@owasp.org) -31 */ -32 public class ReportGeneratorTest { -33 -34 @BeforeClass -35 public static void setUpClass() throws Exception { -36 } -37 -38 @AfterClass -39 public static void tearDownClass() throws Exception { -40 } -41 -42 @Before -43 public void setUp() { -44 } -45 -46 @After -47 public void tearDown() { -48 } -49 -50 /** -51 * Test of generateReport method, of class ReportGenerator. -52 * -53 * @throws Exception is thrown when an exception occurs. -54 */ -55 @Test -56 public void testGenerateReport() throws Exception { -57 String templateName = "HtmlReport"; -58 // File f = new File("target/test-reports"); -59 // if (!f.exists()) { -60 // f.mkdir(); -61 // } -62 // String writeTo = "target/test-reports/Report.html"; -63 // Map<String, Object> properties = new HashMap<String, Object>(); -64 // Dependency d = new Dependency(); -65 // d.setFileName("FileName.jar"); -66 // d.setActualFilePath("lib/FileName.jar"); -67 // d.addCPEentry("cpe://a:/some:cpe:1.0"); -68 // -69 // List<Dependency> dependencies = new ArrayList<Dependency>(); -70 // d.getProductEvidence().addEvidence("jar","filename","<test>test", Confidence.HIGH); -71 // d.getProductEvidence().addEvidence("manifest","vendor","<test>test", Confidence.HIGH); -72 // -73 // for (Evidence e : d.getProductEvidence().iterator(Confidence.HIGH)) { -74 // String t = e.getValue(); -75 // } -76 // dependencies.add(d); +21 import org.owasp.dependencycheck.Engine; +22 import org.owasp.dependencycheck.data.cpe.BaseIndexTestCase; +23 import org.junit.After; +24 import org.junit.AfterClass; +25 import org.junit.Before; +26 import org.junit.BeforeClass; +27 import org.junit.Test; +28 +29 import javax.xml.XMLConstants; +30 import javax.xml.transform.stream.StreamSource; +31 import javax.xml.validation.Schema; +32 import javax.xml.validation.SchemaFactory; +33 import javax.xml.validation.Validator; +34 import java.io.File; +35 import java.io.InputStream; +36 +37 /** +38 * +39 * @author Jeremy Long (jeremy.long@owasp.org) +40 */ +41 public class ReportGeneratorTest { +42 +43 @BeforeClass +44 public static void setUpClass() throws Exception { +45 } +46 +47 @AfterClass +48 public static void tearDownClass() throws Exception { +49 } +50 +51 @Before +52 public void setUp() { +53 } +54 +55 @After +56 public void tearDown() { +57 } +58 +59 /** +60 * Test of generateReport method, of class ReportGenerator. +61 * +62 * @throws Exception is thrown when an exception occurs. +63 */ +64 @Test +65 public void testGenerateReport() throws Exception { +66 String templateName = "HtmlReport"; +67 // File f = new File("target/test-reports"); +68 // if (!f.exists()) { +69 // f.mkdir(); +70 // } +71 // String writeTo = "target/test-reports/Report.html"; +72 // Map<String, Object> properties = new HashMap<String, Object>(); +73 // Dependency d = new Dependency(); +74 // d.setFileName("FileName.jar"); +75 // d.setActualFilePath("lib/FileName.jar"); +76 // d.addCPEentry("cpe://a:/some:cpe:1.0"); 77 // -78 // Dependency d2 = new Dependency(); -79 // d2.setFileName("Another.jar"); -80 // d2.setActualFilePath("lib/Another.jar"); -81 // d2.addCPEentry("cpe://a:/another:cpe:1.0"); -82 // d2.addCPEentry("cpe://a:/another:cpe:1.1"); -83 // d2.addCPEentry("cpe://a:/another:cpe:1.2"); -84 // d2.getProductEvidence().addEvidence("jar","filename","another.jar", Confidence.HIGH); -85 // d2.getProductEvidence().addEvidence("manifest","vendor","Company A", Confidence.MEDIUM); +78 // List<Dependency> dependencies = new ArrayList<Dependency>(); +79 // d.getProductEvidence().addEvidence("jar","filename","<test>test", Confidence.HIGH); +80 // d.getProductEvidence().addEvidence("manifest","vendor","<test>test", Confidence.HIGH); +81 // +82 // for (Evidence e : d.getProductEvidence().iterator(Confidence.HIGH)) { +83 // String t = e.getValue(); +84 // } +85 // dependencies.add(d); 86 // -87 // for (Evidence e : d2.getProductEvidence().iterator(Confidence.HIGH)) { -88 // String t = e.getValue(); -89 // } -90 // -91 // dependencies.add(d2); -92 // -93 // Dependency d3 = new Dependency(); -94 // d3.setFileName("Third.jar"); -95 // d3.setActualFilePath("lib/Third.jar"); -96 // d3.getProductEvidence().addEvidence("jar","filename","third.jar", Confidence.HIGH); -97 // -98 // for (Evidence e : d3.getProductEvidence().iterator(Confidence.HIGH)) { -99 // String t = e.getValue(); -100 // } +87 // Dependency d2 = new Dependency(); +88 // d2.setFileName("Another.jar"); +89 // d2.setActualFilePath("lib/Another.jar"); +90 // d2.addCPEentry("cpe://a:/another:cpe:1.0"); +91 // d2.addCPEentry("cpe://a:/another:cpe:1.1"); +92 // d2.addCPEentry("cpe://a:/another:cpe:1.2"); +93 // d2.getProductEvidence().addEvidence("jar","filename","another.jar", Confidence.HIGH); +94 // d2.getProductEvidence().addEvidence("manifest","vendor","Company A", Confidence.MEDIUM); +95 // +96 // for (Evidence e : d2.getProductEvidence().iterator(Confidence.HIGH)) { +97 // String t = e.getValue(); +98 // } +99 // +100 // dependencies.add(d2); 101 // -102 // dependencies.add(d3); -103 // -104 // properties.put("dependencies",dependencies); -105 // -106 // ReportGenerator instance = new ReportGenerator(); -107 // instance.generateReport(templateName, writeTo, properties); -108 //assertTrue("need to add a real check here", false); -109 } -110 } +102 // Dependency d3 = new Dependency(); +103 // d3.setFileName("Third.jar"); +104 // d3.setActualFilePath("lib/Third.jar"); +105 // d3.getProductEvidence().addEvidence("jar","filename","third.jar", Confidence.HIGH); +106 // +107 // for (Evidence e : d3.getProductEvidence().iterator(Confidence.HIGH)) { +108 // String t = e.getValue(); +109 // } +110 // +111 // dependencies.add(d3); +112 // +113 // properties.put("dependencies",dependencies); +114 // +115 // ReportGenerator instance = new ReportGenerator(); +116 // instance.generateReport(templateName, writeTo, properties); +117 //assertTrue("need to add a real check here", false); +118 } +119 +120 /** +121 * Generates an XML report containing known vulnerabilities and realistic +122 * data and validates the generated XML document against the XSD. +123 * @throws Exception +124 */ +125 @Test +126 public void testGenerateXMLReport() throws Exception { +127 String templateName = "XmlReport"; +128 +129 File f = new File("target/test-reports"); +130 if (!f.exists()) { +131 f.mkdir(); +132 } +133 String writeTo = "target/test-reports/Report.xml"; +134 +135 File struts = new File(this.getClass().getClassLoader().getResource("struts2-core-2.1.2.jar").getPath()); +136 File axis = new File(this.getClass().getClassLoader().getResource("axis2-adb-1.4.1.jar").getPath()); +137 File jetty = new File(this.getClass().getClassLoader().getResource("org.mortbay.jetty.jar").getPath()); +138 +139 Engine engine = new Engine(); +140 engine.scan(struts); +141 engine.scan(axis); +142 engine.scan(jetty); +143 engine.analyzeDependencies(); +144 +145 ReportGenerator generator = new ReportGenerator("Test Report", engine.getDependencies(), engine.getAnalyzers()); +146 generator.generateReport(templateName, writeTo); +147 +148 InputStream xsdStream = ReportGenerator.class.getClassLoader().getResourceAsStream("schema/DependencyCheck.xsd"); +149 StreamSource xsdSource = new StreamSource(xsdStream); +150 StreamSource xmlSource = new StreamSource(new File(writeTo)); +151 SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); +152 Schema schema = sf.newSchema(xsdSource); +153 Validator validator = schema.newValidator(); +154 validator.validate(xmlSource); +155 } +156 }

    diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html index 8e3bf5d27..eb6b3fe7d 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html index 520ac5661..e89a0e32e 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/DependencyVersionTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/DependencyVersionTest.html index b60db0879..fe288381c 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/DependencyVersionTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/DependencyVersionTest.html @@ -119,72 +119,71 @@ 109 */ 110 @Test 111 public void testHashCode() { -112 System.out.println("hashCode"); -113 DependencyVersion instance = new DependencyVersion("3.2.1"); -114 int expResult = 80756; -115 int result = instance.hashCode(); -116 assertEquals(expResult, result); -117 } -118 -119 /** -120 * Test of matchesAtLeastThreeLevels method, of class DependencyVersion. -121 */ -122 @Test -123 public void testMatchesAtLeastThreeLevels() { -124 -125 DependencyVersion instance = new DependencyVersion("1.2.3.4"); -126 DependencyVersion version = new DependencyVersion("1.2.3.5"); -127 //true tests -128 assertEquals(true, instance.matchesAtLeastThreeLevels(version)); -129 version = new DependencyVersion("1.2"); -130 assertEquals(true, instance.matchesAtLeastThreeLevels(version)); -131 //false tests -132 version = new DependencyVersion("1.2.2.5"); -133 assertEquals(false, instance.matchesAtLeastThreeLevels(version)); -134 version = new DependencyVersion("2"); -135 assertEquals(false, instance.matchesAtLeastThreeLevels(version)); -136 } -137 -138 /** -139 * Test of compareTo method, of class DependencyVersion. -140 */ -141 @Test -142 public void testCompareTo() { -143 DependencyVersion instance = new DependencyVersion("1.2.3"); -144 DependencyVersion version = new DependencyVersion("1.2.3"); -145 int expResult = 0; -146 assertEquals(0, instance.compareTo(version)); -147 version = new DependencyVersion("1.1"); -148 assertEquals(1, instance.compareTo(version)); -149 version = new DependencyVersion("1.2"); -150 assertEquals(1, instance.compareTo(version)); -151 version = new DependencyVersion("1.3"); -152 assertEquals(-1, instance.compareTo(version)); -153 version = new DependencyVersion("1.2.3.1"); -154 assertEquals(-1, instance.compareTo(version)); -155 -156 DependencyVersion[] dv = new DependencyVersion[7]; -157 dv[0] = new DependencyVersion("2.1.3"); -158 dv[1] = new DependencyVersion("2.1.3.r2"); -159 dv[2] = new DependencyVersion("2.1.3.r1"); -160 dv[3] = new DependencyVersion("1.2.3.1"); -161 dv[4] = new DependencyVersion("1.2.3"); -162 dv[5] = new DependencyVersion("2"); -163 dv[6] = new DependencyVersion("-"); -164 -165 DependencyVersion[] expected = new DependencyVersion[7]; -166 expected[0] = new DependencyVersion("-"); -167 expected[1] = new DependencyVersion("1.2.3"); -168 expected[2] = new DependencyVersion("1.2.3.1"); -169 expected[3] = new DependencyVersion("2"); -170 expected[4] = new DependencyVersion("2.1.3"); -171 expected[5] = new DependencyVersion("2.1.3.r1"); -172 expected[6] = new DependencyVersion("2.1.3.r2"); -173 java.util.Arrays.sort(dv); -174 -175 assertArrayEquals(expected, dv); -176 } -177 } +112 DependencyVersion instance = new DependencyVersion("3.2.1"); +113 int expResult = 80756; +114 int result = instance.hashCode(); +115 assertEquals(expResult, result); +116 } +117 +118 /** +119 * Test of matchesAtLeastThreeLevels method, of class DependencyVersion. +120 */ +121 @Test +122 public void testMatchesAtLeastThreeLevels() { +123 +124 DependencyVersion instance = new DependencyVersion("1.2.3.4"); +125 DependencyVersion version = new DependencyVersion("1.2.3.5"); +126 //true tests +127 assertEquals(true, instance.matchesAtLeastThreeLevels(version)); +128 version = new DependencyVersion("1.2"); +129 assertEquals(true, instance.matchesAtLeastThreeLevels(version)); +130 //false tests +131 version = new DependencyVersion("1.2.2.5"); +132 assertEquals(false, instance.matchesAtLeastThreeLevels(version)); +133 version = new DependencyVersion("2"); +134 assertEquals(false, instance.matchesAtLeastThreeLevels(version)); +135 } +136 +137 /** +138 * Test of compareTo method, of class DependencyVersion. +139 */ +140 @Test +141 public void testCompareTo() { +142 DependencyVersion instance = new DependencyVersion("1.2.3"); +143 DependencyVersion version = new DependencyVersion("1.2.3"); +144 int expResult = 0; +145 assertEquals(0, instance.compareTo(version)); +146 version = new DependencyVersion("1.1"); +147 assertEquals(1, instance.compareTo(version)); +148 version = new DependencyVersion("1.2"); +149 assertEquals(1, instance.compareTo(version)); +150 version = new DependencyVersion("1.3"); +151 assertEquals(-1, instance.compareTo(version)); +152 version = new DependencyVersion("1.2.3.1"); +153 assertEquals(-1, instance.compareTo(version)); +154 +155 DependencyVersion[] dv = new DependencyVersion[7]; +156 dv[0] = new DependencyVersion("2.1.3"); +157 dv[1] = new DependencyVersion("2.1.3.r2"); +158 dv[2] = new DependencyVersion("2.1.3.r1"); +159 dv[3] = new DependencyVersion("1.2.3.1"); +160 dv[4] = new DependencyVersion("1.2.3"); +161 dv[5] = new DependencyVersion("2"); +162 dv[6] = new DependencyVersion("-"); +163 +164 DependencyVersion[] expected = new DependencyVersion[7]; +165 expected[0] = new DependencyVersion("-"); +166 expected[1] = new DependencyVersion("1.2.3"); +167 expected[2] = new DependencyVersion("1.2.3.1"); +168 expected[3] = new DependencyVersion("2"); +169 expected[4] = new DependencyVersion("2.1.3"); +170 expected[5] = new DependencyVersion("2.1.3.r1"); +171 expected[6] = new DependencyVersion("2.1.3.r2"); +172 java.util.Arrays.sort(dv); +173 +174 assertArrayEquals(expected, dv); +175 } +176 }
    diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html index ea20af824..8b6b4faa0 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html index 1a6c9e6cf..c48c0bf1b 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref-test/overview-frame.html b/dependency-check-core/xref-test/overview-frame.html index 524563319..3fb482aec 100644 --- a/dependency-check-core/xref-test/overview-frame.html +++ b/dependency-check-core/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference + Dependency-Check Core 1.0.3 Reference diff --git a/dependency-check-core/xref-test/overview-summary.html b/dependency-check-core/xref-test/overview-summary.html index bc1d5da67..f111004bf 100644 --- a/dependency-check-core/xref-test/overview-summary.html +++ b/dependency-check-core/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference + Dependency-Check Core 1.0.3 Reference @@ -24,7 +24,7 @@
    -

    Dependency-Check Core 1.0.2 Reference

    +

    Dependency-Check Core 1.0.3 Reference

    diff --git a/dependency-check-core/xref/allclasses-frame.html b/dependency-check-core/xref/allclasses-frame.html index f5df7e850..c38c65ef0 100644 --- a/dependency-check-core/xref/allclasses-frame.html +++ b/dependency-check-core/xref/allclasses-frame.html @@ -16,6 +16,9 @@
  • AbstractTokenizingFilter +
  • +
  • + AbstractUpdateTask
  • Activation @@ -49,6 +52,9 @@
  • BaseIndex +
  • +
  • + BatchUpdateTask
  • Build @@ -397,6 +403,9 @@
  • Site +
  • +
  • + StandardUpdateTask
  • TestResources @@ -409,6 +418,15 @@
  • UpdateService +
  • +
  • + UpdateTask +
  • +
  • + UpdateTaskFactory +
  • +
  • + Updateable
  • UrlStringUtils diff --git a/dependency-check-core/xref/index.html b/dependency-check-core/xref/index.html index e259d86e9..661cfcd9e 100644 --- a/dependency-check-core/xref/index.html +++ b/dependency-check-core/xref/index.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference + Dependency-Check Core 1.0.3 Reference diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html index b40bbdf07..ac00e4e61 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html @@ -470,7 +470,7 @@ 460 } 461 } 462 if (tempWord != null && !list.isEmpty()) { -463 String tmp = list.get(list.size() - 1) + tempWord; +463 final String tmp = list.get(list.size() - 1) + tempWord; 464 list.add(tmp); 465 } 466 boolean contains = true; diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html index 6333cef89..07ef48e42 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html @@ -165,178 +165,184 @@ 155 final String nextVersion = nextCpe.getVersion(); 156 if (currentVersion == null && nextVersion == null) { 157 //how did we get here? -158 } else if (currentVersion == null && nextVersion != null) { -159 dependency.getIdentifiers().remove(currentId); -160 } else if (nextVersion == null && currentVersion != null) { -161 dependency.getIdentifiers().remove(nextId); -162 } else if (currentVersion.length() < nextVersion.length()) { -163 if (nextVersion.startsWith(currentVersion) || "-".equals(currentVersion)) { -164 dependency.getIdentifiers().remove(currentId); -165 } -166 } else { -167 if (currentVersion.startsWith(nextVersion) || "-".equals(nextVersion)) { -168 dependency.getIdentifiers().remove(nextId); -169 } -170 } -171 } -172 } -173 } -174 } -175 } -176 /** -177 * Regex to identify core java libraries and a few other commonly -178 * misidentified ones. -179 */ -180 public static final Pattern CORE_JAVA = Pattern.compile("^cpe:/a:(sun|oracle|ibm):(j2[ems]e|" -181 + "java(_platfrom_micro_edition|_runtime_environment|_se|virtual_machine|se_development_kit|fx)?|" -182 + "jdk|jre|jsf|jsse)($|:.*)"); -183 /** -184 * Regex to identify core java library files. This is currently incomplete. -185 */ -186 public static final Pattern CORE_FILES = Pattern.compile("^((alt[-])?rt|jsf[-].*|jsse|jfxrt|jfr|jce|javaws|deploy|charsets)\\.jar$"); -187 -188 /** -189 * Removes any CPE entries for the JDK/JRE unless the filename ends with -190 * rt.jar -191 * -192 * @param dependency the dependency to remove JRE CPEs from -193 */ -194 private void removeJreEntries(Dependency dependency) { -195 final Set<Identifier> identifiers = dependency.getIdentifiers(); -196 final Iterator<Identifier> itr = identifiers.iterator(); -197 while (itr.hasNext()) { -198 final Identifier i = itr.next(); -199 final Matcher coreCPE = CORE_JAVA.matcher(i.getValue()); -200 final Matcher coreFiles = CORE_FILES.matcher(dependency.getFileName()); -201 if (coreCPE.matches() && !coreFiles.matches()) { -202 itr.remove(); -203 } -204 -205 //replacecd with the regex above. -206 // if (("cpe:/a:sun:java".equals(i.getValue()) -207 // || "cpe:/a:oracle:java".equals(i.getValue()) -208 // || "cpe:/a:ibm:java".equals(i.getValue()) -209 // || "cpe:/a:sun:j2se".equals(i.getValue()) -210 // || "cpe:/a:oracle:j2se".equals(i.getValue()) -211 // || i.getValue().startsWith("cpe:/a:sun:java:") -212 // || i.getValue().startsWith("cpe:/a:sun:j2se:") -213 // || i.getValue().startsWith("cpe:/a:sun:java:jre") -214 // || i.getValue().startsWith("cpe:/a:sun:java:jdk") -215 // || i.getValue().startsWith("cpe:/a:sun:java_se") -216 // || i.getValue().startsWith("cpe:/a:oracle:java_se") -217 // || i.getValue().startsWith("cpe:/a:oracle:java:") -218 // || i.getValue().startsWith("cpe:/a:oracle:j2se:") -219 // || i.getValue().startsWith("cpe:/a:oracle:jre") -220 // || i.getValue().startsWith("cpe:/a:oracle:jdk") -221 // || i.getValue().startsWith("cpe:/a:ibm:java:")) -222 // && !dependency.getFileName().toLowerCase().endsWith("rt.jar")) { -223 // itr.remove(); -224 // } -225 } -226 } -227 -228 /** -229 * Parses a CPE string into an IndexEntry. -230 * -231 * @param type the type of identifier -232 * @param value the cpe identifier to parse -233 * @return an VulnerableSoftware object constructed from the identifier -234 */ -235 private VulnerableSoftware parseCpe(String type, String value) { -236 if (!"cpe".equals(type)) { -237 return null; -238 } -239 final VulnerableSoftware cpe = new VulnerableSoftware(); -240 try { -241 cpe.parseName(value); -242 } catch (UnsupportedEncodingException ex) { -243 Logger.getLogger(FalsePositiveAnalyzer.class.getName()).log(Level.FINEST, null, ex); -244 return null; -245 } -246 return cpe; -247 } -248 -249 /** -250 * Removes bad CPE matches for a dependency. Unfortunately, right now these -251 * are hard-coded patches for specific problems identified when testing this -252 * on a LARGE volume of jar files. -253 * -254 * @param dependency the dependency to analyze -255 */ -256 private void removeBadMatches(Dependency dependency) { -257 final Set<Identifier> identifiers = dependency.getIdentifiers(); -258 final Iterator<Identifier> itr = identifiers.iterator(); -259 -260 /* TODO - can we utilize the pom's groupid and artifactId to filter??? most of -261 * these are due to low quality data. Other idea would be to say any CPE -262 * found based on LOW confidence evidence should have a different CPE type? (this -263 * might be a better solution then just removing the URL for "best-guess" matches). -264 */ -265 -266 //Set<Evidence> groupId = dependency.getVendorEvidence().getEvidence("pom", "groupid"); -267 //Set<Evidence> artifactId = dependency.getVendorEvidence().getEvidence("pom", "artifactid"); -268 -269 while (itr.hasNext()) { -270 final Identifier i = itr.next(); -271 //TODO move this startswith expression to a configuration file? -272 if ("cpe".equals(i.getType())) { -273 if ((i.getValue().matches(".*c\\+\\+.*") -274 || i.getValue().startsWith("cpe:/a:jquery:jquery") -275 || i.getValue().startsWith("cpe:/a:prototypejs:prototype") -276 || i.getValue().startsWith("cpe:/a:yahoo:yui")) -277 && dependency.getFileName().toLowerCase().endsWith(".jar")) { -278 itr.remove(); -279 } else if (i.getValue().startsWith("cpe:/a:file:file") +158 Logger.getLogger(FalsePositiveAnalyzer.class +159 .getName()).log(Level.FINE, "currentVersion and nextVersion are both null?"); +160 } else if (currentVersion == null && nextVersion != null) { +161 dependency.getIdentifiers().remove(currentId); +162 } else if (nextVersion == null && currentVersion != null) { +163 dependency.getIdentifiers().remove(nextId); +164 } else if (currentVersion.length() < nextVersion.length()) { +165 if (nextVersion.startsWith(currentVersion) || "-".equals(currentVersion)) { +166 dependency.getIdentifiers().remove(currentId); +167 } +168 } else { +169 if (currentVersion.startsWith(nextVersion) || "-".equals(nextVersion)) { +170 dependency.getIdentifiers().remove(nextId); +171 } +172 } +173 } +174 } +175 } +176 } +177 } +178 /** +179 * Regex to identify core java libraries and a few other commonly +180 * misidentified ones. +181 */ +182 public static final Pattern CORE_JAVA = Pattern.compile("^cpe:/a:(sun|oracle|ibm):(j2[ems]e|" +183 + "java(_platfrom_micro_edition|_runtime_environment|_se|virtual_machine|se_development_kit|fx)?|" +184 + "jdk|jre|jsf|jsse)($|:.*)"); +185 /** +186 * Regex to identify core java library files. This is currently incomplete. +187 */ +188 public static final Pattern CORE_FILES = Pattern.compile("^((alt[-])?rt|jsf[-].*|jsse|jfxrt|jfr|jce|javaws|deploy|charsets)\\.jar$"); +189 +190 /** +191 * Removes any CPE entries for the JDK/JRE unless the filename ends with +192 * rt.jar +193 * +194 * @param dependency the dependency to remove JRE CPEs from +195 */ +196 private void removeJreEntries(Dependency dependency) { +197 final Set<Identifier> identifiers = dependency.getIdentifiers(); +198 final Iterator<Identifier> itr = identifiers.iterator(); +199 while (itr.hasNext()) { +200 final Identifier i = itr.next(); +201 final Matcher coreCPE = CORE_JAVA.matcher(i.getValue()); +202 final Matcher coreFiles = CORE_FILES.matcher(dependency.getFileName()); +203 if (coreCPE.matches() && !coreFiles.matches()) { +204 itr.remove(); +205 } +206 +207 //replacecd with the regex above. +208 // if (("cpe:/a:sun:java".equals(i.getValue()) +209 // || "cpe:/a:oracle:java".equals(i.getValue()) +210 // || "cpe:/a:ibm:java".equals(i.getValue()) +211 // || "cpe:/a:sun:j2se".equals(i.getValue()) +212 // || "cpe:/a:oracle:j2se".equals(i.getValue()) +213 // || i.getValue().startsWith("cpe:/a:sun:java:") +214 // || i.getValue().startsWith("cpe:/a:sun:j2se:") +215 // || i.getValue().startsWith("cpe:/a:sun:java:jre") +216 // || i.getValue().startsWith("cpe:/a:sun:java:jdk") +217 // || i.getValue().startsWith("cpe:/a:sun:java_se") +218 // || i.getValue().startsWith("cpe:/a:oracle:java_se") +219 // || i.getValue().startsWith("cpe:/a:oracle:java:") +220 // || i.getValue().startsWith("cpe:/a:oracle:j2se:") +221 // || i.getValue().startsWith("cpe:/a:oracle:jre") +222 // || i.getValue().startsWith("cpe:/a:oracle:jdk") +223 // || i.getValue().startsWith("cpe:/a:ibm:java:")) +224 // && !dependency.getFileName().toLowerCase().endsWith("rt.jar")) { +225 // itr.remove(); +226 // } +227 } +228 } +229 +230 /** +231 * Parses a CPE string into an IndexEntry. +232 * +233 * @param type the type of identifier +234 * @param value the cpe identifier to parse +235 * @return an VulnerableSoftware object constructed from the identifier +236 */ +237 private VulnerableSoftware parseCpe(String type, String value) { +238 if (!"cpe".equals(type)) { +239 return null; +240 } +241 final VulnerableSoftware cpe = new VulnerableSoftware(); +242 try { +243 cpe.parseName(value); +244 } catch (UnsupportedEncodingException ex) { +245 Logger.getLogger(FalsePositiveAnalyzer.class.getName()).log(Level.FINEST, null, ex); +246 return null; +247 } +248 return cpe; +249 } +250 +251 /** +252 * Removes bad CPE matches for a dependency. Unfortunately, right now these +253 * are hard-coded patches for specific problems identified when testing this +254 * on a LARGE volume of jar files. +255 * +256 * @param dependency the dependency to analyze +257 */ +258 private void removeBadMatches(Dependency dependency) { +259 final Set<Identifier> identifiers = dependency.getIdentifiers(); +260 final Iterator<Identifier> itr = identifiers.iterator(); +261 +262 /* TODO - can we utilize the pom's groupid and artifactId to filter??? most of +263 * these are due to low quality data. Other idea would be to say any CPE +264 * found based on LOW confidence evidence should have a different CPE type? (this +265 * might be a better solution then just removing the URL for "best-guess" matches). +266 */ +267 +268 //Set<Evidence> groupId = dependency.getVendorEvidence().getEvidence("pom", "groupid"); +269 //Set<Evidence> artifactId = dependency.getVendorEvidence().getEvidence("pom", "artifactid"); +270 +271 while (itr.hasNext()) { +272 final Identifier i = itr.next(); +273 //TODO move this startswith expression to a configuration file? +274 if ("cpe".equals(i.getType())) { +275 if ((i.getValue().matches(".*c\\+\\+.*") +276 || i.getValue().startsWith("cpe:/a:jquery:jquery") +277 || i.getValue().startsWith("cpe:/a:prototypejs:prototype") +278 || i.getValue().startsWith("cpe:/a:yahoo:yui") +279 || i.getValue().startsWith("cpe:/a:file:file") 280 || i.getValue().startsWith("cpe:/a:mozilla:mozilla") -281 || i.getValue().startsWith("cpe:/a:ssh:ssh")) { -282 itr.remove(); -283 } -284 } -285 } -286 } -287 -288 /** -289 * There are some known CPE entries, specifically regarding sun and oracle -290 * products due to the acquisition and changes in product names, that based -291 * on given evidence we can add the related CPE entries to ensure a complete -292 * list of CVE entries. -293 * -294 * @param dependency the dependency being analyzed -295 */ -296 private void addFalseNegativeCPEs(Dependency dependency) { -297 final Iterator<Identifier> itr = dependency.getIdentifiers().iterator(); -298 while (itr.hasNext()) { -299 final Identifier i = itr.next(); -300 if ("cpe".equals(i.getType()) && i.getValue() != null -301 && (i.getValue().startsWith("cpe:/a:oracle:opensso:") -302 || i.getValue().startsWith("cpe:/a:oracle:opensso_enterprise:") -303 || i.getValue().startsWith("cpe:/a:sun:opensso_enterprise:") -304 || i.getValue().startsWith("cpe:/a:sun:opensso:"))) { -305 final String newCpe = String.format("cpe:/a:sun:opensso_enterprise:%s", i.getValue().substring(22)); -306 final String newCpe2 = String.format("cpe:/a:oracle:opensso_enterprise:%s", i.getValue().substring(22)); -307 final String newCpe3 = String.format("cpe:/a:sun:opensso:%s", i.getValue().substring(22)); -308 final String newCpe4 = String.format("cpe:/a:oracle:opensso:%s", i.getValue().substring(22)); -309 try { -310 dependency.addIdentifier("cpe", -311 newCpe, -312 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe, "UTF-8"))); -313 dependency.addIdentifier("cpe", -314 newCpe2, -315 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe2, "UTF-8"))); +281 || i.getValue().startsWith("cpe:/a:cvs:cvs") +282 || i.getValue().startsWith("cpe:/a:ftp:ftp") +283 || i.getValue().startsWith("cpe:/a:ssh:ssh")) +284 && dependency.getFileName().toLowerCase().endsWith(".jar")) { +285 itr.remove(); +286 } else if (i.getValue().startsWith("cpe:/a:apache:maven") +287 && !dependency.getFileName().toLowerCase().matches("maven-core-[\\d\\.]+\\.jar")) { +288 itr.remove(); +289 } +290 } +291 } +292 } +293 +294 /** +295 * There are some known CPE entries, specifically regarding sun and oracle +296 * products due to the acquisition and changes in product names, that based +297 * on given evidence we can add the related CPE entries to ensure a complete +298 * list of CVE entries. +299 * +300 * @param dependency the dependency being analyzed +301 */ +302 private void addFalseNegativeCPEs(Dependency dependency) { +303 final Iterator<Identifier> itr = dependency.getIdentifiers().iterator(); +304 while (itr.hasNext()) { +305 final Identifier i = itr.next(); +306 if ("cpe".equals(i.getType()) && i.getValue() != null +307 && (i.getValue().startsWith("cpe:/a:oracle:opensso:") +308 || i.getValue().startsWith("cpe:/a:oracle:opensso_enterprise:") +309 || i.getValue().startsWith("cpe:/a:sun:opensso_enterprise:") +310 || i.getValue().startsWith("cpe:/a:sun:opensso:"))) { +311 final String newCpe = String.format("cpe:/a:sun:opensso_enterprise:%s", i.getValue().substring(22)); +312 final String newCpe2 = String.format("cpe:/a:oracle:opensso_enterprise:%s", i.getValue().substring(22)); +313 final String newCpe3 = String.format("cpe:/a:sun:opensso:%s", i.getValue().substring(22)); +314 final String newCpe4 = String.format("cpe:/a:oracle:opensso:%s", i.getValue().substring(22)); +315 try { 316 dependency.addIdentifier("cpe", -317 newCpe3, -318 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe3, "UTF-8"))); +317 newCpe, +318 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe, "UTF-8"))); 319 dependency.addIdentifier("cpe", -320 newCpe4, -321 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe4, "UTF-8"))); -322 } catch (UnsupportedEncodingException ex) { -323 Logger.getLogger(FalsePositiveAnalyzer.class -324 .getName()).log(Level.FINE, null, ex); -325 } -326 } -327 } -328 } -329 } +320 newCpe2, +321 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe2, "UTF-8"))); +322 dependency.addIdentifier("cpe", +323 newCpe3, +324 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe3, "UTF-8"))); +325 dependency.addIdentifier("cpe", +326 newCpe4, +327 String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(newCpe4, "UTF-8"))); +328 } catch (UnsupportedEncodingException ex) { +329 Logger.getLogger(FalsePositiveAnalyzer.class +330 .getName()).log(Level.FINE, null, ex); +331 } +332 } +333 } +334 } +335 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/JarAnalyzer.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/JarAnalyzer.html index e7e1cc188..5af8b919b 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/JarAnalyzer.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/JarAnalyzer.html @@ -525,7 +525,7 @@ 515 if (ratio > 0.5) { 516 //TODO remove weighting 517 vendor.addWeighting(entry.getKey()); -518 if (addPackagesAsEvidence) { +518 if (addPackagesAsEvidence && entry.getKey().length() > 1) { 519 vendor.addEvidence("jar", "package", entry.getKey(), Evidence.Confidence.LOW); 520 } 521 } @@ -534,7 +534,7 @@ 524 final float ratio = entry.getValue() / (float) classCount; 525 if (ratio > 0.5) { 526 product.addWeighting(entry.getKey()); -527 if (addPackagesAsEvidence) { +527 if (addPackagesAsEvidence && entry.getKey().length() > 1) { 528 product.addEvidence("jar", "package", entry.getKey(), Evidence.Confidence.LOW); 529 } 530 } @@ -590,38 +590,38 @@ 580 } 581 if (IGNORE_VALUES.contains(value)) { 582 continue; -583 } else if (key.equals(Attributes.Name.IMPLEMENTATION_TITLE.toString())) { +583 } else if (key.equalsIgnoreCase(Attributes.Name.IMPLEMENTATION_TITLE.toString())) { 584 foundSomething = true; 585 productEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH); 586 addMatchingValues(classInformation, value, productEvidence); -587 } else if (key.equals(Attributes.Name.IMPLEMENTATION_VERSION.toString())) { +587 } else if (key.equalsIgnoreCase(Attributes.Name.IMPLEMENTATION_VERSION.toString())) { 588 foundSomething = true; 589 versionEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH); -590 } else if (key.equals(Attributes.Name.IMPLEMENTATION_VENDOR.toString())) { +590 } else if (key.equalsIgnoreCase(Attributes.Name.IMPLEMENTATION_VENDOR.toString())) { 591 foundSomething = true; 592 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH); 593 addMatchingValues(classInformation, value, vendorEvidence); -594 } else if (key.equals(Attributes.Name.IMPLEMENTATION_VENDOR_ID.toString())) { +594 } else if (key.equalsIgnoreCase(Attributes.Name.IMPLEMENTATION_VENDOR_ID.toString())) { 595 foundSomething = true; 596 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); 597 addMatchingValues(classInformation, value, vendorEvidence); -598 } else if (key.equals(BUNDLE_DESCRIPTION)) { +598 } else if (key.equalsIgnoreCase(BUNDLE_DESCRIPTION)) { 599 foundSomething = true; 600 addDescription(dependency, value, "manifest", key); 601 //productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); 602 addMatchingValues(classInformation, value, productEvidence); -603 } else if (key.equals(BUNDLE_NAME)) { +603 } else if (key.equalsIgnoreCase(BUNDLE_NAME)) { 604 foundSomething = true; 605 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); 606 addMatchingValues(classInformation, value, productEvidence); -607 } else if (key.equals(BUNDLE_VENDOR)) { +607 } else if (key.equalsIgnoreCase(BUNDLE_VENDOR)) { 608 foundSomething = true; 609 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH); 610 addMatchingValues(classInformation, value, vendorEvidence); -611 } else if (key.equals(BUNDLE_VERSION)) { +611 } else if (key.equalsIgnoreCase(BUNDLE_VERSION)) { 612 foundSomething = true; 613 versionEvidence.addEvidence(source, key, value, Evidence.Confidence.HIGH); -614 } else if (key.equals(Attributes.Name.MAIN_CLASS.toString())) { +614 } else if (key.equalsIgnoreCase(Attributes.Name.MAIN_CLASS.toString())) { 615 continue; 616 //skipping main class as if this has important information to add 617 // it will be added during class name analysis... if other fields @@ -647,479 +647,488 @@ 637 638 foundSomething = true; 639 if (key.contains("version")) { -640 versionEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); -641 } else if (key.contains("title")) { -642 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); -643 addMatchingValues(classInformation, value, productEvidence); -644 } else if (key.contains("vendor")) { -645 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); -646 addMatchingValues(classInformation, value, vendorEvidence); -647 } else if (key.contains("name")) { -648 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); -649 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); -650 addMatchingValues(classInformation, value, vendorEvidence); -651 addMatchingValues(classInformation, value, productEvidence); -652 } else if (key.contains("license")) { -653 addLicense(dependency, value); -654 } else { -655 if (key.contains("description")) { -656 addDescription(dependency, value, "manifest", key); -657 } else { -658 productEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW); -659 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW); -660 addMatchingValues(classInformation, value, vendorEvidence); -661 addMatchingValues(classInformation, value, productEvidence); -662 if (value.matches(".*\\d.*")) { -663 final StringTokenizer tokenizer = new StringTokenizer(value, " "); -664 while (tokenizer.hasMoreElements()) { -665 final String s = tokenizer.nextToken(); -666 if (s.matches("^[0-9.]+$")) { -667 versionEvidence.addEvidence(source, key, s, Evidence.Confidence.LOW); -668 } -669 } -670 } -671 } -672 } -673 } -674 } -675 } -676 } finally { -677 if (jar != null) { -678 jar.close(); -679 } -680 } -681 return foundSomething; -682 } -683 -684 /** -685 * Adds a description to the given dependency. -686 * -687 * @param dependency a dependency -688 * @param description the description -689 * @param source the source of the evidence -690 * @param key the "name" of the evidence -691 */ -692 private void addDescription(Dependency dependency, String description, String source, String key) { -693 if (dependency.getDescription() == null) { -694 dependency.setDescription(description); -695 } -696 String desc; -697 if (HTML_DETECTION_PATTERN.matcher(description).find()) { -698 desc = Jsoup.parse(description).text(); -699 } else { -700 desc = description; -701 } -702 dependency.setDescription(desc); -703 if (desc.length() > 100) { -704 final int posSuchAs = desc.toLowerCase().indexOf("such as ", 100); -705 final int posLike = desc.toLowerCase().indexOf("like ", 100); -706 int pos = -1; -707 if (posLike > 0 && posSuchAs > 0) { -708 pos = posLike > posSuchAs ? posLike : posSuchAs; -709 } else if (posLike > 0) { -710 pos = posLike; -711 } else if (posSuchAs > 0) { -712 pos = posSuchAs; -713 } -714 String descToUse = desc; -715 if (pos > 0) { -716 final StringBuilder sb = new StringBuilder(pos + 3); -717 sb.append(desc.substring(0, pos)); -718 sb.append("..."); -719 descToUse = sb.toString(); -720 } -721 dependency.getProductEvidence().addEvidence(source, key, descToUse, Evidence.Confidence.LOW); -722 dependency.getVendorEvidence().addEvidence(source, key, descToUse, Evidence.Confidence.LOW); -723 } else { -724 dependency.getProductEvidence().addEvidence(source, key, desc, Evidence.Confidence.MEDIUM); -725 dependency.getVendorEvidence().addEvidence(source, key, desc, Evidence.Confidence.MEDIUM); -726 } -727 } -728 -729 /** -730 * Adds a license to the given dependency. -731 * -732 * @param d a dependency -733 * @param license the license -734 */ -735 private void addLicense(Dependency d, String license) { -736 if (d.getLicense() == null) { -737 d.setLicense(license); -738 } else if (!d.getLicense().contains(license)) { -739 d.setLicense(d.getLicense() + NEWLINE + license); -740 } -741 } -742 -743 /** -744 * The initialize method does nothing for this Analyzer. -745 */ -746 public void initialize() { -747 //do nothing -748 } -749 -750 /** -751 * The close method does nothing for this Analyzer. -752 */ -753 public void close() { -754 //do nothing -755 } -756 -757 /** -758 * <p>A utility function that will interpolate strings based on values given -759 * in the properties file. It will also interpolate the strings contained -760 * within the properties file so that properties can reference other -761 * properties.</p> -762 * <p><b>Note:</b> if there is no property found the reference will be -763 * removed. In other words, if the interpolated string will be replaced with -764 * an empty string. -765 * </p> -766 * <p>Example:</p> -767 * <code> -768 * Properties p = new Properties(); -769 * p.setProperty("key", "value"); -770 * String s = interpolateString("'${key}' and '${nothing}'", p); -771 * System.out.println(s); -772 * </code> -773 * <p>Will result in:</p> -774 * <code> -775 * 'value' and '' -776 * </code> -777 * -778 * @param text the string that contains references to properties. -779 * @param properties a collection of properties that may be referenced -780 * within the text. -781 * @return the interpolated text. -782 */ -783 protected String interpolateString(String text, Properties properties) { -784 Properties props = properties; -785 if (text == null) { -786 return text; -787 } -788 if (props == null) { -789 props = new Properties(); -790 } -791 -792 final int pos = text.indexOf("${"); -793 if (pos < 0) { -794 return text; -795 } -796 final int end = text.indexOf("}"); -797 if (end < pos) { -798 return text; +640 if (key.contains("specification")) { +641 versionEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW); +642 } else { +643 versionEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); +644 } +645 +646 } else if (key.contains("title")) { +647 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); +648 addMatchingValues(classInformation, value, productEvidence); +649 } else if (key.contains("vendor")) { +650 if (key.contains("specification")) { +651 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW); +652 } else { +653 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); +654 addMatchingValues(classInformation, value, vendorEvidence); +655 } +656 } else if (key.contains("name")) { +657 productEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); +658 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.MEDIUM); +659 addMatchingValues(classInformation, value, vendorEvidence); +660 addMatchingValues(classInformation, value, productEvidence); +661 } else if (key.contains("license")) { +662 addLicense(dependency, value); +663 } else { +664 if (key.contains("description")) { +665 addDescription(dependency, value, "manifest", key); +666 } else { +667 productEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW); +668 vendorEvidence.addEvidence(source, key, value, Evidence.Confidence.LOW); +669 addMatchingValues(classInformation, value, vendorEvidence); +670 addMatchingValues(classInformation, value, productEvidence); +671 if (value.matches(".*\\d.*")) { +672 final StringTokenizer tokenizer = new StringTokenizer(value, " "); +673 while (tokenizer.hasMoreElements()) { +674 final String s = tokenizer.nextToken(); +675 if (s.matches("^[0-9.]+$")) { +676 versionEvidence.addEvidence(source, key, s, Evidence.Confidence.LOW); +677 } +678 } +679 } +680 } +681 } +682 } +683 } +684 } +685 } finally { +686 if (jar != null) { +687 jar.close(); +688 } +689 } +690 return foundSomething; +691 } +692 +693 /** +694 * Adds a description to the given dependency. +695 * +696 * @param dependency a dependency +697 * @param description the description +698 * @param source the source of the evidence +699 * @param key the "name" of the evidence +700 */ +701 private void addDescription(Dependency dependency, String description, String source, String key) { +702 if (dependency.getDescription() == null) { +703 dependency.setDescription(description); +704 } +705 String desc; +706 if (HTML_DETECTION_PATTERN.matcher(description).find()) { +707 desc = Jsoup.parse(description).text(); +708 } else { +709 desc = description; +710 } +711 dependency.setDescription(desc); +712 if (desc.length() > 100) { +713 final int posSuchAs = desc.toLowerCase().indexOf("such as ", 100); +714 final int posLike = desc.toLowerCase().indexOf("like ", 100); +715 int pos = -1; +716 if (posLike > 0 && posSuchAs > 0) { +717 pos = posLike > posSuchAs ? posLike : posSuchAs; +718 } else if (posLike > 0) { +719 pos = posLike; +720 } else if (posSuchAs > 0) { +721 pos = posSuchAs; +722 } +723 String descToUse = desc; +724 if (pos > 0) { +725 final StringBuilder sb = new StringBuilder(pos + 3); +726 sb.append(desc.substring(0, pos)); +727 sb.append("..."); +728 descToUse = sb.toString(); +729 } +730 dependency.getProductEvidence().addEvidence(source, key, descToUse, Evidence.Confidence.LOW); +731 dependency.getVendorEvidence().addEvidence(source, key, descToUse, Evidence.Confidence.LOW); +732 } else { +733 dependency.getProductEvidence().addEvidence(source, key, desc, Evidence.Confidence.MEDIUM); +734 dependency.getVendorEvidence().addEvidence(source, key, desc, Evidence.Confidence.MEDIUM); +735 } +736 } +737 +738 /** +739 * Adds a license to the given dependency. +740 * +741 * @param d a dependency +742 * @param license the license +743 */ +744 private void addLicense(Dependency d, String license) { +745 if (d.getLicense() == null) { +746 d.setLicense(license); +747 } else if (!d.getLicense().contains(license)) { +748 d.setLicense(d.getLicense() + NEWLINE + license); +749 } +750 } +751 +752 /** +753 * The initialize method does nothing for this Analyzer. +754 */ +755 public void initialize() { +756 //do nothing +757 } +758 +759 /** +760 * The close method does nothing for this Analyzer. +761 */ +762 public void close() { +763 //do nothing +764 } +765 +766 /** +767 * <p>A utility function that will interpolate strings based on values given +768 * in the properties file. It will also interpolate the strings contained +769 * within the properties file so that properties can reference other +770 * properties.</p> +771 * <p><b>Note:</b> if there is no property found the reference will be +772 * removed. In other words, if the interpolated string will be replaced with +773 * an empty string. +774 * </p> +775 * <p>Example:</p> +776 * <code> +777 * Properties p = new Properties(); +778 * p.setProperty("key", "value"); +779 * String s = interpolateString("'${key}' and '${nothing}'", p); +780 * System.out.println(s); +781 * </code> +782 * <p>Will result in:</p> +783 * <code> +784 * 'value' and '' +785 * </code> +786 * +787 * @param text the string that contains references to properties. +788 * @param properties a collection of properties that may be referenced +789 * within the text. +790 * @return the interpolated text. +791 */ +792 protected String interpolateString(String text, Properties properties) { +793 Properties props = properties; +794 if (text == null) { +795 return text; +796 } +797 if (props == null) { +798 props = new Properties(); 799 } 800 -801 final String propName = text.substring(pos + 2, end); -802 String propValue = interpolateString(props.getProperty(propName), props); -803 if (propValue == null) { -804 propValue = ""; -805 } -806 final StringBuilder sb = new StringBuilder(propValue.length() + text.length()); -807 sb.append(text.subSequence(0, pos)); -808 sb.append(propValue); -809 sb.append(text.substring(end + 1)); -810 return interpolateString(sb.toString(), props); //yes yes, this should be a loop... -811 } -812 -813 /** -814 * Determines if the key value pair from the manifest is for an "import" -815 * type entry for package names. -816 * -817 * @param key the key from the manifest -818 * @param value the value from the manifest -819 * @return true or false depending on if it is believed the entry is an -820 * "import" entry -821 */ -822 private boolean isImportPackage(String key, String value) { -823 final Pattern packageRx = Pattern.compile("^((([a-zA-Z_#\\$0-9]\\.)+)\\s*\\;\\s*)+$"); -824 if (packageRx.matcher(value).matches()) { -825 return (key.contains("import") || key.contains("include")); -826 } -827 return false; -828 } -829 -830 /** -831 * Cycles through an enumeration of JarEntries, contained within the -832 * dependency, and returns a list of the class names. This does not include -833 * core Java package names (i.e. java.* or javax.*). -834 * -835 * @param dependency the dependency being analyzed -836 * @return an list of fully qualified class names -837 */ -838 private ArrayList<ClassNameInformation> collectClassNames(Dependency dependency) { -839 final ArrayList<ClassNameInformation> classNames = new ArrayList<ClassNameInformation>(); -840 JarFile jar = null; -841 try { -842 jar = new JarFile(dependency.getActualFilePath()); -843 final Enumeration entries = jar.entries(); -844 while (entries.hasMoreElements()) { -845 final JarEntry entry = (JarEntry) entries.nextElement(); -846 final String name = entry.getName().toLowerCase(); -847 //no longer stripping "|com\\.sun" - there are some com.sun jar files with CVEs. -848 if (name.endsWith(".class") && !name.matches("^javax?\\..*$")) { -849 final ClassNameInformation className = new ClassNameInformation(name.substring(0, name.length() - 6)); -850 classNames.add(className); -851 } -852 } -853 } catch (IOException ex) { -854 final String msg = String.format("Unable to open jar file '%s'.", dependency.getFileName()); -855 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.WARNING, msg); -856 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINE, null, ex); -857 } finally { -858 if (jar != null) { -859 try { -860 jar.close(); -861 } catch (IOException ex) { -862 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINEST, null, ex); -863 } -864 } -865 } -866 return classNames; -867 } -868 -869 /** -870 * Cycles through the list of class names and places the package levels 0-3 -871 * into the provided maps for vendor and product. This is helpful when -872 * analyzing vendor/product as many times this is included in the package -873 * name. -874 * -875 * @param classNames a list of class names -876 * @param vendor HashMap of possible vendor names from package names (e.g. -877 * owasp) -878 * @param product HashMap of possible product names from package names (e.g. -879 * dependencycheck) -880 */ -881 private void analyzeFullyQualifiedClassNames(ArrayList<ClassNameInformation> classNames, -882 HashMap<String, Integer> vendor, HashMap<String, Integer> product) { -883 for (ClassNameInformation entry : classNames) { -884 final ArrayList<String> list = entry.getPackageStructure(); -885 addEntry(vendor, list.get(0)); -886 -887 if (list.size() == 2) { -888 addEntry(product, list.get(1)); -889 } -890 if (list.size() == 3) { -891 addEntry(vendor, list.get(1)); -892 addEntry(product, list.get(1)); -893 addEntry(product, list.get(2)); -894 } -895 if (list.size() >= 4) { -896 addEntry(vendor, list.get(1)); -897 addEntry(vendor, list.get(2)); -898 addEntry(product, list.get(1)); -899 addEntry(product, list.get(2)); -900 addEntry(product, list.get(3)); -901 } -902 } -903 } -904 -905 /** -906 * Adds an entry to the specified collection and sets the Integer (e.g. the -907 * count) to 1. If the entry already exists in the collection then the -908 * Integer is incremented by 1. -909 * -910 * @param collection a collection of strings and their occurrence count -911 * @param key the key to add to the collection -912 */ -913 private void addEntry(HashMap<String, Integer> collection, String key) { -914 if (collection.containsKey(key)) { -915 collection.put(key, collection.get(key) + 1); -916 } else { -917 collection.put(key, 1); -918 } -919 } -920 -921 /** -922 * Cycles through the collection of class name information to see if parts -923 * of the package names are contained in the provided value. If found, it -924 * will be added as the HIGHEST confidence evidence because we have more -925 * then one source corroborating the value. -926 * -927 * @param classes a collection of class name information -928 * @param value the value to check to see if it contains a package name -929 * @param evidence the evidence collection to add new entries too -930 */ -931 private void addMatchingValues(ArrayList<ClassNameInformation> classes, String value, EvidenceCollection evidence) { -932 if (value == null || value.isEmpty()) { -933 return; -934 } -935 final String text = value.toLowerCase(); -936 for (ClassNameInformation cni : classes) { -937 for (String key : cni.getPackageStructure()) { -938 if (text.contains(key)) { //note, package structure elements are already lowercase. -939 evidence.addEvidence("jar", "package name", key, Evidence.Confidence.HIGHEST); -940 } -941 } -942 } -943 } -944 -945 /** -946 * <p><b>This is currently a failed implementation.</b> Part of the issue is -947 * I was trying to solve the wrong problem. Instead of multiple POMs being -948 * in the JAR to just add information about dependencies - I didn't realize -949 * until later that I was looking at an uber-jar (aka fat-jar) that included -950 * all of its dependencies.</p> -951 * <p>I'm leaving this method in the source tree, entirely commented out -952 * until a solution https://github.com/jeremylong/DependencyCheck/issues/11 -953 * has been implemented.</p> -954 * <p>Takes a list of pom entries from a JAR file and attempts to filter it -955 * down to the pom related to the jar (rather then the pom entry for a -956 * dependency).</p> -957 * -958 * @param pomEntries a list of pom entries -959 * @param classes a list of fully qualified classes from the JAR file -960 * @return the list of pom entries that are associated with the jar being -961 * analyzed rather then the dependent poms -962 */ -963 private List<String> filterPomEntries(List<String> pomEntries, ArrayList<ClassNameInformation> classes) { -964 return pomEntries; -965 // final HashMap<String, Integer> usePoms = new HashMap<String, Integer>(); -966 // final ArrayList<String> possiblePoms = new ArrayList<String>(); -967 // for (String entry : pomEntries) { -968 // //todo validate that the starts with is correct... or does it start with a ./ or /? -969 // // is it different on different platforms? -970 // if (entry.startsWith("META-INF/maven/")) { -971 // //trim the meta-inf/maven and pom.xml... -972 // final String pomPath = entry.substring(15, entry.length() - 8).toLowerCase(); -973 // final String[] parts = pomPath.split("/"); -974 // if (parts == null || parts.length != 2) { //misplaced pom? -975 // //TODO add logging to FINE -976 // possiblePoms.add(entry); -977 // } -978 // parts[0] = parts[0].replace('.', '/'); -979 // parts[1] = parts[1].replace('.', '/'); -980 // for (ClassNameInformation cni : classes) { -981 // final String name = cni.getName(); -982 // if (StringUtils.containsIgnoreCase(name, parts[0])) { -983 // addEntry(usePoms, entry); -984 // } -985 // if (StringUtils.containsIgnoreCase(name, parts[1])) { -986 // addEntry(usePoms, entry); -987 // } -988 // } -989 // } else { // we have a JAR file with an incorrect POM layout... -990 // //TODO add logging to FINE -991 // possiblePoms.add(entry); -992 // } -993 // } -994 // List<String> retValue; -995 // if (usePoms.isEmpty()) { -996 // if (possiblePoms.isEmpty()) { -997 // retValue = pomEntries; -998 // } else { -999 // retValue = possiblePoms; -1000 // } -1001 // } else { -1002 // retValue = new ArrayList<String>(); -1003 // int maxCount = 0; -1004 // for (Map.Entry<String, Integer> entry : usePoms.entrySet()) { -1005 // final int current = entry.getValue().intValue(); -1006 // if (current > maxCount) { -1007 // maxCount = current; -1008 // retValue.clear(); -1009 // retValue.add(entry.getKey()); -1010 // } else if (current == maxCount) { -1011 // retValue.add(entry.getKey()); -1012 // } -1013 // } -1014 // } -1015 // return retValue; -1016 } -1017 -1018 /** -1019 * Simple check to see if the attribute from a manifest is just a package -1020 * name. -1021 * -1022 * @param key the key of the value to check -1023 * @param value the value to check -1024 * @return true if the value looks like a java package name, otherwise false -1025 */ -1026 private boolean isPackage(String key, String value) { -1027 -1028 return !key.matches(".*(version|title|vendor|name|license|description).*") -1029 && value.matches("^([a-zA-Z_][a-zA-Z0-9_\\$]*(\\.[a-zA-Z_][a-zA-Z0-9_\\$]*)*)?$"); -1030 } -1031 -1032 /** -1033 * Stores information about a class name. +801 final int pos = text.indexOf("${"); +802 if (pos < 0) { +803 return text; +804 } +805 final int end = text.indexOf("}"); +806 if (end < pos) { +807 return text; +808 } +809 +810 final String propName = text.substring(pos + 2, end); +811 String propValue = interpolateString(props.getProperty(propName), props); +812 if (propValue == null) { +813 propValue = ""; +814 } +815 final StringBuilder sb = new StringBuilder(propValue.length() + text.length()); +816 sb.append(text.subSequence(0, pos)); +817 sb.append(propValue); +818 sb.append(text.substring(end + 1)); +819 return interpolateString(sb.toString(), props); //yes yes, this should be a loop... +820 } +821 +822 /** +823 * Determines if the key value pair from the manifest is for an "import" +824 * type entry for package names. +825 * +826 * @param key the key from the manifest +827 * @param value the value from the manifest +828 * @return true or false depending on if it is believed the entry is an +829 * "import" entry +830 */ +831 private boolean isImportPackage(String key, String value) { +832 final Pattern packageRx = Pattern.compile("^((([a-zA-Z_#\\$0-9]\\.)+)\\s*\\;\\s*)+$"); +833 if (packageRx.matcher(value).matches()) { +834 return (key.contains("import") || key.contains("include")); +835 } +836 return false; +837 } +838 +839 /** +840 * Cycles through an enumeration of JarEntries, contained within the +841 * dependency, and returns a list of the class names. This does not include +842 * core Java package names (i.e. java.* or javax.*). +843 * +844 * @param dependency the dependency being analyzed +845 * @return an list of fully qualified class names +846 */ +847 private ArrayList<ClassNameInformation> collectClassNames(Dependency dependency) { +848 final ArrayList<ClassNameInformation> classNames = new ArrayList<ClassNameInformation>(); +849 JarFile jar = null; +850 try { +851 jar = new JarFile(dependency.getActualFilePath()); +852 final Enumeration entries = jar.entries(); +853 while (entries.hasMoreElements()) { +854 final JarEntry entry = (JarEntry) entries.nextElement(); +855 final String name = entry.getName().toLowerCase(); +856 //no longer stripping "|com\\.sun" - there are some com.sun jar files with CVEs. +857 if (name.endsWith(".class") && !name.matches("^javax?\\..*$")) { +858 final ClassNameInformation className = new ClassNameInformation(name.substring(0, name.length() - 6)); +859 classNames.add(className); +860 } +861 } +862 } catch (IOException ex) { +863 final String msg = String.format("Unable to open jar file '%s'.", dependency.getFileName()); +864 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.WARNING, msg); +865 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINE, null, ex); +866 } finally { +867 if (jar != null) { +868 try { +869 jar.close(); +870 } catch (IOException ex) { +871 Logger.getLogger(JarAnalyzer.class.getName()).log(Level.FINEST, null, ex); +872 } +873 } +874 } +875 return classNames; +876 } +877 +878 /** +879 * Cycles through the list of class names and places the package levels 0-3 +880 * into the provided maps for vendor and product. This is helpful when +881 * analyzing vendor/product as many times this is included in the package +882 * name. +883 * +884 * @param classNames a list of class names +885 * @param vendor HashMap of possible vendor names from package names (e.g. +886 * owasp) +887 * @param product HashMap of possible product names from package names (e.g. +888 * dependencycheck) +889 */ +890 private void analyzeFullyQualifiedClassNames(ArrayList<ClassNameInformation> classNames, +891 HashMap<String, Integer> vendor, HashMap<String, Integer> product) { +892 for (ClassNameInformation entry : classNames) { +893 final ArrayList<String> list = entry.getPackageStructure(); +894 addEntry(vendor, list.get(0)); +895 +896 if (list.size() == 2) { +897 addEntry(product, list.get(1)); +898 } +899 if (list.size() == 3) { +900 addEntry(vendor, list.get(1)); +901 addEntry(product, list.get(1)); +902 addEntry(product, list.get(2)); +903 } +904 if (list.size() >= 4) { +905 addEntry(vendor, list.get(1)); +906 addEntry(vendor, list.get(2)); +907 addEntry(product, list.get(1)); +908 addEntry(product, list.get(2)); +909 addEntry(product, list.get(3)); +910 } +911 } +912 } +913 +914 /** +915 * Adds an entry to the specified collection and sets the Integer (e.g. the +916 * count) to 1. If the entry already exists in the collection then the +917 * Integer is incremented by 1. +918 * +919 * @param collection a collection of strings and their occurrence count +920 * @param key the key to add to the collection +921 */ +922 private void addEntry(HashMap<String, Integer> collection, String key) { +923 if (collection.containsKey(key)) { +924 collection.put(key, collection.get(key) + 1); +925 } else { +926 collection.put(key, 1); +927 } +928 } +929 +930 /** +931 * Cycles through the collection of class name information to see if parts +932 * of the package names are contained in the provided value. If found, it +933 * will be added as the HIGHEST confidence evidence because we have more +934 * then one source corroborating the value. +935 * +936 * @param classes a collection of class name information +937 * @param value the value to check to see if it contains a package name +938 * @param evidence the evidence collection to add new entries too +939 */ +940 private void addMatchingValues(ArrayList<ClassNameInformation> classes, String value, EvidenceCollection evidence) { +941 if (value == null || value.isEmpty()) { +942 return; +943 } +944 final String text = value.toLowerCase(); +945 for (ClassNameInformation cni : classes) { +946 for (String key : cni.getPackageStructure()) { +947 if (text.contains(key)) { //note, package structure elements are already lowercase. +948 evidence.addEvidence("jar", "package name", key, Evidence.Confidence.HIGHEST); +949 } +950 } +951 } +952 } +953 +954 /** +955 * <p><b>This is currently a failed implementation.</b> Part of the issue is +956 * I was trying to solve the wrong problem. Instead of multiple POMs being +957 * in the JAR to just add information about dependencies - I didn't realize +958 * until later that I was looking at an uber-jar (aka fat-jar) that included +959 * all of its dependencies.</p> +960 * <p>I'm leaving this method in the source tree, entirely commented out +961 * until a solution https://github.com/jeremylong/DependencyCheck/issues/11 +962 * has been implemented.</p> +963 * <p>Takes a list of pom entries from a JAR file and attempts to filter it +964 * down to the pom related to the jar (rather then the pom entry for a +965 * dependency).</p> +966 * +967 * @param pomEntries a list of pom entries +968 * @param classes a list of fully qualified classes from the JAR file +969 * @return the list of pom entries that are associated with the jar being +970 * analyzed rather then the dependent poms +971 */ +972 private List<String> filterPomEntries(List<String> pomEntries, ArrayList<ClassNameInformation> classes) { +973 return pomEntries; +974 // final HashMap<String, Integer> usePoms = new HashMap<String, Integer>(); +975 // final ArrayList<String> possiblePoms = new ArrayList<String>(); +976 // for (String entry : pomEntries) { +977 // //todo validate that the starts with is correct... or does it start with a ./ or /? +978 // // is it different on different platforms? +979 // if (entry.startsWith("META-INF/maven/")) { +980 // //trim the meta-inf/maven and pom.xml... +981 // final String pomPath = entry.substring(15, entry.length() - 8).toLowerCase(); +982 // final String[] parts = pomPath.split("/"); +983 // if (parts == null || parts.length != 2) { //misplaced pom? +984 // //TODO add logging to FINE +985 // possiblePoms.add(entry); +986 // } +987 // parts[0] = parts[0].replace('.', '/'); +988 // parts[1] = parts[1].replace('.', '/'); +989 // for (ClassNameInformation cni : classes) { +990 // final String name = cni.getName(); +991 // if (StringUtils.containsIgnoreCase(name, parts[0])) { +992 // addEntry(usePoms, entry); +993 // } +994 // if (StringUtils.containsIgnoreCase(name, parts[1])) { +995 // addEntry(usePoms, entry); +996 // } +997 // } +998 // } else { // we have a JAR file with an incorrect POM layout... +999 // //TODO add logging to FINE +1000 // possiblePoms.add(entry); +1001 // } +1002 // } +1003 // List<String> retValue; +1004 // if (usePoms.isEmpty()) { +1005 // if (possiblePoms.isEmpty()) { +1006 // retValue = pomEntries; +1007 // } else { +1008 // retValue = possiblePoms; +1009 // } +1010 // } else { +1011 // retValue = new ArrayList<String>(); +1012 // int maxCount = 0; +1013 // for (Map.Entry<String, Integer> entry : usePoms.entrySet()) { +1014 // final int current = entry.getValue().intValue(); +1015 // if (current > maxCount) { +1016 // maxCount = current; +1017 // retValue.clear(); +1018 // retValue.add(entry.getKey()); +1019 // } else if (current == maxCount) { +1020 // retValue.add(entry.getKey()); +1021 // } +1022 // } +1023 // } +1024 // return retValue; +1025 } +1026 +1027 /** +1028 * Simple check to see if the attribute from a manifest is just a package +1029 * name. +1030 * +1031 * @param key the key of the value to check +1032 * @param value the value to check +1033 * @return true if the value looks like a java package name, otherwise false 1034 */ -1035 protected static class ClassNameInformation { +1035 private boolean isPackage(String key, String value) { 1036 -1037 /** -1038 * Stores information about a given class name. This class will keep the -1039 * fully qualified class name and a list of the important parts of the -1040 * package structure. Up to the first four levels of the package -1041 * structure are stored, excluding a leading "org" or "com". Example: -1042 * <code>ClassNameInformation obj = new ClassNameInformation("org.owasp.dependencycheck.analyzer.JarAnalyzer"); -1043 * System.out.println(obj.getName()); -1044 * for (String p : obj.getPackageStructure()) -1045 * System.out.println(p); -1046 * </code> Would result in: -1047 * <code>org.owasp.dependencycheck.analyzer.JarAnalyzer -1048 * owasp -1049 * dependencycheck -1050 * analyzer -1051 * jaranalyzer</code> -1052 * -1053 * @param className a fully qualified class name -1054 */ -1055 ClassNameInformation(String className) { -1056 name = className; -1057 if (name.contains("/")) { -1058 final String[] tmp = className.toLowerCase().split("/"); -1059 int start = 0; -1060 int end = 3; -1061 if ("com".equals(tmp[0]) || "org".equals(tmp[0])) { -1062 start = 1; -1063 end = 4; -1064 } -1065 if (tmp.length <= end) { -1066 end = tmp.length - 1; -1067 } -1068 for (int i = start; i <= end; i++) { -1069 packageStructure.add(tmp[i]); -1070 } -1071 } else { -1072 packageStructure.add(name); -1073 } -1074 } -1075 /** -1076 * The fully qualified class name. -1077 */ -1078 private String name; -1079 -1080 /** -1081 * Get the value of name -1082 * -1083 * @return the value of name -1084 */ -1085 public String getName() { -1086 return name; -1087 } +1037 return !key.matches(".*(version|title|vendor|name|license|description).*") +1038 && value.matches("^([a-zA-Z_][a-zA-Z0-9_\\$]*(\\.[a-zA-Z_][a-zA-Z0-9_\\$]*)*)?$"); +1039 } +1040 +1041 /** +1042 * Stores information about a class name. +1043 */ +1044 protected static class ClassNameInformation { +1045 +1046 /** +1047 * Stores information about a given class name. This class will keep the +1048 * fully qualified class name and a list of the important parts of the +1049 * package structure. Up to the first four levels of the package +1050 * structure are stored, excluding a leading "org" or "com". Example: +1051 * <code>ClassNameInformation obj = new ClassNameInformation("org.owasp.dependencycheck.analyzer.JarAnalyzer"); +1052 * System.out.println(obj.getName()); +1053 * for (String p : obj.getPackageStructure()) +1054 * System.out.println(p); +1055 * </code> Would result in: +1056 * <code>org.owasp.dependencycheck.analyzer.JarAnalyzer +1057 * owasp +1058 * dependencycheck +1059 * analyzer +1060 * jaranalyzer</code> +1061 * +1062 * @param className a fully qualified class name +1063 */ +1064 ClassNameInformation(String className) { +1065 name = className; +1066 if (name.contains("/")) { +1067 final String[] tmp = className.toLowerCase().split("/"); +1068 int start = 0; +1069 int end = 3; +1070 if ("com".equals(tmp[0]) || "org".equals(tmp[0])) { +1071 start = 1; +1072 end = 4; +1073 } +1074 if (tmp.length <= end) { +1075 end = tmp.length - 1; +1076 } +1077 for (int i = start; i <= end; i++) { +1078 packageStructure.add(tmp[i]); +1079 } +1080 } else { +1081 packageStructure.add(name); +1082 } +1083 } +1084 /** +1085 * The fully qualified class name. +1086 */ +1087 private String name; 1088 1089 /** -1090 * Set the value of name +1090 * Get the value of name 1091 * -1092 * @param name new value of name +1092 * @return the value of name 1093 */ -1094 public void setName(String name) { -1095 this.name = name; +1094 public String getName() { +1095 return name; 1096 } -1097 /** -1098 * Up to the first four levels of the package structure, excluding a -1099 * leading "org" or "com". -1100 */ -1101 private ArrayList<String> packageStructure = new ArrayList<String>(); -1102 -1103 /** -1104 * Get the value of packageStructure -1105 * -1106 * @return the value of packageStructure -1107 */ -1108 public ArrayList<String> getPackageStructure() { -1109 return packageStructure; -1110 } -1111 } -1112 } +1097 +1098 /** +1099 * Set the value of name +1100 * +1101 * @param name new value of name +1102 */ +1103 public void setName(String name) { +1104 this.name = name; +1105 } +1106 /** +1107 * Up to the first four levels of the package structure, excluding a +1108 * leading "org" or "com". +1109 */ +1110 private ArrayList<String> packageStructure = new ArrayList<String>(); +1111 +1112 /** +1113 * Get the value of packageStructure +1114 * +1115 * @return the value of packageStructure +1116 */ +1117 public ArrayList<String> getPackageStructure() { +1118 return packageStructure; +1119 } +1120 } +1121 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html index 4a323dc5e..e4928d6c7 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html index c80f82d87..703dee7f8 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-frame.html index 93dcce729..7d0677f23 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.concurrency + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.concurrency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-summary.html index 87866e4cb..136a97bc2 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.concurrency + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.concurrency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/CPEAnalyzer.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/CPEAnalyzer.html deleted file mode 100644 index 435adf574..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/CPEAnalyzer.html +++ /dev/null @@ -1,808 +0,0 @@ - - - - -CPEAnalyzer xref - - - -
    -
    -1   /*
    -2    * This file is part of dependency-check-core.
    -3    *
    -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    -5    * under the terms of the GNU General Public License as published by the Free
    -6    * Software Foundation, either version 3 of the License, or (at your option) any
    -7    * later version.
    -8    *
    -9    * Dependency-check-core is distributed in the hope that it will be useful, but
    -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    -12   * details.
    -13   *
    -14   * You should have received a copy of the GNU General Public License along with
    -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    -16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    -18   */
    -19  package org.owasp.dependencycheck.data.cpe;
    -20  
    -21  import java.io.IOException;
    -22  import java.io.UnsupportedEncodingException;
    -23  import java.net.URLEncoder;
    -24  import java.sql.SQLException;
    -25  import java.util.ArrayList;
    -26  import java.util.Collections;
    -27  import java.util.List;
    -28  import java.util.Set;
    -29  import java.util.StringTokenizer;
    -30  import java.util.logging.Level;
    -31  import java.util.logging.Logger;
    -32  import org.apache.lucene.document.Document;
    -33  import org.apache.lucene.index.CorruptIndexException;
    -34  import org.apache.lucene.queryparser.classic.ParseException;
    -35  import org.apache.lucene.search.ScoreDoc;
    -36  import org.apache.lucene.search.TopDocs;
    -37  import org.owasp.dependencycheck.Engine;
    -38  import org.owasp.dependencycheck.analyzer.AnalysisException;
    -39  import org.owasp.dependencycheck.analyzer.AnalysisPhase;
    -40  import org.owasp.dependencycheck.data.lucene.LuceneUtils;
    -41  import org.owasp.dependencycheck.dependency.Dependency;
    -42  import org.owasp.dependencycheck.dependency.Evidence;
    -43  import org.owasp.dependencycheck.dependency.Evidence.Confidence;
    -44  import org.owasp.dependencycheck.dependency.EvidenceCollection;
    -45  import org.owasp.dependencycheck.analyzer.Analyzer;
    -46  import org.owasp.dependencycheck.data.nvdcve.CveDB;
    -47  import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
    -48  import org.owasp.dependencycheck.dependency.Identifier;
    -49  import org.owasp.dependencycheck.dependency.VulnerableSoftware;
    -50  import org.owasp.dependencycheck.utils.DependencyVersion;
    -51  import org.owasp.dependencycheck.utils.DependencyVersionUtil;
    -52  
    -53  /**
    -54   * CPEAnalyzer is a utility class that takes a project dependency and attempts
    -55   * to discern if there is an associated CPE. It uses the evidence contained
    -56   * within the dependency to search the Lucene index.
    -57   *
    -58   * @author Jeremy Long (jeremy.long@owasp.org)
    -59   */
    -60  public class CPEAnalyzer implements Analyzer {
    -61  
    -62      /**
    -63       * The maximum number of query results to return.
    -64       */
    -65      static final int MAX_QUERY_RESULTS = 25;
    -66      /**
    -67       * The weighting boost to give terms when constructing the Lucene query.
    -68       */
    -69      static final String WEIGHTING_BOOST = "^5";
    -70      /**
    -71       * A string representation of a regular expression defining characters
    -72       * utilized within the CPE Names.
    -73       */
    -74      static final String CLEANSE_CHARACTER_RX = "[^A-Za-z0-9 ._-]";
    -75      /**
    -76       * A string representation of a regular expression used to remove all but
    -77       * alpha characters.
    -78       */
    -79      static final String CLEANSE_NONALPHA_RX = "[^A-Za-z]*";
    -80      /**
    -81       * The additional size to add to a new StringBuilder to account for extra
    -82       * data that will be written into the string.
    -83       */
    -84      static final int STRING_BUILDER_BUFFER = 20;
    -85      /**
    -86       * The CPE Index.
    -87       */
    -88      private Index cpe;
    -89      /**
    -90       * The CVE Database.
    -91       */
    -92      private CveDB cve;
    -93  
    -94      /**
    -95       * Opens the data source.
    -96       *
    -97       * @throws IOException when the Lucene directory to be queried does not
    -98       * exist or is corrupt.
    -99       * @throws DatabaseException when the database throws an exception. This
    -100      * usually occurs when the database is in use by another process.
    -101      */
    -102     public void open() throws IOException, DatabaseException {
    -103         cpe = new Index();
    -104         cpe.open();
    -105         cve = new CveDB();
    -106         try {
    -107             cve.open();
    -108         } catch (SQLException ex) {
    -109             Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex);
    -110             throw new DatabaseException("Unable to open the cve db", ex);
    -111         } catch (ClassNotFoundException ex) {
    -112             Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex);
    -113             throw new DatabaseException("Unable to open the cve db", ex);
    -114         }
    -115     }
    -116 
    -117     /**
    -118      * Closes the data source.
    -119      */
    -120     @Override
    -121     public void close() {
    -122         cpe.close();
    -123         cve.close();
    -124     }
    -125 
    -126     /**
    -127      * Returns the status of the data source - is the index open.
    -128      *
    -129      * @return true or false.
    -130      */
    -131     public boolean isOpen() {
    -132         return (cpe != null) && cpe.isOpen();
    -133     }
    -134 
    -135     /**
    -136      * Ensures that the Lucene index is closed.
    -137      *
    -138      * @throws Throwable when a throwable is thrown.
    -139      */
    -140     @Override
    -141     protected void finalize() throws Throwable {
    -142         super.finalize();
    -143         if (isOpen()) {
    -144             close();
    -145         }
    -146     }
    -147 
    -148     /**
    -149      * Searches the data store of CPE entries, trying to identify the CPE for
    -150      * the given dependency based on the evidence contained within. The
    -151      * dependency passed in is updated with any identified CPE values.
    -152      *
    -153      * @param dependency the dependency to search for CPE entries on.
    -154      * @throws CorruptIndexException is thrown when the Lucene index is corrupt.
    -155      * @throws IOException is thrown when an IOException occurs.
    -156      * @throws ParseException is thrown when the Lucene query cannot be parsed.
    -157      */
    -158     protected void determineCPE(Dependency dependency) throws CorruptIndexException, IOException, ParseException {
    -159         Confidence vendorConf = Confidence.HIGHEST;
    -160         Confidence productConf = Confidence.HIGHEST;
    -161 
    -162         String vendors = addEvidenceWithoutDuplicateTerms("", dependency.getVendorEvidence(), vendorConf);
    -163         String products = addEvidenceWithoutDuplicateTerms("", dependency.getProductEvidence(), productConf);
    -164 
    -165         //boolean found = false;
    -166         int ctr = 0;
    -167         do {
    -168             if (!vendors.isEmpty() && !products.isEmpty()) {
    -169                 final List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(),
    -170                         dependency.getVendorEvidence().getWeighting());
    -171 
    -172                 for (IndexEntry e : entries) {
    -173                     if (verifyEntry(e, dependency)) {
    -174                         //found = true; // we found a vendor/product pair. Now find version from the cve db.
    -175                         final String vendor = e.getVendor();
    -176                         final String product = e.getProduct();
    -177                         // cve.getVersions(vendor, product);
    -178                         determineIdentifiers(dependency, vendor, product);
    -179                     }
    -180                 }
    -181             }
    -182             //if (!found) {
    -183             vendorConf = reduceConfidence(vendorConf);
    -184             if (dependency.getVendorEvidence().contains(vendorConf)) {
    -185                 //vendors += " " + dependency.getVendorEvidence().toString(vendorConf);
    -186                 vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf);
    -187             }
    -188             productConf = reduceConfidence(productConf);
    -189             if (dependency.getProductEvidence().contains(productConf)) {
    -190                 //products += " " + dependency.getProductEvidence().toString(productConf);
    -191                 products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf);
    -192             }
    -193             //}
    -194             //} while (!found && (++ctr) < 4);
    -195         } while ((++ctr) < 4);
    -196     }
    -197 
    -198     /**
    -199      * Returns the text created by concatenating the text and the values from
    -200      * the EvidenceCollection (filtered for a specific confidence). This
    -201      * attempts to prevent duplicate terms from being added.<br/<br/> Note, if
    -202      * the evidence is longer then 200 characters it will be truncated.
    -203      *
    -204      * @param text the base text.
    -205      * @param ec an EvidenceCollection
    -206      * @param confidenceFilter a Confidence level to filter the evidence by.
    -207      * @return the new evidence text
    -208      */
    -209     private String addEvidenceWithoutDuplicateTerms(final String text, final EvidenceCollection ec, Confidence confidenceFilter) {
    -210         final String txt = (text == null) ? "" : text;
    -211         final StringBuilder sb = new StringBuilder(txt.length() + (20 * ec.size()));
    -212         sb.append(' ').append(txt).append(' ');
    -213         for (Evidence e : ec.iterator(confidenceFilter)) {
    -214             String value = e.getValue();
    -215 
    -216             //hack to get around the fact that lucene does a really good job of recognizing domains and not
    -217             // splitting them. TODO - put together a better lucene analyzer specific to the domain.
    -218             if (value.startsWith("http://")) {
    -219                 value = value.substring(7).replaceAll("\\.", " ");
    -220             }
    -221             if (value.startsWith("https://")) {
    -222                 value = value.substring(8).replaceAll("\\.", " ");
    -223             }
    -224             if (sb.indexOf(" " + value + " ") < 0) {
    -225                 sb.append(value).append(' ');
    -226             }
    -227         }
    -228         return sb.toString().trim();
    -229     }
    -230 
    -231     /**
    -232      * Reduces the given confidence by one level. This returns LOW if the
    -233      * confidence passed in is not HIGH.
    -234      *
    -235      * @param c the confidence to reduce.
    -236      * @return One less then the confidence passed in.
    -237      */
    -238     private Confidence reduceConfidence(final Confidence c) {
    -239         if (c == Confidence.HIGHEST) {
    -240             return Confidence.HIGH;
    -241         } else if (c == Confidence.HIGH) {
    -242             return Confidence.MEDIUM;
    -243         } else {
    -244             return Confidence.LOW;
    -245         }
    -246     }
    -247 
    -248     /**
    -249      * <p>Searches the Lucene CPE index to identify possible CPE entries
    -250      * associated with the supplied vendor, product, and version.</p>
    -251      *
    -252      * <p>If either the vendorWeightings or productWeightings lists have been
    -253      * populated this data is used to add weighting factors to the search.</p>
    -254      *
    -255      * @param vendor the text used to search the vendor field
    -256      * @param product the text used to search the product field
    -257      * @param vendorWeightings a list of strings to use to add weighting factors
    -258      * to the vendor field
    -259      * @param productWeightings Adds a list of strings that will be used to add
    -260      * weighting factors to the product search
    -261      * @return a list of possible CPE values
    -262      * @throws CorruptIndexException when the Lucene index is corrupt
    -263      * @throws IOException when the Lucene index is not found
    -264      * @throws ParseException when the generated query is not valid
    -265      */
    -266     protected List<IndexEntry> searchCPE(String vendor, String product,
    -267             Set<String> vendorWeightings, Set<String> productWeightings)
    -268             throws CorruptIndexException, IOException, ParseException {
    -269         final ArrayList<IndexEntry> ret = new ArrayList<IndexEntry>(MAX_QUERY_RESULTS);
    -270 
    -271         final String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings);
    -272         if (searchString == null) {
    -273             return ret;
    -274         }
    -275 
    -276         final TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS);
    -277         for (ScoreDoc d : docs.scoreDocs) {
    -278             final Document doc = cpe.getDocument(d.doc);
    -279             final IndexEntry entry = new IndexEntry();
    -280             entry.setVendor(doc.get(Fields.VENDOR));
    -281             entry.setProduct(doc.get(Fields.PRODUCT));
    -282             entry.setSearchScore(d.score);
    -283             if (!ret.contains(entry)) {
    -284                 ret.add(entry);
    -285             }
    -286         }
    -287         return ret;
    -288     }
    -289 
    -290     /**
    -291      * <p>Builds a Lucene search string by properly escaping data and
    -292      * constructing a valid search query.</p>
    -293      *
    -294      * <p>If either the possibleVendor or possibleProducts lists have been
    -295      * populated this data is used to add weighting factors to the search string
    -296      * generated.</p>
    -297      *
    -298      * @param vendor text to search the vendor field
    -299      * @param product text to search the product field
    -300      * @param vendorWeighting a list of strings to apply to the vendor to boost
    -301      * the terms weight
    -302      * @param productWeightings a list of strings to apply to the product to
    -303      * boost the terms weight
    -304      * @return the Lucene query
    -305      */
    -306     protected String buildSearch(String vendor, String product,
    -307             Set<String> vendorWeighting, Set<String> productWeightings) {
    -308         final String v = vendor; //.replaceAll("[^\\w\\d]", " ");
    -309         final String p = product; //.replaceAll("[^\\w\\d]", " ");
    -310         final StringBuilder sb = new StringBuilder(v.length() + p.length()
    -311                 + Fields.PRODUCT.length() + Fields.VENDOR.length() + STRING_BUILDER_BUFFER);
    -312 
    -313         if (!appendWeightedSearch(sb, Fields.PRODUCT, p, productWeightings)) {
    -314             return null;
    -315         }
    -316         sb.append(" AND ");
    -317         if (!appendWeightedSearch(sb, Fields.VENDOR, v, vendorWeighting)) {
    -318             return null;
    -319         }
    -320         return sb.toString();
    -321     }
    -322 
    -323     /**
    -324      * This method constructs a Lucene query for a given field. The searchText
    -325      * is split into separate words and if the word is within the list of
    -326      * weighted words then an additional weighting is applied to the term as it
    -327      * is appended into the query.
    -328      *
    -329      * @param sb a StringBuilder that the query text will be appended to.
    -330      * @param field the field within the Lucene index that the query is
    -331      * searching.
    -332      * @param searchText text used to construct the query.
    -333      * @param weightedText a list of terms that will be considered higher
    -334      * importance when searching.
    -335      * @return if the append was successful.
    -336      */
    -337     private boolean appendWeightedSearch(StringBuilder sb, String field, String searchText, Set<String> weightedText) {
    -338         sb.append(" ").append(field).append(":( ");
    -339 
    -340         final String cleanText = cleanseText(searchText);
    -341 
    -342         if ("".equals(cleanText)) {
    -343             return false;
    -344         }
    -345 
    -346         if (weightedText == null || weightedText.isEmpty()) {
    -347             LuceneUtils.appendEscapedLuceneQuery(sb, cleanText);
    -348         } else {
    -349             final StringTokenizer tokens = new StringTokenizer(cleanText);
    -350             while (tokens.hasMoreElements()) {
    -351                 final String word = tokens.nextToken();
    -352                 String temp = null;
    -353                 for (String weighted : weightedText) {
    -354                     final String weightedStr = cleanseText(weighted);
    -355                     if (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) {
    -356                         temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST;
    -357                         if (!word.equalsIgnoreCase(weightedStr)) {
    -358                             temp += " " + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST;
    -359                         }
    -360                     }
    -361                 }
    -362                 if (temp == null) {
    -363                     temp = LuceneUtils.escapeLuceneQuery(word);
    -364                 }
    -365                 sb.append(" ").append(temp);
    -366             }
    -367         }
    -368         sb.append(" ) ");
    -369         return true;
    -370     }
    -371 
    -372     /**
    -373      * Removes characters from the input text that are not used within the CPE
    -374      * index.
    -375      *
    -376      * @param text is the text to remove the characters from.
    -377      * @return the text having removed some characters.
    -378      */
    -379     private String cleanseText(String text) {
    -380         return text.replaceAll(CLEANSE_CHARACTER_RX, " ");
    -381     }
    -382 
    -383     /**
    -384      * Compares two strings after lower casing them and removing the non-alpha
    -385      * characters.
    -386      *
    -387      * @param l string one to compare.
    -388      * @param r string two to compare.
    -389      * @return whether or not the two strings are similar.
    -390      */
    -391     private boolean equalsIgnoreCaseAndNonAlpha(String l, String r) {
    -392         if (l == null || r == null) {
    -393             return false;
    -394         }
    -395 
    -396         final String left = l.replaceAll(CLEANSE_NONALPHA_RX, "");
    -397         final String right = r.replaceAll(CLEANSE_NONALPHA_RX, "");
    -398         return left.equalsIgnoreCase(right);
    -399     }
    -400 
    -401     /**
    -402      * Ensures that the CPE Identified matches the dependency. This validates
    -403      * that the product, vendor, and version information for the CPE are
    -404      * contained within the dependencies evidence.
    -405      *
    -406      * @param entry a CPE entry.
    -407      * @param dependency the dependency that the CPE entries could be for.
    -408      * @return whether or not the entry is valid.
    -409      */
    -410     private boolean verifyEntry(final IndexEntry entry, final Dependency dependency) {
    -411         boolean isValid = false;
    -412 
    -413         if (collectionContainsString(dependency.getProductEvidence(), entry.getProduct())
    -414                 && collectionContainsString(dependency.getVendorEvidence(), entry.getVendor())) {
    -415             //&& collectionContainsVersion(dependency.getVersionEvidence(), entry.getVersion())
    -416             isValid = true;
    -417         }
    -418         return isValid;
    -419     }
    -420 
    -421     /**
    -422      * Used to determine if the EvidenceCollection contains a specific string.
    -423      *
    -424      * @param ec an EvidenceCollection
    -425      * @param text the text to search for
    -426      * @return whether or not the EvidenceCollection contains the string
    -427      */
    -428     private boolean collectionContainsString(EvidenceCollection ec, String text) {
    -429 
    -430         //<editor-fold defaultstate="collapsed" desc="This code fold contains an old version of the code, delete once more testing is done">
    -431         //        String[] splitText = text.split("[\\s_-]");
    -432         //
    -433         //        for (String search : splitText) {
    -434         //            //final String search = text.replaceAll("[\\s_-]", "").toLowerCase();
    -435         //            if (ec.containsUsedString(search)) {
    -436         //                return true;
    -437         //            }
    -438         //        }
    -439         //</editor-fold>
    -440 
    -441         //TODO - likely need to change the split... not sure if this will work for CPE with special chars
    -442         final String[] words = text.split("[\\s_-]");
    -443         final List<String> list = new ArrayList<String>();
    -444         String tempWord = null;
    -445         for (String word : words) {
    -446             //single letter words should be concatonated with the next word.
    -447             // so { "m", "core", "sample" } -> { "mcore", "sample" }
    -448             if (tempWord != null) {
    -449                 list.add(tempWord + word);
    -450                 tempWord = null;
    -451             } else if (word.length() <= 2) {
    -452                 tempWord = word;
    -453             } else {
    -454                 list.add(word);
    -455             }
    -456         }
    -457 //        if (tempWord != null) {
    -458 //            //for now ignore any last single letter words...
    -459 //        }
    -460         boolean contains = true;
    -461         for (String word : list) {
    -462             contains &= ec.containsUsedString(word);
    -463         }
    -464         return contains;
    -465     }
    -466 
    -467     /**
    -468      * Analyzes a dependency and attempts to determine if there are any CPE
    -469      * identifiers for this dependency.
    -470      *
    -471      * @param dependency The Dependency to analyze.
    -472      * @param engine The analysis engine
    -473      * @throws AnalysisException is thrown if there is an issue analyzing the
    -474      * dependency.
    -475      */
    -476     @Override
    -477     public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
    -478         try {
    -479             determineCPE(dependency);
    -480         } catch (CorruptIndexException ex) {
    -481             throw new AnalysisException("CPE Index is corrupt.", ex);
    -482         } catch (IOException ex) {
    -483             throw new AnalysisException("Failure opening the CPE Index.", ex);
    -484         } catch (ParseException ex) {
    -485             throw new AnalysisException("Unable to parse the generated Lucene query for this dependency.", ex);
    -486         }
    -487     }
    -488 
    -489     /**
    -490      * Returns true because this analyzer supports all dependency types.
    -491      *
    -492      * @return true.
    -493      */
    -494     @Override
    -495     public Set<String> getSupportedExtensions() {
    -496         return null;
    -497     }
    -498 
    -499     /**
    -500      * Returns the name of this analyzer.
    -501      *
    -502      * @return the name of this analyzer.
    -503      */
    -504     @Override
    -505     public String getName() {
    -506         return "CPE Analyzer";
    -507     }
    -508 
    -509     /**
    -510      * Returns true because this analyzer supports all dependency types.
    -511      *
    -512      * @param extension the file extension of the dependency being analyzed.
    -513      * @return true.
    -514      */
    -515     @Override
    -516     public boolean supportsExtension(String extension) {
    -517         return true;
    -518     }
    -519 
    -520     /**
    -521      * Returns the analysis phase that this analyzer should run in.
    -522      *
    -523      * @return the analysis phase that this analyzer should run in.
    -524      */
    -525     @Override
    -526     public AnalysisPhase getAnalysisPhase() {
    -527         return AnalysisPhase.IDENTIFIER_ANALYSIS;
    -528     }
    -529 
    -530     /**
    -531      * Opens the CPE Lucene Index.
    -532      *
    -533      * @throws Exception is thrown if there is an issue opening the index.
    -534      */
    -535     @Override
    -536     public void initialize() throws Exception {
    -537         this.open();
    -538     }
    -539 
    -540     /**
    -541      * Retrieves a list of CPE values from the CveDB based on the vendor and
    -542      * product passed in. The list is then validated to find only CPEs that are
    -543      * valid for the given dependency. It is possible that the CPE identified is
    -544      * a best effort "guess" based on the vendor, product, and version
    -545      * information.
    -546      *
    -547      * @param dependency the Dependency being analyzed
    -548      * @param vendor the vendor for the CPE being analyzed
    -549      * @param product the product for the CPE being analyzed
    -550      * @throws UnsupportedEncodingException is thrown if UTF-8 is not supported
    -551      */
    -552     private void determineIdentifiers(Dependency dependency, String vendor, String product) throws UnsupportedEncodingException {
    -553         final Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product);
    -554         DependencyVersion bestGuess = new DependencyVersion("-");
    -555         Confidence bestGuessConf = null;
    -556         final List<IdentifierMatch> collected = new ArrayList<IdentifierMatch>();
    -557         for (Confidence conf : Confidence.values()) {
    -558             for (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) {
    -559                 final DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue());
    -560                 if (evVer == null) {
    -561                     continue;
    -562                 }
    -563                 for (VulnerableSoftware vs : cpes) {
    -564                     DependencyVersion dbVer;
    -565                     if (vs.getRevision() != null && !vs.getRevision().isEmpty()) {
    -566                         dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + "." + vs.getRevision());
    -567                     } else {
    -568                         dbVer = DependencyVersionUtil.parseVersion(vs.getVersion());
    -569                     }
    -570                     if (dbVer == null //special case, no version specified - everything is vulnerable
    -571                             || evVer.equals(dbVer)) { //woot exect match
    -572                         final String url = String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(vs.getName(), "UTF-8"));
    -573                         final IdentifierMatch match = new IdentifierMatch("cpe", vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf);
    -574                         collected.add(match);
    -575                     } else {
    -576                         //TODO the following isn't quite right is it? need to think about this guessing game a bit more.
    -577                         if (evVer.getVersionParts().size() <= dbVer.getVersionParts().size()
    -578                                 && evVer.matchesAtLeastThreeLevels(dbVer)) {
    -579                             if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) {
    -580                                 if (bestGuess.getVersionParts().size() < dbVer.getVersionParts().size()) {
    -581                                     bestGuess = dbVer;
    -582                                     bestGuessConf = conf;
    -583                                 }
    -584                             }
    -585                         }
    -586                     }
    -587                 }
    -588                 if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) {
    -589                     if (bestGuess.getVersionParts().size() < evVer.getVersionParts().size()) {
    -590                         bestGuess = evVer;
    -591                         bestGuessConf = conf;
    -592                     }
    -593                 }
    -594             }
    -595         }
    -596         final String cpeName = String.format("cpe:/a:%s:%s:%s", vendor, product, bestGuess.toString());
    -597         final String url = null; //String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8"));
    -598         if (bestGuessConf == null) {
    -599             bestGuessConf = Confidence.LOW;
    -600         }
    -601         final IdentifierMatch match = new IdentifierMatch("cpe", cpeName, url, IdentifierConfidence.BEST_GUESS, bestGuessConf);
    -602         collected.add(match);
    -603 
    -604         Collections.sort(collected);
    -605         final IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence();
    -606         final Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence();
    -607         for (IdentifierMatch m : collected) {
    -608             if (bestIdentifierQuality.equals(m.getConfidence())
    -609                     && bestEvidenceQuality.equals(m.getEvidenceConfidence())) {
    -610                 dependency.addIdentifier(m.getIdentifier());
    -611             }
    -612         }
    -613     }
    -614 
    -615     /**
    -616      * The confidence whether the identifier is an exact match, or a best guess.
    -617      */
    -618     private enum IdentifierConfidence {
    -619 
    -620         /**
    -621          * An exact match for the CPE.
    -622          */
    -623         EXACT_MATCH,
    -624         /**
    -625          * A best guess for the CPE.
    -626          */
    -627         BEST_GUESS
    -628     }
    -629 
    -630     /**
    -631      * A simple object to hold an identifier and carry information about the
    -632      * confidence in the identifier.
    -633      */
    -634     private static class IdentifierMatch implements Comparable<IdentifierMatch> {
    -635 
    -636         /**
    -637          * Constructs an IdentiferMatch.
    -638          *
    -639          * @param type the type of identifier (such as CPE)
    -640          * @param value the value of the identifier
    -641          * @param url the URL of the identifier
    -642          * @param identifierConfidence the confidence in the identifier: best
    -643          * guess or exact match
    -644          * @param evidenceConfidence the confidence of the evidence used to find
    -645          * the identifier
    -646          */
    -647         IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) {
    -648             this.identifier = new Identifier(type, value, url);
    -649             this.confidence = identifierConfidence;
    -650             this.evidenceConfidence = evidenceConfidence;
    -651         }
    -652         //<editor-fold defaultstate="collapsed" desc="Property implementations: evidenceConfidence, confidence, identifier">
    -653         /**
    -654          * The confidence in the evidence used to identify this match.
    -655          */
    -656         private Confidence evidenceConfidence;
    -657 
    -658         /**
    -659          * Get the value of evidenceConfidence
    -660          *
    -661          * @return the value of evidenceConfidence
    -662          */
    -663         public Confidence getEvidenceConfidence() {
    -664             return evidenceConfidence;
    -665         }
    -666 
    -667         /**
    -668          * Set the value of evidenceConfidence
    -669          *
    -670          * @param evidenceConfidence new value of evidenceConfidence
    -671          */
    -672         public void setEvidenceConfidence(Confidence evidenceConfidence) {
    -673             this.evidenceConfidence = evidenceConfidence;
    -674         }
    -675         /**
    -676          * The confidence whether this is an exact match, or a best guess.
    -677          */
    -678         private IdentifierConfidence confidence;
    -679 
    -680         /**
    -681          * Get the value of confidence.
    -682          *
    -683          * @return the value of confidence
    -684          */
    -685         public IdentifierConfidence getConfidence() {
    -686             return confidence;
    -687         }
    -688 
    -689         /**
    -690          * Set the value of confidence.
    -691          *
    -692          * @param confidence new value of confidence
    -693          */
    -694         public void setConfidence(IdentifierConfidence confidence) {
    -695             this.confidence = confidence;
    -696         }
    -697         /**
    -698          * The CPE identifier.
    -699          */
    -700         private Identifier identifier;
    -701 
    -702         /**
    -703          * Get the value of identifier.
    -704          *
    -705          * @return the value of identifier
    -706          */
    -707         public Identifier getIdentifier() {
    -708             return identifier;
    -709         }
    -710 
    -711         /**
    -712          * Set the value of identifier.
    -713          *
    -714          * @param identifier new value of identifier
    -715          */
    -716         public void setIdentifier(Identifier identifier) {
    -717             this.identifier = identifier;
    -718         }
    -719         //</editor-fold>
    -720         //<editor-fold defaultstate="collapsed" desc="Standard implementations of toString, hashCode, and equals">
    -721 
    -722         /**
    -723          * Standard toString() implementation.
    -724          *
    -725          * @return the string representation of the object
    -726          */
    -727         @Override
    -728         public String toString() {
    -729             return "IdentifierMatch{" + "evidenceConfidence=" + evidenceConfidence
    -730                     + ", confidence=" + confidence + ", identifier=" + identifier + '}';
    -731         }
    -732 
    -733         /**
    -734          * Standard hashCode() implementation.
    -735          *
    -736          * @return the hashCode
    -737          */
    -738         @Override
    -739         public int hashCode() {
    -740             int hash = 5;
    -741             hash = 97 * hash + (this.evidenceConfidence != null ? this.evidenceConfidence.hashCode() : 0);
    -742             hash = 97 * hash + (this.confidence != null ? this.confidence.hashCode() : 0);
    -743             hash = 97 * hash + (this.identifier != null ? this.identifier.hashCode() : 0);
    -744             return hash;
    -745         }
    -746 
    -747         /**
    -748          * Standard equals implementation.
    -749          *
    -750          * @param obj the object to compare
    -751          * @return true if the objects are equal, otherwise false
    -752          */
    -753         @Override
    -754         public boolean equals(Object obj) {
    -755             if (obj == null) {
    -756                 return false;
    -757             }
    -758             if (getClass() != obj.getClass()) {
    -759                 return false;
    -760             }
    -761             final IdentifierMatch other = (IdentifierMatch) obj;
    -762             if (this.evidenceConfidence != other.evidenceConfidence) {
    -763                 return false;
    -764             }
    -765             if (this.confidence != other.confidence) {
    -766                 return false;
    -767             }
    -768             if (this.identifier != other.identifier && (this.identifier == null || !this.identifier.equals(other.identifier))) {
    -769                 return false;
    -770             }
    -771             return true;
    -772         }
    -773         //</editor-fold>
    -774 
    -775         /**
    -776          * Standard implementation of compareTo that compares identifier
    -777          * confidence, evidence confidence, and then the identifier.
    -778          *
    -779          * @param o the IdentifierMatch to compare to
    -780          * @return the natural ordering of IdentifierMatch
    -781          */
    -782         @Override
    -783         public int compareTo(IdentifierMatch o) {
    -784             int conf = this.confidence.compareTo(o.confidence);
    -785             if (conf == 0) {
    -786                 conf = this.evidenceConfidence.compareTo(o.evidenceConfidence);
    -787                 if (conf == 0) {
    -788                     conf = identifier.compareTo(o.identifier);
    -789                 }
    -790             }
    -791             return conf;
    -792         }
    -793     }
    -794 }
    -
    -
    - - diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/CpeIndexReader.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/CpeIndexReader.html index 71578c265..c956dbccf 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/CpeIndexReader.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/CpeIndexReader.html @@ -129,64 +129,82 @@ 119 * Index 120 */ 121 public TopDocs search(String searchString, int maxQueryResults) throws ParseException, IOException { -122 final Query query = queryParser.parse(searchString); -123 return indexSearcher.search(query, maxQueryResults); -124 } -125 -126 /** -127 * Searches the index using the given query. -128 * -129 * @param query the query used to search the index -130 * @param maxQueryResults the max number of results to return -131 * @return the TopDocs found be the query -132 * @throws CorruptIndexException thrown if the Index is corrupt -133 * @throws IOException thrown if there is an IOException -134 */ -135 public TopDocs search(Query query, int maxQueryResults) throws CorruptIndexException, IOException { -136 resetSearchingAnalyzer(); -137 return indexSearcher.search(query, maxQueryResults); -138 } -139 -140 /** -141 * Retrieves a document from the Index. -142 * -143 * @param documentId the id of the document to retrieve -144 * @return the Document -145 * @throws IOException thrown if there is an IOException -146 */ -147 public Document getDocument(int documentId) throws IOException { -148 return indexSearcher.doc(documentId); -149 } -150 -151 /** -152 * Creates an Analyzer for searching the CPE Index. -153 * -154 * @return the CPE Analyzer. -155 */ -156 @SuppressWarnings("unchecked") -157 private Analyzer createSearchingAnalyzer() { -158 final Map fieldAnalyzers = new HashMap(); -159 fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer()); -160 productSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43); -161 vendorSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43); -162 fieldAnalyzers.put(Fields.PRODUCT, productSearchFieldAnalyzer); -163 fieldAnalyzers.put(Fields.VENDOR, vendorSearchFieldAnalyzer); -164 -165 return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers); -166 } -167 -168 /** -169 * Resets the searching analyzers -170 */ -171 private void resetSearchingAnalyzer() { -172 if (productSearchFieldAnalyzer != null) { -173 productSearchFieldAnalyzer.clear(); -174 } -175 if (vendorSearchFieldAnalyzer != null) { -176 vendorSearchFieldAnalyzer.clear(); -177 } -178 } -179 } +122 if (searchString == null || searchString.trim().isEmpty()) { +123 throw new ParseException("Query is null or empty"); +124 } +125 if (queryParser == null) { +126 if (isOpen()) { +127 final String msg = String.format("QueryParser is null for query: '%s'. Attempting to reopen index.", +128 searchString); +129 Logger.getLogger(CpeIndexReader.class.getName()).log(Level.WARNING, msg); +130 close(); +131 open(); +132 } else { +133 final String msg = String.format("QueryParser is null, but data source is open, for query: '%s'. Attempting to reopen index.", +134 searchString); +135 Logger.getLogger(CpeIndexReader.class.getName()).log(Level.WARNING, msg); +136 close(); +137 open(); +138 } +139 } +140 final Query query = queryParser.parse(searchString); +141 return indexSearcher.search(query, maxQueryResults); +142 } +143 +144 /** +145 * Searches the index using the given query. +146 * +147 * @param query the query used to search the index +148 * @param maxQueryResults the max number of results to return +149 * @return the TopDocs found be the query +150 * @throws CorruptIndexException thrown if the Index is corrupt +151 * @throws IOException thrown if there is an IOException +152 */ +153 public TopDocs search(Query query, int maxQueryResults) throws CorruptIndexException, IOException { +154 resetSearchingAnalyzer(); +155 return indexSearcher.search(query, maxQueryResults); +156 } +157 +158 /** +159 * Retrieves a document from the Index. +160 * +161 * @param documentId the id of the document to retrieve +162 * @return the Document +163 * @throws IOException thrown if there is an IOException +164 */ +165 public Document getDocument(int documentId) throws IOException { +166 return indexSearcher.doc(documentId); +167 } +168 +169 /** +170 * Creates an Analyzer for searching the CPE Index. +171 * +172 * @return the CPE Analyzer. +173 */ +174 @SuppressWarnings("unchecked") +175 private Analyzer createSearchingAnalyzer() { +176 final Map fieldAnalyzers = new HashMap(); +177 fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer()); +178 productSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43); +179 vendorSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43); +180 fieldAnalyzers.put(Fields.PRODUCT, productSearchFieldAnalyzer); +181 fieldAnalyzers.put(Fields.VENDOR, vendorSearchFieldAnalyzer); +182 +183 return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers); +184 } +185 +186 /** +187 * Resets the searching analyzers +188 */ +189 private void resetSearchingAnalyzer() { +190 if (productSearchFieldAnalyzer != null) { +191 productSearchFieldAnalyzer.clear(); +192 } +193 if (vendorSearchFieldAnalyzer != null) { +194 vendorSearchFieldAnalyzer.clear(); +195 } +196 } +197 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/Index.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/Index.html deleted file mode 100644 index 96ba2429f..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/Index.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - -Index xref - - - -
    -
    -1   /*
    -2    * This file is part of dependency-check-core.
    -3    *
    -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    -5    * under the terms of the GNU General Public License as published by the Free
    -6    * Software Foundation, either version 3 of the License, or (at your option) any
    -7    * later version.
    -8    *
    -9    * Dependency-check-core is distributed in the hope that it will be useful, but
    -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    -12   * details.
    -13   *
    -14   * You should have received a copy of the GNU General Public License along with
    -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    -16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    -18   */
    -19  package org.owasp.dependencycheck.data.cpe;
    -20  
    -21  import java.io.File;
    -22  import java.io.IOException;
    -23  import java.util.HashMap;
    -24  import java.util.Map;
    -25  import org.apache.lucene.analysis.Analyzer;
    -26  import org.apache.lucene.analysis.core.KeywordAnalyzer;
    -27  import org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper;
    -28  import org.apache.lucene.document.Document;
    -29  import org.apache.lucene.document.Field;
    -30  import org.apache.lucene.document.TextField;
    -31  import org.apache.lucene.index.CorruptIndexException;
    -32  import org.apache.lucene.index.Term;
    -33  import org.apache.lucene.queryparser.classic.QueryParser;
    -34  import org.apache.lucene.store.Directory;
    -35  import org.apache.lucene.store.FSDirectory;
    -36  import org.apache.lucene.util.Version;
    -37  import org.owasp.dependencycheck.data.lucene.AbstractIndex;
    -38  import org.owasp.dependencycheck.utils.Settings;
    -39  import org.owasp.dependencycheck.data.lucene.FieldAnalyzer;
    -40  import org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer;
    -41  
    -42  /**
    -43   * The Index class is used to utilize and maintain the CPE Index.
    -44   *
    -45   * @author Jeremy Long (jeremy.long@owasp.org)
    -46   */
    -47  public class Index extends AbstractIndex {
    -48  
    -49      /**
    -50       * Returns the directory that holds the CPE Index.
    -51       *
    -52       * @return the Directory containing the CPE Index.
    -53       * @throws IOException is thrown if an IOException occurs.
    -54       */
    -55      @Override
    -56      public Directory getDirectory() throws IOException {
    -57          final File path = getDataDirectory();
    -58          return FSDirectory.open(path);
    -59      }
    -60  
    -61      /**
    -62       * Retrieves the directory that the JAR file exists in so that we can ensure
    -63       * we always use a common data directory.
    -64       *
    -65       * @return the data directory for this index.
    -66       * @throws IOException is thrown if an IOException occurs of course...
    -67       */
    -68      public File getDataDirectory() throws IOException {
    -69          final File path = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY);
    -70          if (!path.exists()) {
    -71              if (!path.mkdirs()) {
    -72                  throw new IOException("Unable to create CPE Data directory");
    -73              }
    -74          }
    -75          return path;
    -76      }
    -77  
    -78      /**
    -79       * Creates an Analyzer for the CPE Index.
    -80       *
    -81       * @return the CPE Analyzer.
    -82       */
    -83      @SuppressWarnings("unchecked")
    -84      @Override
    -85      public Analyzer createIndexingAnalyzer() {
    -86          final Map fieldAnalyzers = new HashMap();
    -87          fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer());
    -88          return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers);
    -89      }
    -90      /**
    -91       * The search field analyzer for the product field.
    -92       */
    -93      private SearchFieldAnalyzer productSearchFieldAnalyzer;
    -94      /**
    -95       * The search field analyzer for the vendor field.
    -96       */
    -97      private SearchFieldAnalyzer vendorSearchFieldAnalyzer;
    -98  
    -99      /**
    -100      * Creates an Analyzer for searching the CPE Index.
    -101      *
    -102      * @return the CPE Analyzer.
    -103      */
    -104     @SuppressWarnings("unchecked")
    -105     @Override
    -106     public Analyzer createSearchingAnalyzer() {
    -107         final Map fieldAnalyzers = new HashMap();
    -108 
    -109         fieldAnalyzers.put(Fields.DOCUMENT_KEY, new KeywordAnalyzer());
    -110         productSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43);
    -111         vendorSearchFieldAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43);
    -112         fieldAnalyzers.put(Fields.PRODUCT, productSearchFieldAnalyzer);
    -113         fieldAnalyzers.put(Fields.VENDOR, vendorSearchFieldAnalyzer);
    -114 
    -115         return new PerFieldAnalyzerWrapper(new FieldAnalyzer(Version.LUCENE_43), fieldAnalyzers);
    -116     }
    -117 
    -118     /**
    -119      * Creates the Lucene QueryParser used when querying the index.
    -120      *
    -121      * @return a QueryParser.
    -122      */
    -123     @Override
    -124     public QueryParser createQueryParser() {
    -125         return new QueryParser(Version.LUCENE_43, Fields.DOCUMENT_KEY, getSearchingAnalyzer());
    -126     }
    -127 
    -128     /**
    -129      * Resets the searching analyzers
    -130      */
    -131     @Override
    -132     protected void resetSearchingAnalyzer() {
    -133         if (productSearchFieldAnalyzer != null) {
    -134             productSearchFieldAnalyzer.clear();
    -135         }
    -136         if (vendorSearchFieldAnalyzer != null) {
    -137             vendorSearchFieldAnalyzer.clear();
    -138         }
    -139     }
    -140 
    -141     /**
    -142      * Saves a CPE IndexEntry into the Lucene index.
    -143      *
    -144      * @param entry a CPE entry.
    -145      * @throws CorruptIndexException is thrown if the index is corrupt.
    -146      * @throws IOException is thrown if an IOException occurs.
    -147      */
    -148     public void saveEntry(IndexEntry entry) throws CorruptIndexException, IOException {
    -149         final Document doc = convertEntryToDoc(entry);
    -150         final Term term = new Term(Fields.DOCUMENT_KEY, entry.getDocumentId());
    -151         getIndexWriter().updateDocument(term, doc);
    -152     }
    -153 
    -154     /**
    -155      * Converts a CPE entry into a Lucene Document.
    -156      *
    -157      * @param entry a CPE IndexEntry.
    -158      * @return a Lucene Document containing a CPE IndexEntry.
    -159      */
    -160     protected Document convertEntryToDoc(IndexEntry entry) {
    -161         final Document doc = new Document();
    -162 
    -163         final Field vendor = new TextField(Fields.VENDOR, entry.getVendor(), Field.Store.YES);
    -164         doc.add(vendor);
    -165 
    -166         final Field product = new TextField(Fields.PRODUCT, entry.getProduct(), Field.Store.YES);
    -167         doc.add(product);
    -168         return doc;
    -169     }
    -170 }
    -
    -
    - - diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html index e85b08c99..790cb3ce4 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html index 17387aca4..ff226d0a6 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.cpe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html index 950eed475..8cddff003 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html index edfa50523..15c3a45fc 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/AbstractIndex.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/AbstractIndex.html deleted file mode 100644 index 9fb36d334..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/AbstractIndex.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - -AbstractIndex xref - - - -
    -
    -1   /*
    -2    * This file is part of dependency-check-core.
    -3    *
    -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    -5    * under the terms of the GNU General Public License as published by the Free
    -6    * Software Foundation, either version 3 of the License, or (at your option) any
    -7    * later version.
    -8    *
    -9    * Dependency-check-core is distributed in the hope that it will be useful, but
    -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    -12   * details.
    -13   *
    -14   * You should have received a copy of the GNU General Public License along with
    -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    -16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    -18   */
    -19  package org.owasp.dependencycheck.data.lucene;
    -20  
    -21  import java.io.IOException;
    -22  import java.util.logging.Level;
    -23  import java.util.logging.Logger;
    -24  import org.apache.lucene.analysis.Analyzer;
    -25  import org.apache.lucene.document.Document;
    -26  import org.apache.lucene.index.CorruptIndexException;
    -27  import org.apache.lucene.index.DirectoryReader;
    -28  import org.apache.lucene.index.IndexReader;
    -29  import org.apache.lucene.index.IndexWriter;
    -30  import org.apache.lucene.index.IndexWriterConfig;
    -31  import org.apache.lucene.queryparser.classic.ParseException;
    -32  import org.apache.lucene.queryparser.classic.QueryParser;
    -33  import org.apache.lucene.search.IndexSearcher;
    -34  import org.apache.lucene.search.Query;
    -35  import org.apache.lucene.search.TopDocs;
    -36  import org.apache.lucene.store.Directory;
    -37  import org.apache.lucene.store.LockObtainFailedException;
    -38  import org.apache.lucene.util.Version;
    -39  
    -40  /**
    -41   * The base Index for other index objects. Implements the open and close
    -42   * methods.
    -43   *
    -44   * @author Jeremy Long (jeremy.long@owasp.org)
    -45   */
    -46  public abstract class AbstractIndex {
    -47  
    -48      /**
    -49       * The Lucene directory containing the index.
    -50       */
    -51      private Directory directory;
    -52      /**
    -53       * The IndexWriter for the Lucene index.
    -54       */
    -55      private IndexWriter indexWriter;
    -56      /**
    -57       * The Lucene IndexReader.
    -58       */
    -59      private IndexReader indexReader;
    -60      /**
    -61       * The Lucene IndexSearcher.
    -62       */
    -63      private IndexSearcher indexSearcher;
    -64      /**
    -65       * The Lucene Analyzer used for Indexing.
    -66       */
    -67      private Analyzer indexingAnalyzer;
    -68      /**
    -69       * The Lucene Analyzer used for Searching.
    -70       */
    -71      private Analyzer searchingAnalyzer;
    -72      /**
    -73       * The Lucene QueryParser used for Searching.
    -74       */
    -75      private QueryParser queryParser;
    -76      /**
    -77       * Indicates whether or not the Lucene Index is open.
    -78       */
    -79      private boolean indexOpen = false;
    -80  
    -81      /**
    -82       * Opens the CPE Index.
    -83       *
    -84       * @throws IOException is thrown if an IOException occurs opening the index.
    -85       */
    -86      public void open() throws IOException {
    -87          directory = this.getDirectory();
    -88          indexingAnalyzer = this.getIndexingAnalyzer();
    -89          searchingAnalyzer = this.getSearchingAnalyzer();
    -90          indexOpen = true;
    -91      }
    -92  
    -93      /**
    -94       * Commits any pending changes.
    -95       */
    -96      public void commit() {
    -97          if (indexWriter != null) {
    -98              try {
    -99                  indexWriter.commit();
    -100             } catch (CorruptIndexException ex) {
    -101                 final String msg = "Unable to update database, there is a corrupt index.";
    -102                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
    -103                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
    -104             } catch (IOException ex) {
    -105                 final String msg = "Unable to update database due to an IO error.";
    -106                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
    -107                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
    -108             }
    -109         }
    -110     }
    -111 
    -112     /**
    -113      * Closes the CPE Index.
    -114      */
    -115     public void close() {
    -116         if (indexWriter != null) {
    -117             commit();
    -118             try {
    -119                 indexWriter.close(true);
    -120             } catch (CorruptIndexException ex) {
    -121                 final String msg = "Unable to update database, there is a corrupt index.";
    -122                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
    -123                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
    -124             } catch (IOException ex) {
    -125                 final String msg = "Unable to update database due to an IO error.";
    -126                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
    -127                 Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
    -128             } finally {
    -129                 indexWriter = null;
    -130             }
    -131         }
    -132         if (indexSearcher != null) {
    -133             indexSearcher = null;
    -134         }
    -135 
    -136         if (indexingAnalyzer != null) {
    -137             indexingAnalyzer.close();
    -138             indexingAnalyzer = null;
    -139         }
    -140 
    -141         if (searchingAnalyzer != null) {
    -142             searchingAnalyzer.close();
    -143             searchingAnalyzer = null;
    -144         }
    -145 
    -146         try {
    -147             directory.close();
    -148         } catch (IOException ex) {
    -149             final String msg = "Unable to update database due to an IO error.";
    -150             Logger.getLogger(AbstractIndex.class.getName()).log(Level.SEVERE, msg);
    -151             Logger.getLogger(AbstractIndex.class.getName()).log(Level.FINE, null, ex);
    -152         } finally {
    -153             directory = null;
    -154         }
    -155         indexOpen = false;
    -156     }
    -157 
    -158     /**
    -159      * Returns the status of the data source - is the index open.
    -160      *
    -161      * @return true or false.
    -162      */
    -163     public boolean isOpen() {
    -164         return indexOpen;
    -165     }
    -166 
    -167     /**
    -168      * Opens the Lucene Index Writer.
    -169      *
    -170      * @throws CorruptIndexException is thrown if the Lucene index is corrupt.
    -171      * @throws IOException is thrown if an IOException occurs opening the index.
    -172      */
    -173     public void openIndexWriter() throws CorruptIndexException, IOException {
    -174         if (!isOpen()) {
    -175             open();
    -176         }
    -177         final IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_43, indexingAnalyzer);
    -178         indexWriter = new IndexWriter(directory, conf);
    -179     }
    -180 
    -181     /**
    -182      * Retrieves the IndexWriter for the Lucene Index.
    -183      *
    -184      * @return an IndexWriter.
    -185      * @throws CorruptIndexException is thrown if the Lucene Index is corrupt.
    -186      * @throws LockObtainFailedException is thrown if there is an exception
    -187      * obtaining a lock on the Lucene index.
    -188      * @throws IOException is thrown if an IOException occurs opening the index.
    -189      */
    -190     public IndexWriter getIndexWriter() throws CorruptIndexException, LockObtainFailedException, IOException {
    -191         if (indexWriter == null) {
    -192             openIndexWriter();
    -193         }
    -194         return indexWriter;
    -195     }
    -196 
    -197     /**
    -198      * Opens the Lucene Index for reading.
    -199      *
    -200      * @throws CorruptIndexException is thrown if the index is corrupt.
    -201      * @throws IOException is thrown if there is an exception reading the index.
    -202      */
    -203     public void openIndexReader() throws CorruptIndexException, IOException {
    -204         if (!isOpen()) {
    -205             open();
    -206         }
    -207         //indexReader = IndexReader.open(directory, true);
    -208         indexReader = DirectoryReader.open(directory);
    -209     }
    -210 
    -211     /**
    -212      * Returns an IndexSearcher for the Lucene Index.
    -213      *
    -214      * @return an IndexSearcher.
    -215      * @throws CorruptIndexException is thrown if the index is corrupt.
    -216      * @throws IOException is thrown if there is an exception reading the index.
    -217      */
    -218     protected IndexSearcher getIndexSearcher() throws CorruptIndexException, IOException {
    -219         if (indexReader == null) {
    -220             openIndexReader();
    -221         }
    -222         if (indexSearcher == null) {
    -223             indexSearcher = new IndexSearcher(indexReader);
    -224         }
    -225         return indexSearcher;
    -226     }
    -227 
    -228     /**
    -229      * Returns an Analyzer to be used when indexing.
    -230      *
    -231      * @return an Analyzer.
    -232      */
    -233     public Analyzer getIndexingAnalyzer() {
    -234         if (indexingAnalyzer == null) {
    -235             indexingAnalyzer = createIndexingAnalyzer();
    -236         }
    -237         return indexingAnalyzer;
    -238     }
    -239 
    -240     /**
    -241      * Returns an analyzer used for searching the index
    -242      *
    -243      * @return a lucene analyzer
    -244      */
    -245     protected Analyzer getSearchingAnalyzer() {
    -246         if (searchingAnalyzer == null) {
    -247             searchingAnalyzer = createSearchingAnalyzer();
    -248         }
    -249         return searchingAnalyzer;
    -250     }
    -251 
    -252     /**
    -253      * Gets a query parser
    -254      *
    -255      * @return a query parser
    -256      */
    -257     protected QueryParser getQueryParser() {
    -258         if (queryParser == null) {
    -259             queryParser = createQueryParser();
    -260         }
    -261         return queryParser;
    -262     }
    -263 
    -264     /**
    -265      * Searches the index using the given search string.
    -266      *
    -267      * @param searchString the query text
    -268      * @param maxQueryResults the maximum number of documents to return
    -269      * @return the TopDocs found by the search
    -270      * @throws ParseException thrown when the searchString is invalid
    -271      * @throws IOException is thrown if there is an issue with the underlying
    -272      * Index
    -273      */
    -274     public TopDocs search(String searchString, int maxQueryResults) throws ParseException, IOException {
    -275         final QueryParser parser = getQueryParser();
    -276         final Query query = parser.parse(searchString);
    -277         resetSearchingAnalyzer();
    -278         final IndexSearcher is = getIndexSearcher();
    -279         return is.search(query, maxQueryResults);
    -280     }
    -281 
    -282     /**
    -283      * Searches the index using the given query.
    -284      *
    -285      * @param query the query used to search the index
    -286      * @param maxQueryResults the max number of results to return
    -287      * @return the TopDocs found be the query
    -288      * @throws CorruptIndexException thrown if the Index is corrupt
    -289      * @throws IOException thrown if there is an IOException
    -290      */
    -291     public TopDocs search(Query query, int maxQueryResults) throws CorruptIndexException, IOException {
    -292         final IndexSearcher is = getIndexSearcher();
    -293         return is.search(query, maxQueryResults);
    -294     }
    -295 
    -296     /**
    -297      * Retrieves a document from the Index.
    -298      *
    -299      * @param documentId the id of the document to retrieve
    -300      * @return the Document
    -301      * @throws IOException thrown if there is an IOException
    -302      */
    -303     public Document getDocument(int documentId) throws IOException {
    -304         final IndexSearcher is = getIndexSearcher();
    -305         return is.doc(documentId);
    -306     }
    -307 
    -308     /**
    -309      * Gets the directory that contains the Lucene Index.
    -310      *
    -311      * @return a Lucene Directory
    -312      * @throws IOException is thrown when an IOException occurs
    -313      */
    -314     public abstract Directory getDirectory() throws IOException;
    -315 
    -316     /**
    -317      * Creates the Lucene Analyzer used when indexing.
    -318      *
    -319      * @return a Lucene Analyzer
    -320      */
    -321     public abstract Analyzer createIndexingAnalyzer();
    -322 
    -323     /**
    -324      * Creates the Lucene Analyzer used when querying the index.
    -325      *
    -326      * @return a Lucene Analyzer
    -327      */
    -328     public abstract Analyzer createSearchingAnalyzer();
    -329 
    -330     /**
    -331      * Creates the Lucene QueryParser used when querying the index.
    -332      *
    -333      * @return a QueryParser
    -334      */
    -335     public abstract QueryParser createQueryParser();
    -336 
    -337     /**
    -338      * Resets the searching analyzers
    -339      */
    -340     protected abstract void resetSearchingAnalyzer();
    -341 }
    -
    -
    - - diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html index b0c1a3b45..620348b41 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html @@ -58,63 +58,81 @@ 48 private final LinkedList<String> words; 49 50 /** -51 * Constructs a new TokenPairConcatenatingFilter. +51 * Returns the previous word. This is needed in the test cases. 52 * -53 * @param stream the TokenStream that this filter will process +53 * @return te previous word 54 */ -55 public TokenPairConcatenatingFilter(TokenStream stream) { -56 super(stream); -57 words = new LinkedList<String>(); -58 } -59 -60 /** -61 * Increments the underlying TokenStream and sets CharTermAttributes to -62 * construct an expanded set of tokens by concatenating tokens with the -63 * previous token. -64 * -65 * @return whether or not we have hit the end of the TokenStream -66 * @throws IOException is thrown when an IOException occurs -67 */ -68 @Override -69 public boolean incrementToken() throws IOException { -70 -71 //collect all the terms into the words collection -72 while (input.incrementToken()) { -73 final String word = new String(termAtt.buffer(), 0, termAtt.length()); -74 words.add(word); -75 } -76 -77 //if we have a previousTerm - write it out as its own token concatenated -78 // with the current word (if one is available). -79 if (previousWord != null && words.size() > 0) { -80 final String word = words.getFirst(); -81 clearAttributes(); -82 termAtt.append(previousWord).append(word); -83 previousWord = null; -84 return true; -85 } -86 //if we have words, write it out as a single token -87 if (words.size() > 0) { -88 final String word = words.removeFirst(); -89 clearAttributes(); -90 termAtt.append(word); -91 previousWord = word; -92 return true; +55 protected String getPreviousWord() { +56 return previousWord; +57 } +58 +59 /** +60 * Returns the words list. This is needed in the test cases. +61 * +62 * @return the words list +63 */ +64 protected LinkedList<String> getWords() { +65 return words; +66 } +67 +68 /** +69 * Constructs a new TokenPairConcatenatingFilter. +70 * +71 * @param stream the TokenStream that this filter will process +72 */ +73 public TokenPairConcatenatingFilter(TokenStream stream) { +74 super(stream); +75 words = new LinkedList<String>(); +76 } +77 +78 /** +79 * Increments the underlying TokenStream and sets CharTermAttributes to +80 * construct an expanded set of tokens by concatenating tokens with the +81 * previous token. +82 * +83 * @return whether or not we have hit the end of the TokenStream +84 * @throws IOException is thrown when an IOException occurs +85 */ +86 @Override +87 public boolean incrementToken() throws IOException { +88 +89 //collect all the terms into the words collection +90 while (input.incrementToken()) { +91 final String word = new String(termAtt.buffer(), 0, termAtt.length()); +92 words.add(word); 93 } -94 return false; -95 } -96 -97 /** -98 * <p>Resets the Filter and clears any internal state data that may have -99 * been left-over from previous uses of the Filter.</p> -100 * <p><b>If this Filter is re-used this method must be called between -101 * uses.</b></p> -102 */ -103 public void clear() { -104 previousWord = null; -105 words.clear(); -106 } -107 } +94 +95 //if we have a previousTerm - write it out as its own token concatenated +96 // with the current word (if one is available). +97 if (previousWord != null && words.size() > 0) { +98 final String word = words.getFirst(); +99 clearAttributes(); +100 termAtt.append(previousWord).append(word); +101 previousWord = null; +102 return true; +103 } +104 //if we have words, write it out as a single token +105 if (words.size() > 0) { +106 final String word = words.removeFirst(); +107 clearAttributes(); +108 termAtt.append(word); +109 previousWord = word; +110 return true; +111 } +112 return false; +113 } +114 +115 /** +116 * <p>Resets the Filter and clears any internal state data that may have +117 * been left-over from previous uses of the Filter.</p> +118 * <p><b>If this Filter is re-used this method must be called between +119 * uses.</b></p> +120 */ +121 public void clear() { +122 previousWord = null; +123 words.clear(); +124 } +125 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html index c3147358c..69ac571aa 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html index c14275e1f..cb8a32779 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html index 482a72d80..f28fd286f 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html @@ -251,275 +251,273 @@ 241 } 242 243 /** -244 * Saves a vulnerability to the CVE Database. This is a callback method -245 * called by the Sax Parser Handler -246 * {@link org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler}. -247 * -248 * @param vuln the vulnerability to store in the database -249 * @throws DatabaseException thrown if there is an error writing to the -250 * database -251 * @throws CorruptIndexException is thrown if the CPE Index is corrupt -252 * @throws IOException thrown if there is an IOException with the CPE Index -253 */ -254 public void saveEntry(Vulnerability vuln) throws DatabaseException, CorruptIndexException, IOException { -255 if (cveDB == null) { -256 return; -257 } -258 final String cveName = vuln.getName(); -259 if (prevVersionVulnMap.containsKey(cveName)) { -260 final List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName); -261 for (VulnerableSoftware vs : vulnSoftware) { -262 vuln.updateVulnerableSoftware(vs); -263 } -264 } -265 for (VulnerableSoftware vs : vuln.getVulnerableSoftware()) { -266 if (cpeIndex != null) { -267 cpeIndex.saveEntry(vs); -268 } -269 } -270 cveDB.updateVulnerability(vuln); -271 } -272 /** -273 * the cpe index. -274 */ -275 private CpeIndexWriter cpeIndex; -276 -277 /** -278 * Sets the cpe index writer. -279 * -280 * @param index the CPE Lucene Index -281 */ -282 public void setCpeIndex(CpeIndexWriter index) { -283 cpeIndex = index; -284 } -285 -286 // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node"> -287 /** -288 * A simple class to maintain information about the current element while -289 * parsing the NVD CVE XML. -290 */ -291 protected static class Element { -292 -293 /** -294 * A node type in the NVD CVE Schema 2.0 -295 */ -296 public static final String NVD = "nvd"; -297 /** -298 * A node type in the NVD CVE Schema 2.0 -299 */ -300 public static final String ENTRY = "entry"; -301 /** -302 * A node type in the NVD CVE Schema 2.0 -303 */ -304 public static final String VULN_PRODUCT = "vuln:product"; -305 /** -306 * A node type in the NVD CVE Schema 2.0 -307 */ -308 public static final String VULN_REFERENCES = "vuln:references"; -309 /** -310 * A node type in the NVD CVE Schema 2.0 -311 */ -312 public static final String VULN_SOURCE = "vuln:source"; -313 /** -314 * A node type in the NVD CVE Schema 2.0 -315 */ -316 public static final String VULN_REFERENCE = "vuln:reference"; -317 /** -318 * A node type in the NVD CVE Schema 2.0 -319 */ -320 public static final String VULN_SUMMARY = "vuln:summary"; -321 /** -322 * A node type in the NVD CVE Schema 2.0 -323 */ -324 public static final String VULN_CWE = "vuln:cwe"; -325 /** -326 * A node type in the NVD CVE Schema 2.0 -327 */ -328 public static final String CVSS_SCORE = "cvss:score"; -329 /** -330 * A node type in the NVD CVE Schema 2.0 -331 */ -332 public static final String CVSS_ACCESS_VECTOR = "cvss:access-vector"; -333 /** -334 * A node type in the NVD CVE Schema 2.0 -335 */ -336 public static final String CVSS_ACCESS_COMPLEXITY = "cvss:access-complexity"; -337 /** -338 * A node type in the NVD CVE Schema 2.0 -339 */ -340 public static final String CVSS_AUTHENTICATION = "cvss:authentication"; -341 /** -342 * A node type in the NVD CVE Schema 2.0 -343 */ -344 public static final String CVSS_CONFIDENTIALITY_IMPACT = "cvss:confidentiality-impact"; -345 /** -346 * A node type in the NVD CVE Schema 2.0 -347 */ -348 public static final String CVSS_INTEGRITY_IMPACT = "cvss:integrity-impact"; -349 /** -350 * A node type in the NVD CVE Schema 2.0 -351 */ -352 public static final String CVSS_AVAILABILITY_IMPACT = "cvss:availability-impact"; -353 /** -354 * The current node. -355 */ -356 private String node; -357 -358 /** -359 * Gets the value of node. -360 * -361 * @return the value of node -362 */ -363 public String getNode() { -364 return this.node; -365 } -366 -367 /** -368 * Sets the value of node. -369 * -370 * @param node new value of node -371 */ -372 public void setNode(String node) { -373 this.node = node; -374 } -375 -376 /** -377 * Checks if the handler is at the NVD node. -378 * -379 * @return true or false -380 */ -381 public boolean isNVDNode() { -382 return NVD.equals(node); -383 } -384 -385 /** -386 * Checks if the handler is at the ENTRY node. -387 * -388 * @return true or false -389 */ -390 public boolean isEntryNode() { -391 return ENTRY.equals(node); -392 } -393 -394 /** -395 * Checks if the handler is at the VULN_PRODUCT node. -396 * -397 * @return true or false -398 */ -399 public boolean isVulnProductNode() { -400 return VULN_PRODUCT.equals(node); -401 } -402 -403 /** -404 * Checks if the handler is at the REFERENCES node. -405 * -406 * @return true or false -407 */ -408 public boolean isVulnReferencesNode() { -409 return VULN_REFERENCES.equals(node); -410 } -411 -412 /** -413 * Checks if the handler is at the REFERENCE node. -414 * -415 * @return true or false -416 */ -417 public boolean isVulnReferenceNode() { -418 return VULN_REFERENCE.equals(node); -419 } -420 -421 /** -422 * Checks if the handler is at the VULN_SOURCE node. -423 * -424 * @return true or false -425 */ -426 public boolean isVulnSourceNode() { -427 return VULN_SOURCE.equals(node); -428 } -429 -430 /** -431 * Checks if the handler is at the VULN_SUMMARY node. -432 * -433 * @return true or false -434 */ -435 public boolean isVulnSummaryNode() { -436 return VULN_SUMMARY.equals(node); -437 } -438 -439 /** -440 * Checks if the handler is at the VULN_CWE node. -441 * -442 * @return true or false -443 */ -444 public boolean isVulnCWENode() { -445 return VULN_CWE.equals(node); -446 } -447 -448 /** -449 * Checks if the handler is at the CVSS_SCORE node. -450 * -451 * @return true or false -452 */ -453 public boolean isCVSSScoreNode() { -454 return CVSS_SCORE.equals(node); -455 } -456 -457 /** -458 * Checks if the handler is at the CVSS_ACCESS_VECTOR node. -459 * -460 * @return true or false -461 */ -462 public boolean isCVSSAccessVectorNode() { -463 return CVSS_ACCESS_VECTOR.equals(node); -464 } -465 -466 /** -467 * Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node. -468 * -469 * @return true or false -470 */ -471 public boolean isCVSSAccessComplexityNode() { -472 return CVSS_ACCESS_COMPLEXITY.equals(node); -473 } -474 -475 /** -476 * Checks if the handler is at the CVSS_AUTHENTICATION node. -477 * -478 * @return true or false -479 */ -480 public boolean isCVSSAuthenticationNode() { -481 return CVSS_AUTHENTICATION.equals(node); -482 } -483 -484 /** -485 * Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node. -486 * -487 * @return true or false -488 */ -489 public boolean isCVSSConfidentialityImpactNode() { -490 return CVSS_CONFIDENTIALITY_IMPACT.equals(node); -491 } -492 -493 /** -494 * Checks if the handler is at the CVSS_INTEGRITY_IMPACT node. -495 * -496 * @return true or false -497 */ -498 public boolean isCVSSIntegrityImpactNode() { -499 return CVSS_INTEGRITY_IMPACT.equals(node); -500 } -501 -502 /** -503 * Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node. -504 * -505 * @return true or false -506 */ -507 public boolean isCVSSAvailabilityImpactNode() { -508 return CVSS_AVAILABILITY_IMPACT.equals(node); -509 } -510 } -511 // </editor-fold> -512 } +244 * Saves a vulnerability to the CVE Database. +245 * +246 * @param vuln the vulnerability to store in the database +247 * @throws DatabaseException thrown if there is an error writing to the +248 * database +249 * @throws CorruptIndexException is thrown if the CPE Index is corrupt +250 * @throws IOException thrown if there is an IOException with the CPE Index +251 */ +252 private void saveEntry(Vulnerability vuln) throws DatabaseException, CorruptIndexException, IOException { +253 if (cveDB == null) { +254 return; +255 } +256 final String cveName = vuln.getName(); +257 if (prevVersionVulnMap.containsKey(cveName)) { +258 final List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName); +259 for (VulnerableSoftware vs : vulnSoftware) { +260 vuln.updateVulnerableSoftware(vs); +261 } +262 } +263 for (VulnerableSoftware vs : vuln.getVulnerableSoftware()) { +264 if (cpeIndex != null) { +265 cpeIndex.saveEntry(vs); +266 } +267 } +268 cveDB.updateVulnerability(vuln); +269 } +270 /** +271 * the cpe index. +272 */ +273 private CpeIndexWriter cpeIndex; +274 +275 /** +276 * Sets the cpe index writer. +277 * +278 * @param index the CPE Lucene Index +279 */ +280 public void setCpeIndex(CpeIndexWriter index) { +281 cpeIndex = index; +282 } +283 +284 // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node"> +285 /** +286 * A simple class to maintain information about the current element while +287 * parsing the NVD CVE XML. +288 */ +289 protected static class Element { +290 +291 /** +292 * A node type in the NVD CVE Schema 2.0 +293 */ +294 public static final String NVD = "nvd"; +295 /** +296 * A node type in the NVD CVE Schema 2.0 +297 */ +298 public static final String ENTRY = "entry"; +299 /** +300 * A node type in the NVD CVE Schema 2.0 +301 */ +302 public static final String VULN_PRODUCT = "vuln:product"; +303 /** +304 * A node type in the NVD CVE Schema 2.0 +305 */ +306 public static final String VULN_REFERENCES = "vuln:references"; +307 /** +308 * A node type in the NVD CVE Schema 2.0 +309 */ +310 public static final String VULN_SOURCE = "vuln:source"; +311 /** +312 * A node type in the NVD CVE Schema 2.0 +313 */ +314 public static final String VULN_REFERENCE = "vuln:reference"; +315 /** +316 * A node type in the NVD CVE Schema 2.0 +317 */ +318 public static final String VULN_SUMMARY = "vuln:summary"; +319 /** +320 * A node type in the NVD CVE Schema 2.0 +321 */ +322 public static final String VULN_CWE = "vuln:cwe"; +323 /** +324 * A node type in the NVD CVE Schema 2.0 +325 */ +326 public static final String CVSS_SCORE = "cvss:score"; +327 /** +328 * A node type in the NVD CVE Schema 2.0 +329 */ +330 public static final String CVSS_ACCESS_VECTOR = "cvss:access-vector"; +331 /** +332 * A node type in the NVD CVE Schema 2.0 +333 */ +334 public static final String CVSS_ACCESS_COMPLEXITY = "cvss:access-complexity"; +335 /** +336 * A node type in the NVD CVE Schema 2.0 +337 */ +338 public static final String CVSS_AUTHENTICATION = "cvss:authentication"; +339 /** +340 * A node type in the NVD CVE Schema 2.0 +341 */ +342 public static final String CVSS_CONFIDENTIALITY_IMPACT = "cvss:confidentiality-impact"; +343 /** +344 * A node type in the NVD CVE Schema 2.0 +345 */ +346 public static final String CVSS_INTEGRITY_IMPACT = "cvss:integrity-impact"; +347 /** +348 * A node type in the NVD CVE Schema 2.0 +349 */ +350 public static final String CVSS_AVAILABILITY_IMPACT = "cvss:availability-impact"; +351 /** +352 * The current node. +353 */ +354 private String node; +355 +356 /** +357 * Gets the value of node. +358 * +359 * @return the value of node +360 */ +361 public String getNode() { +362 return this.node; +363 } +364 +365 /** +366 * Sets the value of node. +367 * +368 * @param node new value of node +369 */ +370 public void setNode(String node) { +371 this.node = node; +372 } +373 +374 /** +375 * Checks if the handler is at the NVD node. +376 * +377 * @return true or false +378 */ +379 public boolean isNVDNode() { +380 return NVD.equals(node); +381 } +382 +383 /** +384 * Checks if the handler is at the ENTRY node. +385 * +386 * @return true or false +387 */ +388 public boolean isEntryNode() { +389 return ENTRY.equals(node); +390 } +391 +392 /** +393 * Checks if the handler is at the VULN_PRODUCT node. +394 * +395 * @return true or false +396 */ +397 public boolean isVulnProductNode() { +398 return VULN_PRODUCT.equals(node); +399 } +400 +401 /** +402 * Checks if the handler is at the REFERENCES node. +403 * +404 * @return true or false +405 */ +406 public boolean isVulnReferencesNode() { +407 return VULN_REFERENCES.equals(node); +408 } +409 +410 /** +411 * Checks if the handler is at the REFERENCE node. +412 * +413 * @return true or false +414 */ +415 public boolean isVulnReferenceNode() { +416 return VULN_REFERENCE.equals(node); +417 } +418 +419 /** +420 * Checks if the handler is at the VULN_SOURCE node. +421 * +422 * @return true or false +423 */ +424 public boolean isVulnSourceNode() { +425 return VULN_SOURCE.equals(node); +426 } +427 +428 /** +429 * Checks if the handler is at the VULN_SUMMARY node. +430 * +431 * @return true or false +432 */ +433 public boolean isVulnSummaryNode() { +434 return VULN_SUMMARY.equals(node); +435 } +436 +437 /** +438 * Checks if the handler is at the VULN_CWE node. +439 * +440 * @return true or false +441 */ +442 public boolean isVulnCWENode() { +443 return VULN_CWE.equals(node); +444 } +445 +446 /** +447 * Checks if the handler is at the CVSS_SCORE node. +448 * +449 * @return true or false +450 */ +451 public boolean isCVSSScoreNode() { +452 return CVSS_SCORE.equals(node); +453 } +454 +455 /** +456 * Checks if the handler is at the CVSS_ACCESS_VECTOR node. +457 * +458 * @return true or false +459 */ +460 public boolean isCVSSAccessVectorNode() { +461 return CVSS_ACCESS_VECTOR.equals(node); +462 } +463 +464 /** +465 * Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node. +466 * +467 * @return true or false +468 */ +469 public boolean isCVSSAccessComplexityNode() { +470 return CVSS_ACCESS_COMPLEXITY.equals(node); +471 } +472 +473 /** +474 * Checks if the handler is at the CVSS_AUTHENTICATION node. +475 * +476 * @return true or false +477 */ +478 public boolean isCVSSAuthenticationNode() { +479 return CVSS_AUTHENTICATION.equals(node); +480 } +481 +482 /** +483 * Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node. +484 * +485 * @return true or false +486 */ +487 public boolean isCVSSConfidentialityImpactNode() { +488 return CVSS_CONFIDENTIALITY_IMPACT.equals(node); +489 } +490 +491 /** +492 * Checks if the handler is at the CVSS_INTEGRITY_IMPACT node. +493 * +494 * @return true or false +495 */ +496 public boolean isCVSSIntegrityImpactNode() { +497 return CVSS_INTEGRITY_IMPACT.equals(node); +498 } +499 +500 /** +501 * Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node. +502 * +503 * @return true or false +504 */ +505 public boolean isCVSSAvailabilityImpactNode() { +506 return CVSS_AVAILABILITY_IMPACT.equals(node); +507 } +508 } +509 // </editor-fold> +510 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCveAnalyzer.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCveAnalyzer.html deleted file mode 100644 index 582e0e071..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCveAnalyzer.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - -NvdCveAnalyzer xref - - - -
    -
    -1   /*
    -2    * This file is part of dependency-check-core.
    -3    *
    -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    -5    * under the terms of the GNU General Public License as published by the Free
    -6    * Software Foundation, either version 3 of the License, or (at your option) any
    -7    * later version.
    -8    *
    -9    * Dependency-check-core is distributed in the hope that it will be useful, but
    -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    -12   * details.
    -13   *
    -14   * You should have received a copy of the GNU General Public License along with
    -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    -16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    -18   */
    -19  package org.owasp.dependencycheck.data.nvdcve;
    -20  
    -21  import java.io.IOException;
    -22  import java.sql.SQLException;
    -23  import java.util.List;
    -24  import java.util.Set;
    -25  import org.owasp.dependencycheck.Engine;
    -26  import org.owasp.dependencycheck.analyzer.AnalysisException;
    -27  import org.owasp.dependencycheck.analyzer.AnalysisPhase;
    -28  import org.owasp.dependencycheck.dependency.Dependency;
    -29  import org.owasp.dependencycheck.dependency.Vulnerability;
    -30  import org.owasp.dependencycheck.dependency.Identifier;
    -31  import org.owasp.dependencycheck.analyzer.Analyzer;
    -32  
    -33  /**
    -34   * NvdCveAnalyzer is a utility class that takes a project dependency and
    -35   * attempts to discern if there is an associated CVEs. It uses the the
    -36   * identifiers found by other analyzers to lookup the CVE data.
    -37   *
    -38   * @author Jeremy Long (jeremy.long@owasp.org)
    -39   */
    -40  public class NvdCveAnalyzer implements Analyzer {
    -41  
    -42      /**
    -43       * The maximum number of query results to return.
    -44       */
    -45      static final int MAX_QUERY_RESULTS = 100;
    -46      /**
    -47       * The CVE Index.
    -48       */
    -49      private CveDB cveDB;
    -50  
    -51      /**
    -52       * Opens the data source.
    -53       *
    -54       * @throws SQLException thrown when there is a SQL Exception
    -55       * @throws IOException thrown when there is an IO Exception
    -56       * @throws DatabaseException thrown when there is a database exceptions
    -57       * @throws ClassNotFoundException thrown if the h2 database driver cannot be
    -58       * loaded
    -59       */
    -60      public void open() throws SQLException, IOException, DatabaseException, ClassNotFoundException {
    -61          cveDB = new CveDB();
    -62          cveDB.open();
    -63      }
    -64  
    -65      /**
    -66       * Closes the data source.
    -67       */
    -68      public void close() {
    -69          cveDB.close();
    -70          cveDB = null;
    -71      }
    -72  
    -73      /**
    -74       * Returns the status of the data source - is the database open.
    -75       *
    -76       * @return true or false.
    -77       */
    -78      public boolean isOpen() {
    -79          return (cveDB != null);
    -80      }
    -81  
    -82      /**
    -83       * Ensures that the CVE Database is closed.
    -84       *
    -85       * @throws Throwable when a throwable is thrown.
    -86       */
    -87      @Override
    -88      protected void finalize() throws Throwable {
    -89          super.finalize();
    -90          if (isOpen()) {
    -91              close();
    -92          }
    -93      }
    -94  
    -95      /**
    -96       * Analyzes a dependency and attempts to determine if there are any CPE
    -97       * identifiers for this dependency.
    -98       *
    -99       * @param dependency The Dependency to analyze
    -100      * @param engine The analysis engine
    -101      * @throws AnalysisException is thrown if there is an issue analyzing the
    -102      * dependency
    -103      */
    -104     public void analyze(Dependency dependency, Engine engine) throws AnalysisException {
    -105         for (Identifier id : dependency.getIdentifiers()) {
    -106             if ("cpe".equals(id.getType())) {
    -107                 try {
    -108                     final String value = id.getValue();
    -109                     final List<Vulnerability> vulns = cveDB.getVulnerabilities(value);
    -110                     dependency.getVulnerabilities().addAll(vulns);
    -111 //TODO - remove this comment block after additional testing is completed
    -112 //note - valid match functionality has been moved into the CveDB class.
    -113 ////                    for (Vulnerability v : vulns) {
    -114 ////                        if (isValidMatch(dependency, v)) {
    -115 ////                            dependency.addVulnerability(v);
    -116 ////                        }
    -117 ////                    }
    -118                 } catch (DatabaseException ex) {
    -119                     throw new AnalysisException(ex);
    -120                 }
    -121             }
    -122         }
    -123     }
    -124 
    -125     /**
    -126      * Returns true because this analyzer supports all dependency types.
    -127      *
    -128      * @return true.
    -129      */
    -130     public Set<String> getSupportedExtensions() {
    -131         return null;
    -132     }
    -133 
    -134     /**
    -135      * Returns the name of this analyzer.
    -136      *
    -137      * @return the name of this analyzer.
    -138      */
    -139     public String getName() {
    -140         return "NVD CVE Analyzer";
    -141     }
    -142 
    -143     /**
    -144      * Returns true because this analyzer supports all dependency types.
    -145      *
    -146      * @param extension the file extension of the dependency being analyzed.
    -147      * @return true.
    -148      */
    -149     public boolean supportsExtension(String extension) {
    -150         return true;
    -151     }
    -152 
    -153     /**
    -154      * Returns the analysis phase that this analyzer should run in.
    -155      *
    -156      * @return the analysis phase that this analyzer should run in.
    -157      */
    -158     public AnalysisPhase getAnalysisPhase() {
    -159         return AnalysisPhase.FINDING_ANALYSIS;
    -160     }
    -161 
    -162     /**
    -163      * Opens the NVD CVE Lucene Index.
    -164      *
    -165      * @throws Exception is thrown if there is an issue opening the index.
    -166      */
    -167     public void initialize() throws Exception {
    -168         this.open();
    -169     }
    -170 //TODO - remove this comment block after additional testing is completed
    -171 // The following check has been moved into the CveDB class.
    -172 ////    /**
    -173 ////     * <p>Determines if this is a valid vulnerability match for the given
    -174 ////     * dependency. Specifically, this is concerned with ensuring the version
    -175 ////     * numbers are correct.</p>
    -176 ////     * <p>Currently, this is focused on the issues with the versions for Struts
    -177 ////     * 1 and Struts 2. In the future this will due better matching on more
    -178 ////     * version numbers.</p>
    -179 ////     *
    -180 ////     * @param dependency the dependency
    -181 ////     * @param v the vulnerability
    -182 ////     * @return returns true if the vulnerability is for the given dependency
    -183 ////     */
    -184 ////    private boolean isValidMatch(final Dependency dependency, final Vulnerability v) {
    -185 ////        //right now I only know of the issue with Struts1/2
    -186 ////        // start with fixing this problem.
    -187 ////
    -188 ////        //TODO extend this solution to do better version matching for the vulnerable software.
    -189 ////        boolean struts1 = false;
    -190 ////        boolean struts2 = false;
    -191 ////        for (Identifier i : dependency.getIdentifiers()) {
    -192 ////            if (i.getValue().startsWith("cpe:/a:apache:struts:")) {
    -193 ////                final char version = i.getValue().charAt(21);
    -194 ////                if (version == '1') {
    -195 ////                    struts1 = true;
    -196 ////                }
    -197 ////                if (version == '2') {
    -198 ////                    struts2 = true;
    -199 ////                }
    -200 ////            }
    -201 ////        }
    -202 ////        if (!struts1 && !struts2) {
    -203 ////            return true; //we are not looking at struts, so return true.
    -204 ////        }
    -205 ////        if (struts1 && struts2) {
    -206 ////            return true; //there is a mismatch here, but we can't solve it here so we return valid.
    -207 ////        }
    -208 ////        if (struts1) {
    -209 ////            boolean hasStruts1Vuln = false;
    -210 ////            boolean hasStruts2PreviousVersion = false;
    -211 ////            for (VulnerableSoftware vs : v.getVulnerableSoftware()) {
    -212 ////                //TODO FIX THIS
    -213 ////                //hasStruts2PreviousVersion |= vs.hasPreviousVersion() && vs.getName().charAt(21) == '2';
    -214 ////                //hasStruts1Vuln |= vs.getName().charAt(21) == '1';
    -215 ////            }
    -216 ////            if (!hasStruts1Vuln && hasStruts2PreviousVersion) {
    -217 ////                return false;
    -218 ////            }
    -219 ////        }
    -220 ////
    -221 ////        return true;
    -222 ////    }
    -223 }
    -
    -
    - - diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html index 0ab94da72..4549e42d3 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 4cb56b61d..d71880260 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.html deleted file mode 100644 index 7434bec01..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/DatabaseUpdater.html +++ /dev/null @@ -1,685 +0,0 @@ - - - - -DatabaseUpdater xref - - - -
    -
    -1   /*
    -2    * This file is part of dependency-check-core.
    -3    *
    -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    -5    * under the terms of the GNU General Public License as published by the Free
    -6    * Software Foundation, either version 3 of the License, or (at your option) any
    -7    * later version.
    -8    *
    -9    * Dependency-check-core is distributed in the hope that it will be useful, but
    -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    -12   * details.
    -13   *
    -14   * You should have received a copy of the GNU General Public License along with
    -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    -16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    -18   */
    -19  package org.owasp.dependencycheck.data.nvdcve.xml;
    -20  
    -21  import java.io.File;
    -22  import java.io.FileInputStream;
    -23  import java.io.FileNotFoundException;
    -24  import java.io.FileOutputStream;
    -25  import java.io.IOException;
    -26  import java.io.InputStream;
    -27  import java.io.OutputStream;
    -28  import java.io.OutputStreamWriter;
    -29  import javax.xml.parsers.ParserConfigurationException;
    -30  import org.owasp.dependencycheck.data.CachedWebDataSource;
    -31  import java.net.MalformedURLException;
    -32  import java.net.URL;
    -33  import java.sql.SQLException;
    -34  import java.util.Calendar;
    -35  import java.util.Date;
    -36  import java.util.HashMap;
    -37  import java.util.List;
    -38  import java.util.Map;
    -39  import java.util.Properties;
    -40  import java.util.logging.Level;
    -41  import java.util.logging.Logger;
    -42  import javax.xml.parsers.SAXParser;
    -43  import javax.xml.parsers.SAXParserFactory;
    -44  import org.owasp.dependencycheck.data.UpdateException;
    -45  import org.owasp.dependencycheck.data.cpe.Index;
    -46  import org.owasp.dependencycheck.data.nvdcve.CveDB;
    -47  import org.owasp.dependencycheck.dependency.VulnerableSoftware;
    -48  import org.owasp.dependencycheck.utils.DownloadFailedException;
    -49  import org.owasp.dependencycheck.utils.Downloader;
    -50  import org.owasp.dependencycheck.utils.FileUtils;
    -51  import org.owasp.dependencycheck.utils.InvalidSettingException;
    -52  import org.owasp.dependencycheck.utils.Settings;
    -53  import org.xml.sax.SAXException;
    -54  import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
    -55  
    -56  /**
    -57   *
    -58   * @author Jeremy Long (jeremy.long@owasp.org)
    -59   */
    -60  public class DatabaseUpdater implements CachedWebDataSource {
    -61  
    -62      /**
    -63       * The name of the properties file containing the timestamp of the last
    -64       * update.
    -65       */
    -66      private static final String UPDATE_PROPERTIES_FILE = "lastupdated.prop";
    -67      /**
    -68       * The properties file key for the last updated field - used to store the
    -69       * last updated time of the Modified NVD CVE xml file.
    -70       */
    -71      private static final String LAST_UPDATED_MODIFIED = "lastupdated.modified";
    -72      /**
    -73       * Stores the last updated time for each of the NVD CVE files. These
    -74       * timestamps should be updated if we process the modified file within 7
    -75       * days of the last update.
    -76       */
    -77      private static final String LAST_UPDATED_BASE = "lastupdated.";
    -78      /**
    -79       * Modified key word.
    -80       */
    -81      public static final String MODIFIED = "modified";
    -82      /**
    -83       * Reference to the Cve Database.
    -84       */
    -85      private CveDB cveDB = null;
    -86      /**
    -87       * Reference to the Cpe Index.
    -88       */
    -89      private Index cpeIndex = null;
    -90  
    -91      /**
    -92       * <p>Downloads the latest NVD CVE XML file from the web and imports it into
    -93       * the current CVE Database.</p>
    -94       *
    -95       * @throws UpdateException is thrown if there is an error updating the
    -96       * database
    -97       */
    -98      public void update() throws UpdateException {
    -99          try {
    -100             final Map<String, NvdCveUrl> update = updateNeeded();
    -101             int maxUpdates = 0;
    -102             for (NvdCveUrl cve : update.values()) {
    -103                 if (cve.getNeedsUpdate()) {
    -104                     maxUpdates += 1;
    -105                 }
    -106             }
    -107             if (maxUpdates > 3) {
    -108                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -109                         "NVD CVE requires several updates; this could take a couple of minutes.");
    -110             }
    -111             if (maxUpdates > 0) {
    -112                 openDataStores();
    -113             }
    -114             int count = 0;
    -115 
    -116             for (NvdCveUrl cve : update.values()) {
    -117                 if (cve.getNeedsUpdate()) {
    -118                     count += 1;
    -119                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -120                             "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates});
    -121                     URL url = new URL(cve.getUrl());
    -122                     File outputPath = null;
    -123                     File outputPath12 = null;
    -124                     try {
    -125                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -126                                 "Downloading {0}", cve.getUrl());
    -127 
    -128                         outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml");
    -129                         Downloader.fetchFile(url, outputPath, false);
    -130 
    -131                         url = new URL(cve.getOldSchemaVersionUrl());
    -132                         outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml");
    -133                         Downloader.fetchFile(url, outputPath12, false);
    -134 
    -135                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -136                                 "Processing {0}", cve.getUrl());
    -137 
    -138                         importXML(outputPath, outputPath12);
    -139 
    -140                         cveDB.commit();
    -141                         cpeIndex.commit();
    -142 
    -143                         writeLastUpdatedPropertyFile(cve);
    -144 
    -145                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO,
    -146                                 "Completed update {0} of {1}", new Object[]{count, maxUpdates});
    -147                     } catch (FileNotFoundException ex) {
    -148                         throw new UpdateException(ex);
    -149                     } catch (ParserConfigurationException ex) {
    -150                         throw new UpdateException(ex);
    -151                     } catch (SAXException ex) {
    -152                         throw new UpdateException(ex);
    -153                     } catch (IOException ex) {
    -154                         throw new UpdateException(ex);
    -155                     } catch (SQLException ex) {
    -156                         throw new UpdateException(ex);
    -157                     } catch (DatabaseException ex) {
    -158                         throw new UpdateException(ex);
    -159                     } catch (ClassNotFoundException ex) {
    -160                         throw new UpdateException(ex);
    -161                     } finally {
    -162                         boolean deleted = false;
    -163                         try {
    -164                             if (outputPath != null && outputPath.exists()) {
    -165                                 deleted = outputPath.delete();
    -166                             }
    -167                         } finally {
    -168                             if (outputPath != null && (outputPath.exists() || !deleted)) {
    -169                                 outputPath.deleteOnExit();
    -170                             }
    -171                         }
    -172                         try {
    -173                             deleted = false;
    -174                             if (outputPath12 != null && outputPath12.exists()) {
    -175                                 deleted = outputPath12.delete();
    -176                             }
    -177                         } finally {
    -178                             if (outputPath12 != null && (outputPath12.exists() || !deleted)) {
    -179                                 outputPath12.deleteOnExit();
    -180                             }
    -181                         }
    -182                     }
    -183                 }
    -184             }
    -185             if (maxUpdates >= 1) {
    -186                 ensureModifiedIsInLastUpdatedProperties(update);
    -187                 cveDB.cleanupDatabase();
    -188             }
    -189         } catch (MalformedURLException ex) {
    -190             throw new UpdateException(ex);
    -191         } catch (DownloadFailedException ex) {
    -192             throw new UpdateException(ex);
    -193         } finally {
    -194             closeDataStores();
    -195         }
    -196     }
    -197 
    -198     /**
    -199      * Imports the NVD CVE XML File into the Lucene Index.
    -200      *
    -201      * @param file the file containing the NVD CVE XML
    -202      * @param oldVersion contains the file containing the NVD CVE XML 1.2
    -203      * @throws ParserConfigurationException is thrown if there is a parser
    -204      * configuration exception
    -205      * @throws SAXException is thrown if there is a SAXException
    -206      * @throws IOException is thrown if there is a ioexception
    -207      * @throws SQLException is thrown if there is a sql exception
    -208      * @throws DatabaseException is thrown if there is a database exception
    -209      * @throws ClassNotFoundException thrown if the h2 database driver cannot be
    -210      * loaded
    -211      */
    -212     private void importXML(File file, File oldVersion)
    -213             throws ParserConfigurationException, SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException {
    -214 
    -215         final SAXParserFactory factory = SAXParserFactory.newInstance();
    -216         final SAXParser saxParser = factory.newSAXParser();
    -217 
    -218         final NvdCve12Handler cve12Handler = new NvdCve12Handler();
    -219         saxParser.parse(oldVersion, cve12Handler);
    -220         final Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities();
    -221 
    -222         final NvdCve20Handler cve20Handler = new NvdCve20Handler();
    -223         cve20Handler.setCveDB(cveDB);
    -224         cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap);
    -225         cve20Handler.setCpeIndex(cpeIndex);
    -226         saxParser.parse(file, cve20Handler);
    -227     }
    -228 
    -229     /**
    -230      * Closes the CVE and CPE data stores.
    -231      */
    -232     private void closeDataStores() {
    -233         if (cveDB != null) {
    -234             try {
    -235                 cveDB.close();
    -236             } catch (Exception ignore) {
    -237                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, "Error closing the cveDB", ignore);
    -238             }
    -239         }
    -240         if (cpeIndex != null) {
    -241             try {
    -242                 cpeIndex.close();
    -243             } catch (Exception ignore) {
    -244                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, "Error closing the cpeIndex", ignore);
    -245             }
    -246         }
    -247     }
    -248 
    -249     /**
    -250      * Opens the CVE and CPE data stores.
    -251      *
    -252      * @throws UpdateException thrown if a data store cannot be opened
    -253      */
    -254     private void openDataStores() throws UpdateException {
    -255         //open the cve and cpe data stores
    -256         try {
    -257             cveDB = new CveDB();
    -258             cveDB.open();
    -259             cpeIndex = new Index();
    -260             cpeIndex.openIndexWriter();
    -261         } catch (IOException ex) {
    -262             closeDataStores();
    -263             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "IO Error opening databases", ex);
    -264             throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    -265         } catch (SQLException ex) {
    -266             closeDataStores();
    -267             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "SQL Exception opening databases", ex);
    -268             throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    -269         } catch (DatabaseException ex) {
    -270             closeDataStores();
    -271             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Database Exception opening databases", ex);
    -272             throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    -273         } catch (ClassNotFoundException ex) {
    -274             closeDataStores();
    -275             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Class not found exception opening databases", ex);
    -276             throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    -277         }
    -278     }
    -279 
    -280     //<editor-fold defaultstate="collapsed" desc="Code to read/write properties files regarding the last update dates">
    -281     /**
    -282      * Writes a properties file containing the last updated date to the
    -283      * VULNERABLE_CPE directory.
    -284      *
    -285      * @param updatedValue the updated nvdcve entry
    -286      * @throws UpdateException is thrown if there is an update exception
    -287      */
    -288     private void writeLastUpdatedPropertyFile(NvdCveUrl updatedValue) throws UpdateException {
    -289         if (updatedValue == null) {
    -290             return;
    -291         }
    -292         String dir;
    -293         try {
    -294             dir = CveDB.getDataDirectory().getCanonicalPath();
    -295         } catch (IOException ex) {
    -296             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Error updating the databases propterty file.", ex);
    -297             throw new UpdateException("Unable to locate last updated properties file.", ex);
    -298         }
    -299         final File cveProp = new File(dir, UPDATE_PROPERTIES_FILE);
    -300         final Properties prop = new Properties();
    -301         if (cveProp.exists()) {
    -302             FileInputStream in = null;
    -303             try {
    -304                 in = new FileInputStream(cveProp);
    -305                 prop.load(in);
    -306             } catch (Exception ignoreMe) {
    -307                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ignoreMe);
    -308             } finally {
    -309                 if (in != null) {
    -310                     try {
    -311                         in.close();
    -312                     } catch (Exception ignoreMeToo) {
    -313                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ignoreMeToo);
    -314                     }
    -315                 }
    -316             }
    -317 
    -318         }
    -319         prop.put("version", CveDB.DB_SCHEMA_VERSION);
    -320         prop.put(LAST_UPDATED_BASE + updatedValue.getId(), String.valueOf(updatedValue.getTimestamp()));
    -321 
    -322         OutputStream os = null;
    -323         OutputStreamWriter out = null;
    -324         try {
    -325             os = new FileOutputStream(cveProp);
    -326             out = new OutputStreamWriter(os, "UTF-8");
    -327             prop.store(out, dir);
    -328         } catch (FileNotFoundException ex) {
    -329             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
    -330             throw new UpdateException("Unable to find last updated properties file.", ex);
    -331         } catch (IOException ex) {
    -332             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
    -333             throw new UpdateException("Unable to update last updated properties file.", ex);
    -334         } finally {
    -335             if (out != null) {
    -336                 try {
    -337                     out.close();
    -338                 } catch (IOException ex) {
    -339                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
    -340                 }
    -341             }
    -342             if (os != null) {
    -343                 try {
    -344                     os.close();
    -345                 } catch (IOException ex) {
    -346                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
    -347                 }
    -348             }
    -349         }
    -350     }
    -351 
    -352     /**
    -353      * Determines if the index needs to be updated. This is done by fetching the
    -354      * nvd cve meta data and checking the last update date. If the data needs to
    -355      * be refreshed this method will return the NvdCveUrl for the files that
    -356      * need to be updated.
    -357      *
    -358      * @return the NvdCveUrl of the files that need to be updated.
    -359      * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
    -360      * data is incorrect.
    -361      * @throws DownloadFailedException is thrown if there is an error.
    -362      * downloading the nvd cve download data file.
    -363      * @throws UpdateException Is thrown if there is an issue with the last
    -364      * updated properties file.
    -365      */
    -366     public Map<String, NvdCveUrl> updateNeeded() throws MalformedURLException, DownloadFailedException, UpdateException {
    -367 
    -368         Map<String, NvdCveUrl> currentlyPublished;
    -369         try {
    -370             currentlyPublished = retrieveCurrentTimestampsFromWeb();
    -371         } catch (InvalidDataException ex) {
    -372             final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page";
    -373             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, msg, ex);
    -374             throw new DownloadFailedException(msg, ex);
    -375 
    -376         } catch (InvalidSettingException ex) {
    -377             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex);
    -378             throw new DownloadFailedException("Invalid settings", ex);
    -379         }
    -380 
    -381         if (currentlyPublished == null) {
    -382             throw new DownloadFailedException("Unable to retrieve valid timestamp from nvd cve downloads page");
    -383         }
    -384         String dir;
    -385         try {
    -386             dir = CveDB.getDataDirectory().getCanonicalPath();
    -387         } catch (IOException ex) {
    -388             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "CveDB data directory doesn't exist?", ex);
    -389             throw new UpdateException("Unable to locate last updated properties file.", ex);
    -390         }
    -391 
    -392         final File f = new File(dir);
    -393         if (f.exists()) {
    -394             final File cveProp = new File(dir, UPDATE_PROPERTIES_FILE);
    -395             if (cveProp.exists()) {
    -396                 final Properties prop = new Properties();
    -397                 InputStream is = null;
    -398                 try {
    -399                     is = new FileInputStream(cveProp);
    -400                     prop.load(is);
    -401 
    -402                     boolean deleteAndRecreate = false;
    -403                     float version;
    -404 
    -405                     if (prop.getProperty("version") == null) {
    -406                         deleteAndRecreate = true;
    -407                     } else {
    -408                         try {
    -409                             version = Float.parseFloat(prop.getProperty("version"));
    -410                             final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);
    -411                             if (currentVersion > version) {
    -412                                 deleteAndRecreate = true;
    -413                             }
    -414                         } catch (NumberFormatException ex) {
    -415                             deleteAndRecreate = true;
    -416                         }
    -417                     }
    -418                     if (deleteAndRecreate) {
    -419                         Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO, "The database version is old. Rebuilding the database.");
    -420                         is.close();
    -421                         //this is an old version of the lucene index - just delete it
    -422                         FileUtils.delete(f);
    -423 
    -424                         //this importer also updates the CPE index and it is also using an old version
    -425                         final Index cpeId = new Index();
    -426                         final File cpeDir = cpeId.getDataDirectory();
    -427                         FileUtils.delete(cpeDir);
    -428                         return currentlyPublished;
    -429                     }
    -430 
    -431                     final long lastUpdated = Long.parseLong(prop.getProperty(LAST_UPDATED_MODIFIED, "0"));
    -432                     final Date now = new Date();
    -433                     final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);
    -434                     final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002);
    -435                     final int end = Calendar.getInstance().get(Calendar.YEAR);
    -436                     if (lastUpdated == currentlyPublished.get(MODIFIED).timestamp) {
    -437                         currentlyPublished.clear(); //we don't need to update anything.
    -438                     } else if (withinRange(lastUpdated, now.getTime(), days)) {
    -439                         currentlyPublished.get(MODIFIED).setNeedsUpdate(true);
    -440                         for (int i = start; i <= end; i++) {
    -441                             currentlyPublished.get(String.valueOf(i)).setNeedsUpdate(false);
    -442                         }
    -443                     } else { //we figure out which of the several XML files need to be downloaded.
    -444                         currentlyPublished.get(MODIFIED).setNeedsUpdate(false);
    -445                         for (int i = start; i <= end; i++) {
    -446                             final NvdCveUrl cve = currentlyPublished.get(String.valueOf(i));
    -447                             long currentTimestamp = 0;
    -448                             try {
    -449                                 currentTimestamp = Long.parseLong(prop.getProperty(LAST_UPDATED_BASE + String.valueOf(i), "0"));
    -450                             } catch (NumberFormatException ex) {
    -451                                 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated",
    -452                                         LAST_UPDATED_BASE, String.valueOf(i));
    -453                                 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, msg, ex);
    -454                             }
    -455                             if (currentTimestamp == cve.getTimestamp()) {
    -456                                 cve.setNeedsUpdate(false); //they default to true.
    -457                             }
    -458                         }
    -459                     }
    -460                 } catch (FileNotFoundException ex) {
    -461                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
    -462                 } catch (IOException ex) {
    -463                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
    -464                 } catch (NumberFormatException ex) {
    -465                     Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
    -466                 } finally {
    -467                     if (is != null) {
    -468                         try {
    -469                             is.close();
    -470                         } catch (IOException ex) {
    -471                             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, null, ex);
    -472                         }
    -473                     }
    -474                 }
    -475             }
    -476         }
    -477         return currentlyPublished;
    -478     }
    -479 
    -480     /**
    -481      * Determines if the epoch date is within the range specified of the
    -482      * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to
    -483      * get the number of days. If the calculated days is less then the range the
    -484      * date is considered valid.
    -485      *
    -486      * @param date the date to be checked.
    -487      * @param compareTo the date to compare to.
    -488      * @param range the range in days to be considered valid.
    -489      * @return whether or not the date is within the range.
    -490      */
    -491     private boolean withinRange(long date, long compareTo, int range) {
    -492         final double differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0;
    -493         return differenceInDays < range;
    -494     }
    -495 
    -496     /**
    -497      * Retrieves the timestamps from the NVD CVE meta data file.
    -498      *
    -499      * @return the timestamp from the currently published nvdcve downloads page
    -500      * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data
    -501      * is incorrect.
    -502      * @throws DownloadFailedException thrown if there is an error downloading
    -503      * the nvd cve meta data file
    -504      * @throws InvalidDataException thrown if there is an exception parsing the
    -505      * timestamps
    -506      * @throws InvalidSettingException thrown if the settings are invalid
    -507      */
    -508     protected Map<String, NvdCveUrl> retrieveCurrentTimestampsFromWeb()
    -509             throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {
    -510 
    -511         final Map<String, NvdCveUrl> map = new HashMap<String, NvdCveUrl>();
    -512         String retrieveUrl = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL);
    -513 
    -514         NvdCveUrl item = new NvdCveUrl();
    -515         item.setNeedsUpdate(false); //the others default to true, to make life easier later this should default to false.
    -516         item.setId(MODIFIED);
    -517         item.setUrl(retrieveUrl);
    -518         item.setOldSchemaVersionUrl(Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL));
    -519 
    -520         item.timestamp = Downloader.getLastModified(new URL(retrieveUrl));
    -521         map.put(MODIFIED, item);
    -522 
    -523         final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR);
    -524         final int end = Calendar.getInstance().get(Calendar.YEAR);
    -525         final String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0);
    -526         final String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2);
    -527         for (int i = start; i <= end; i++) {
    -528             retrieveUrl = String.format(baseUrl20, i);
    -529             item = new NvdCveUrl();
    -530             item.setId(Integer.toString(i));
    -531             item.setUrl(retrieveUrl);
    -532             item.setOldSchemaVersionUrl(String.format(baseUrl12, i));
    -533             item.setTimestamp(Downloader.getLastModified(new URL(retrieveUrl)));
    -534             map.put(item.id, item);
    -535         }
    -536         return map;
    -537     }
    -538 
    -539     /**
    -540      * Method to double check that the "modified" nvdcve file is listed and has
    -541      * a timestamp in the last updated properties file.
    -542      *
    -543      * @param update a set of updated NvdCveUrl objects
    -544      */
    -545     private void ensureModifiedIsInLastUpdatedProperties(Map<String, NvdCveUrl> update) {
    -546         try {
    -547             writeLastUpdatedPropertyFile(update.get(MODIFIED));
    -548         } catch (UpdateException ex) {
    -549             Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex);
    -550         }
    -551     }
    -552 
    -553     /**
    -554      * A pojo that contains the Url and timestamp of the current NvdCve XML
    -555      * files.
    -556      */
    -557     protected static class NvdCveUrl {
    -558 
    -559         /**
    -560          * an id.
    -561          */
    -562         private String id;
    -563 
    -564         /**
    -565          * Get the value of id.
    -566          *
    -567          * @return the value of id
    -568          */
    -569         public String getId() {
    -570             return id;
    -571         }
    -572 
    -573         /**
    -574          * Set the value of id.
    -575          *
    -576          * @param id new value of id
    -577          */
    -578         public void setId(String id) {
    -579             this.id = id;
    -580         }
    -581         /**
    -582          * a url.
    -583          */
    -584         private String url;
    -585 
    -586         /**
    -587          * Get the value of url.
    -588          *
    -589          * @return the value of url
    -590          */
    -591         public String getUrl() {
    -592             return url;
    -593         }
    -594 
    -595         /**
    -596          * Set the value of url.
    -597          *
    -598          * @param url new value of url
    -599          */
    -600         public void setUrl(String url) {
    -601             this.url = url;
    -602         }
    -603         /**
    -604          * The 1.2 schema URL.
    -605          */
    -606         private String oldSchemaVersionUrl;
    -607 
    -608         /**
    -609          * Get the value of oldSchemaVersionUrl.
    -610          *
    -611          * @return the value of oldSchemaVersionUrl
    -612          */
    -613         public String getOldSchemaVersionUrl() {
    -614             return oldSchemaVersionUrl;
    -615         }
    -616 
    -617         /**
    -618          * Set the value of oldSchemaVersionUrl.
    -619          *
    -620          * @param oldSchemaVersionUrl new value of oldSchemaVersionUrl
    -621          */
    -622         public void setOldSchemaVersionUrl(String oldSchemaVersionUrl) {
    -623             this.oldSchemaVersionUrl = oldSchemaVersionUrl;
    -624         }
    -625         /**
    -626          * a timestamp - epoch time.
    -627          */
    -628         private long timestamp;
    -629 
    -630         /**
    -631          * Get the value of timestamp - epoch time.
    -632          *
    -633          * @return the value of timestamp - epoch time
    -634          */
    -635         public long getTimestamp() {
    -636             return timestamp;
    -637         }
    -638 
    -639         /**
    -640          * Set the value of timestamp - epoch time.
    -641          *
    -642          * @param timestamp new value of timestamp - epoch time
    -643          */
    -644         public void setTimestamp(long timestamp) {
    -645             this.timestamp = timestamp;
    -646         }
    -647         /**
    -648          * indicates whether or not this item should be updated.
    -649          */
    -650         private boolean needsUpdate = true;
    -651 
    -652         /**
    -653          * Get the value of needsUpdate.
    -654          *
    -655          * @return the value of needsUpdate
    -656          */
    -657         public boolean getNeedsUpdate() {
    -658             return needsUpdate;
    -659         }
    -660 
    -661         /**
    -662          * Set the value of needsUpdate.
    -663          *
    -664          * @param needsUpdate new value of needsUpdate
    -665          */
    -666         public void setNeedsUpdate(boolean needsUpdate) {
    -667             this.needsUpdate = needsUpdate;
    -668         }
    -669     }
    -670     //</editor-fold>
    -671 }
    -
    -
    - - diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.html deleted file mode 100644 index 5acc2168b..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve12Handler.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - -NvdCve12Handler xref - - - -
    -
    -1   /*
    -2    * This file is part of dependency-check-core.
    -3    *
    -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    -5    * under the terms of the GNU General Public License as published by the Free
    -6    * Software Foundation, either version 3 of the License, or (at your option) any
    -7    * later version.
    -8    *
    -9    * Dependency-check-core is distributed in the hope that it will be useful, but
    -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    -12   * details.
    -13   *
    -14   * You should have received a copy of the GNU General Public License along with
    -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    -16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    -18   */
    -19  package org.owasp.dependencycheck.data.nvdcve.xml;
    -20  
    -21  import java.util.ArrayList;
    -22  import java.util.HashMap;
    -23  import java.util.List;
    -24  import java.util.Map;
    -25  import org.owasp.dependencycheck.dependency.VulnerableSoftware;
    -26  import org.xml.sax.Attributes;
    -27  import org.xml.sax.SAXException;
    -28  import org.xml.sax.SAXNotSupportedException;
    -29  import org.xml.sax.helpers.DefaultHandler;
    -30  
    -31  /**
    -32   * A SAX Handler that will parse the NVD CVE XML (schema version 1.2). This
    -33   * parses the xml and retrieves a listing of CPEs that have previous versions
    -34   * specified. The previous version information is not in the 2.0 version of the
    -35   * schema and is useful to ensure accurate identification (or at least
    -36   * complete).
    -37   *
    -38   * @author Jeremy Long (jeremy.long@owasp.org)
    -39   */
    -40  public class NvdCve12Handler extends DefaultHandler {
    -41  
    -42      /**
    -43       * the supported schema version.
    -44       */
    -45      private static final String CURRENT_SCHEMA_VERSION = "1.2";
    -46      /**
    -47       * the current vulnerability.
    -48       */
    -49      private String vulnerability;
    -50      /**
    -51       * a list of vulnerable software.
    -52       */
    -53      private List<VulnerableSoftware> software;
    -54      /**
    -55       * the vendor name.
    -56       */
    -57      private String vendor;
    -58      /**
    -59       * the product name.
    -60       */
    -61      private String product;
    -62      /**
    -63       * if the nvd cve should be skipped because it was rejected.
    -64       */
    -65      private boolean skip = false;
    -66      /**
    -67       * flag indicating if there is a previous version.
    -68       */
    -69      private boolean hasPreviousVersion = false;
    -70      /**
    -71       * The current element.
    -72       */
    -73      private final Element current = new Element();
    -74      /**
    -75       * a map of vulnerabilities.
    -76       */
    -77      private Map<String, List<VulnerableSoftware>> vulnerabilities;
    -78  
    -79      /**
    -80       * Get the value of vulnerabilities.
    -81       *
    -82       * @return the value of vulnerabilities
    -83       */
    -84      public Map<String, List<VulnerableSoftware>> getVulnerabilities() {
    -85          return vulnerabilities;
    -86      }
    -87  
    -88      @Override
    -89      public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    -90          current.setNode(qName);
    -91          if (current.isEntryNode()) {
    -92              vendor = null;
    -93              product = null;
    -94              hasPreviousVersion = false;
    -95              final String reject = attributes.getValue("reject");
    -96              skip = "1".equals(reject);
    -97              if (!skip) {
    -98                  vulnerability = attributes.getValue("name");
    -99                  software = new ArrayList<VulnerableSoftware>();
    -100             } else {
    -101                 vulnerability = null;
    -102                 software = null;
    -103             }
    -104         } else if (!skip && current.isProdNode()) {
    -105 
    -106             vendor = attributes.getValue("vendor");
    -107             product = attributes.getValue("name");
    -108         } else if (!skip && current.isVersNode()) {
    -109             final String prev = attributes.getValue("prev");
    -110             if (prev != null && "1".equals(prev)) {
    -111                 hasPreviousVersion = true;
    -112                 final String edition = attributes.getValue("edition");
    -113                 final String num = attributes.getValue("num");
    -114 
    -115                 /*yes yes, this may not actually be an "a" - it could be an OS, etc. but for our
    -116                  purposes this is good enough as we won't use this if we don't find a corresponding "a"
    -117                  in the nvd cve 2.0. */
    -118                 String cpe = "cpe:/a:" + vendor + ":" + product;
    -119                 if (num != null) {
    -120                     cpe += ":" + num;
    -121                 }
    -122                 if (edition != null) {
    -123                     cpe += ":" + edition;
    -124                 }
    -125                 final VulnerableSoftware vs = new VulnerableSoftware();
    -126                 vs.setCpe(cpe);
    -127                 vs.setPreviousVersion(prev);
    -128                 software.add(vs);
    -129             }
    -130         } else if (current.isNVDNode()) {
    -131             final String nvdVer = attributes.getValue("nvd_xml_version");
    -132             if (!CURRENT_SCHEMA_VERSION.equals(nvdVer)) {
    -133                 throw new SAXNotSupportedException("Schema version " + nvdVer + " is not supported");
    -134             }
    -135             vulnerabilities = new HashMap<String, List<VulnerableSoftware>>();
    -136         }
    -137     }
    -138 
    -139     @Override
    -140     public void endElement(String uri, String localName, String qName) throws SAXException {
    -141         current.setNode(qName);
    -142         if (current.isEntryNode()) {
    -143             if (!skip && hasPreviousVersion) {
    -144                 vulnerabilities.put(vulnerability, software);
    -145             }
    -146             vulnerability = null;
    -147             software = null;
    -148         }
    -149     }
    -150 
    -151     // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node">
    -152     /**
    -153      * A simple class to maintain information about the current element while
    -154      * parsing the NVD CVE XML.
    -155      */
    -156     protected static class Element {
    -157 
    -158         /**
    -159          * A node type in the NVD CVE Schema 1.2.
    -160          */
    -161         public static final String NVD = "nvd";
    -162         /**
    -163          * A node type in the NVD CVE Schema 1.2.
    -164          */
    -165         public static final String ENTRY = "entry";
    -166         /**
    -167          * A node type in the NVD CVE Schema 1.2.
    -168          */
    -169         public static final String VULN_SOFTWARE = "vuln_soft";
    -170         /**
    -171          * A node type in the NVD CVE Schema 1.2.
    -172          */
    -173         public static final String PROD = "prod";
    -174         /**
    -175          * A node type in the NVD CVE Schema 1.2.
    -176          */
    -177         public static final String VERS = "vers";
    -178         /**
    -179          * The name of the current node.
    -180          */
    -181         private String node;
    -182 
    -183         /**
    -184          * Gets the value of node.
    -185          *
    -186          * @return the value of node
    -187          */
    -188         public String getNode() {
    -189             return this.node;
    -190         }
    -191 
    -192         /**
    -193          * Sets the value of node.
    -194          *
    -195          * @param node new value of node
    -196          */
    -197         public void setNode(String node) {
    -198             this.node = node;
    -199         }
    -200 
    -201         /**
    -202          * Checks if the handler is at the NVD node.
    -203          *
    -204          * @return true or false
    -205          */
    -206         public boolean isNVDNode() {
    -207             return NVD.equals(node);
    -208         }
    -209 
    -210         /**
    -211          * Checks if the handler is at the ENTRY node.
    -212          *
    -213          * @return true or false
    -214          */
    -215         public boolean isEntryNode() {
    -216             return ENTRY.equals(node);
    -217         }
    -218 
    -219         /**
    -220          * Checks if the handler is at the VULN_SOFTWARE node.
    -221          *
    -222          * @return true or false
    -223          */
    -224         public boolean isVulnSoftwareNode() {
    -225             return VULN_SOFTWARE.equals(node);
    -226         }
    -227 
    -228         /**
    -229          * Checks if the handler is at the PROD node.
    -230          *
    -231          * @return true or false
    -232          */
    -233         public boolean isProdNode() {
    -234             return PROD.equals(node);
    -235         }
    -236 
    -237         /**
    -238          * Checks if the handler is at the VERS node.
    -239          *
    -240          * @return true or false
    -241          */
    -242         public boolean isVersNode() {
    -243             return VERS.equals(node);
    -244         }
    -245     }
    -246     // </editor-fold>
    -247 }
    -
    -
    - - diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.html deleted file mode 100644 index 7de855ad4..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/NvdCve20Handler.html +++ /dev/null @@ -1,528 +0,0 @@ - - - - -NvdCve20Handler xref - - - -
    -
    -1   /*
    -2    * This file is part of dependency-check-core.
    -3    *
    -4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    -5    * under the terms of the GNU General Public License as published by the Free
    -6    * Software Foundation, either version 3 of the License, or (at your option) any
    -7    * later version.
    -8    *
    -9    * Dependency-check-core is distributed in the hope that it will be useful, but
    -10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    -11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    -12   * details.
    -13   *
    -14   * You should have received a copy of the GNU General Public License along with
    -15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    -16   *
    -17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    -18   */
    -19  package org.owasp.dependencycheck.data.nvdcve.xml;
    -20  
    -21  import java.io.IOException;
    -22  import java.util.List;
    -23  import java.util.Map;
    -24  import java.util.logging.Level;
    -25  import java.util.logging.Logger;
    -26  import org.apache.lucene.index.CorruptIndexException;
    -27  import org.owasp.dependencycheck.data.cpe.Index;
    -28  import org.owasp.dependencycheck.data.nvdcve.CveDB;
    -29  import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
    -30  import org.owasp.dependencycheck.dependency.Reference;
    -31  import org.owasp.dependencycheck.dependency.Vulnerability;
    -32  import org.owasp.dependencycheck.dependency.VulnerableSoftware;
    -33  import org.xml.sax.Attributes;
    -34  import org.xml.sax.SAXException;
    -35  import org.xml.sax.SAXNotSupportedException;
    -36  import org.xml.sax.helpers.DefaultHandler;
    -37  
    -38  /**
    -39   * A SAX Handler that will parse the NVD CVE XML (schema version 2.0).
    -40   *
    -41   * @author Jeremy Long (jeremy.long@owasp.org)
    -42   */
    -43  public class NvdCve20Handler extends DefaultHandler {
    -44  
    -45      /**
    -46       * the current supported schema version.
    -47       */
    -48      private static final String CURRENT_SCHEMA_VERSION = "2.0";
    -49      /**
    -50       * the current element.
    -51       */
    -52      private final Element current = new Element();
    -53      /**
    -54       * the text of the node.
    -55       */
    -56      private StringBuilder nodeText;
    -57      /**
    -58       * the vulnerability.
    -59       */
    -60      private Vulnerability vulnerability;
    -61      /**
    -62       * a reference for the cve.
    -63       */
    -64      private Reference reference;
    -65      /**
    -66       * flag indicating whether the application has a cpe.
    -67       */
    -68      private boolean hasApplicationCpe = false;
    -69      /**
    -70       * The total number of entries parsed.
    -71       */
    -72      private int totalNumberOfEntries;
    -73  
    -74      /**
    -75       * Get the value of totalNumberOfEntries.
    -76       *
    -77       * @return the value of totalNumberOfEntries
    -78       */
    -79      public int getTotalNumberOfEntries() {
    -80          return totalNumberOfEntries;
    -81      }
    -82      /**
    -83       * The total number of application entries parsed.
    -84       */
    -85      private int totalNumberOfApplicationEntries;
    -86  
    -87      /**
    -88       * Get the value of totalNumberOfApplicationEntries.
    -89       *
    -90       * @return the value of totalNumberOfApplicationEntries
    -91       */
    -92      public int getTotalNumberOfApplicationEntries() {
    -93          return totalNumberOfApplicationEntries;
    -94      }
    -95  
    -96      @Override
    -97      public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    -98          current.setNode(qName);
    -99          if (current.isEntryNode()) {
    -100             hasApplicationCpe = false;
    -101             vulnerability = new Vulnerability();
    -102             vulnerability.setName(attributes.getValue("id"));
    -103         } else if (current.isVulnProductNode()) {
    -104             nodeText = new StringBuilder(100);
    -105         } else if (current.isVulnReferencesNode()) {
    -106             final String lang = attributes.getValue("xml:lang");
    -107             if ("en".equals(lang)) {
    -108                 reference = new Reference();
    -109             } else {
    -110                 reference = null;
    -111             }
    -112         } else if (reference != null && current.isVulnReferenceNode()) {
    -113             reference.setUrl(attributes.getValue("href"));
    -114             nodeText = new StringBuilder(130);
    -115         } else if (reference != null && current.isVulnSourceNode()) {
    -116             nodeText = new StringBuilder(30);
    -117         } else if (current.isVulnSummaryNode()) {
    -118             nodeText = new StringBuilder(500);
    -119         } else if (current.isNVDNode()) {
    -120             final String nvdVer = attributes.getValue("nvd_xml_version");
    -121             if (!CURRENT_SCHEMA_VERSION.equals(nvdVer)) {
    -122                 throw new SAXNotSupportedException("Schema version " + nvdVer + " is not supported");
    -123             }
    -124         } else if (current.isVulnCWENode()) {
    -125             vulnerability.setCwe(attributes.getValue("id"));
    -126         } else if (current.isCVSSScoreNode()) {
    -127             nodeText = new StringBuilder(5);
    -128         } else if (current.isCVSSAccessVectorNode()) {
    -129             nodeText = new StringBuilder(20);
    -130         } else if (current.isCVSSAccessComplexityNode()) {
    -131             nodeText = new StringBuilder(20);
    -132         } else if (current.isCVSSAuthenticationNode()) {
    -133             nodeText = new StringBuilder(20);
    -134         } else if (current.isCVSSAvailabilityImpactNode()) {
    -135             nodeText = new StringBuilder(20);
    -136         } else if (current.isCVSSConfidentialityImpactNode()) {
    -137             nodeText = new StringBuilder(20);
    -138         } else if (current.isCVSSIntegrityImpactNode()) {
    -139             nodeText = new StringBuilder(20);
    -140         }
    -141     }
    -142 
    -143     @Override
    -144     public void characters(char[] ch, int start, int length) throws SAXException {
    -145         if (nodeText != null) {
    -146             nodeText.append(ch, start, length);
    -147         }
    -148     }
    -149 
    -150     @Override
    -151     public void endElement(String uri, String localName, String qName) throws SAXException {
    -152         current.setNode(qName);
    -153         if (current.isEntryNode()) {
    -154             totalNumberOfEntries += 1;
    -155             if (hasApplicationCpe) {
    -156                 totalNumberOfApplicationEntries += 1;
    -157                 try {
    -158                     saveEntry(vulnerability);
    -159                 } catch (DatabaseException ex) {
    -160                     throw new SAXException(ex);
    -161                 } catch (CorruptIndexException ex) {
    -162                     throw new SAXException(ex);
    -163                 } catch (IOException ex) {
    -164                     throw new SAXException(ex);
    -165                 }
    -166             }
    -167             vulnerability = null;
    -168         } else if (current.isCVSSScoreNode()) {
    -169             try {
    -170                 final float score = Float.parseFloat(nodeText.toString());
    -171                 vulnerability.setCvssScore(score);
    -172             } catch (NumberFormatException ex) {
    -173                 Logger.getLogger(NvdCve20Handler.class.getName()).log(Level.SEVERE, "Error parsing CVSS Score.");
    -174                 Logger.getLogger(NvdCve20Handler.class.getName()).log(Level.FINE, null, ex);
    -175             }
    -176             nodeText = null;
    -177         } else if (current.isCVSSAccessVectorNode()) {
    -178             vulnerability.setCvssAccessVector(nodeText.toString());
    -179             nodeText = null;
    -180         } else if (current.isCVSSAccessComplexityNode()) {
    -181             vulnerability.setCvssAccessComplexity(nodeText.toString());
    -182             nodeText = null;
    -183         } else if (current.isCVSSAuthenticationNode()) {
    -184             vulnerability.setCvssAuthentication(nodeText.toString());
    -185             nodeText = null;
    -186         } else if (current.isCVSSAvailabilityImpactNode()) {
    -187             vulnerability.setCvssAvailabilityImpact(nodeText.toString());
    -188             nodeText = null;
    -189         } else if (current.isCVSSConfidentialityImpactNode()) {
    -190             vulnerability.setCvssConfidentialityImpact(nodeText.toString());
    -191             nodeText = null;
    -192         } else if (current.isCVSSIntegrityImpactNode()) {
    -193             vulnerability.setCvssIntegrityImpact(nodeText.toString());
    -194             nodeText = null;
    -195         } else if (current.isVulnProductNode()) {
    -196             final String cpe = nodeText.toString();
    -197             if (cpe.startsWith("cpe:/a:")) {
    -198                 hasApplicationCpe = true;
    -199                 vulnerability.addVulnerableSoftware(cpe);
    -200             }
    -201             nodeText = null;
    -202         } else if (reference != null && current.isVulnReferencesNode()) {
    -203             vulnerability.addReference(reference);
    -204             reference = null;
    -205         } else if (reference != null && current.isVulnReferenceNode()) {
    -206             reference.setName(nodeText.toString());
    -207             nodeText = null;
    -208         } else if (reference != null && current.isVulnSourceNode()) {
    -209             reference.setSource(nodeText.toString());
    -210             nodeText = null;
    -211         } else if (current.isVulnSummaryNode()) {
    -212             vulnerability.setDescription(nodeText.toString());
    -213             nodeText = null;
    -214         }
    -215     }
    -216     /**
    -217      * the cve database.
    -218      */
    -219     private CveDB cveDB;
    -220 
    -221     /**
    -222      * Sets the cveDB.
    -223      *
    -224      * @param db a reference to the CveDB
    -225      */
    -226     public void setCveDB(CveDB db) {
    -227         cveDB = db;
    -228     }
    -229     /**
    -230      * A list of CVE entries and associated VulnerableSoftware entries that
    -231      * contain previous entries.
    -232      */
    -233     private Map<String, List<VulnerableSoftware>> prevVersionVulnMap;
    -234 
    -235     /**
    -236      * Sets the prevVersionVulnMap.
    -237      *
    -238      * @param map the map of vulnerable software with previous versions being
    -239      * vulnerable
    -240      */
    -241     public void setPrevVersionVulnMap(Map<String, List<VulnerableSoftware>> map) {
    -242         prevVersionVulnMap = map;
    -243     }
    -244 
    -245     /**
    -246      * Saves a vulnerability to the CVE Database. This is a callback method
    -247      * called by the Sax Parser Handler
    -248      * {@link org.owasp.dependencycheck.data.nvdcve.xml.NvdCve20Handler}.
    -249      *
    -250      * @param vuln the vulnerability to store in the database
    -251      * @throws DatabaseException thrown if there is an error writing to the
    -252      * database
    -253      * @throws CorruptIndexException is thrown if the CPE Index is corrupt
    -254      * @throws IOException thrown if there is an IOException with the CPE Index
    -255      */
    -256     public void saveEntry(Vulnerability vuln) throws DatabaseException, CorruptIndexException, IOException {
    -257         if (cveDB == null) {
    -258             return;
    -259         }
    -260         final String cveName = vuln.getName();
    -261         if (prevVersionVulnMap.containsKey(cveName)) {
    -262             final List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName);
    -263             for (VulnerableSoftware vs : vulnSoftware) {
    -264                 vuln.updateVulnerableSoftware(vs);
    -265             }
    -266         }
    -267         for (VulnerableSoftware vs : vuln.getVulnerableSoftware()) {
    -268             if (cpeIndex != null) {
    -269                 cpeIndex.saveEntry(vs);
    -270             }
    -271         }
    -272         cveDB.updateVulnerability(vuln);
    -273     }
    -274     /**
    -275      * the cpe index.
    -276      */
    -277     private Index cpeIndex;
    -278 
    -279     /**
    -280      * Sets the cpe index.
    -281      *
    -282      * @param index the CPE Lucene Index
    -283      */
    -284     void setCpeIndex(Index index) {
    -285         cpeIndex = index;
    -286     }
    -287 
    -288     // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node">
    -289     /**
    -290      * A simple class to maintain information about the current element while
    -291      * parsing the NVD CVE XML.
    -292      */
    -293     protected static class Element {
    -294 
    -295         /**
    -296          * A node type in the NVD CVE Schema 2.0
    -297          */
    -298         public static final String NVD = "nvd";
    -299         /**
    -300          * A node type in the NVD CVE Schema 2.0
    -301          */
    -302         public static final String ENTRY = "entry";
    -303         /**
    -304          * A node type in the NVD CVE Schema 2.0
    -305          */
    -306         public static final String VULN_PRODUCT = "vuln:product";
    -307         /**
    -308          * A node type in the NVD CVE Schema 2.0
    -309          */
    -310         public static final String VULN_REFERENCES = "vuln:references";
    -311         /**
    -312          * A node type in the NVD CVE Schema 2.0
    -313          */
    -314         public static final String VULN_SOURCE = "vuln:source";
    -315         /**
    -316          * A node type in the NVD CVE Schema 2.0
    -317          */
    -318         public static final String VULN_REFERENCE = "vuln:reference";
    -319         /**
    -320          * A node type in the NVD CVE Schema 2.0
    -321          */
    -322         public static final String VULN_SUMMARY = "vuln:summary";
    -323         /**
    -324          * A node type in the NVD CVE Schema 2.0
    -325          */
    -326         public static final String VULN_CWE = "vuln:cwe";
    -327         /**
    -328          * A node type in the NVD CVE Schema 2.0
    -329          */
    -330         public static final String CVSS_SCORE = "cvss:score";
    -331         /**
    -332          * A node type in the NVD CVE Schema 2.0
    -333          */
    -334         public static final String CVSS_ACCESS_VECTOR = "cvss:access-vector";
    -335         /**
    -336          * A node type in the NVD CVE Schema 2.0
    -337          */
    -338         public static final String CVSS_ACCESS_COMPLEXITY = "cvss:access-complexity";
    -339         /**
    -340          * A node type in the NVD CVE Schema 2.0
    -341          */
    -342         public static final String CVSS_AUTHENTICATION = "cvss:authentication";
    -343         /**
    -344          * A node type in the NVD CVE Schema 2.0
    -345          */
    -346         public static final String CVSS_CONFIDENTIALITY_IMPACT = "cvss:confidentiality-impact";
    -347         /**
    -348          * A node type in the NVD CVE Schema 2.0
    -349          */
    -350         public static final String CVSS_INTEGRITY_IMPACT = "cvss:integrity-impact";
    -351         /**
    -352          * A node type in the NVD CVE Schema 2.0
    -353          */
    -354         public static final String CVSS_AVAILABILITY_IMPACT = "cvss:availability-impact";
    -355         /**
    -356          * The current node.
    -357          */
    -358         private String node;
    -359 
    -360         /**
    -361          * Gets the value of node.
    -362          *
    -363          * @return the value of node
    -364          */
    -365         public String getNode() {
    -366             return this.node;
    -367         }
    -368 
    -369         /**
    -370          * Sets the value of node.
    -371          *
    -372          * @param node new value of node
    -373          */
    -374         public void setNode(String node) {
    -375             this.node = node;
    -376         }
    -377 
    -378         /**
    -379          * Checks if the handler is at the NVD node.
    -380          *
    -381          * @return true or false
    -382          */
    -383         public boolean isNVDNode() {
    -384             return NVD.equals(node);
    -385         }
    -386 
    -387         /**
    -388          * Checks if the handler is at the ENTRY node.
    -389          *
    -390          * @return true or false
    -391          */
    -392         public boolean isEntryNode() {
    -393             return ENTRY.equals(node);
    -394         }
    -395 
    -396         /**
    -397          * Checks if the handler is at the VULN_PRODUCT node.
    -398          *
    -399          * @return true or false
    -400          */
    -401         public boolean isVulnProductNode() {
    -402             return VULN_PRODUCT.equals(node);
    -403         }
    -404 
    -405         /**
    -406          * Checks if the handler is at the REFERENCES node.
    -407          *
    -408          * @return true or false
    -409          */
    -410         public boolean isVulnReferencesNode() {
    -411             return VULN_REFERENCES.equals(node);
    -412         }
    -413 
    -414         /**
    -415          * Checks if the handler is at the REFERENCE node.
    -416          *
    -417          * @return true or false
    -418          */
    -419         public boolean isVulnReferenceNode() {
    -420             return VULN_REFERENCE.equals(node);
    -421         }
    -422 
    -423         /**
    -424          * Checks if the handler is at the VULN_SOURCE node.
    -425          *
    -426          * @return true or false
    -427          */
    -428         public boolean isVulnSourceNode() {
    -429             return VULN_SOURCE.equals(node);
    -430         }
    -431 
    -432         /**
    -433          * Checks if the handler is at the VULN_SUMMARY node.
    -434          *
    -435          * @return true or false
    -436          */
    -437         public boolean isVulnSummaryNode() {
    -438             return VULN_SUMMARY.equals(node);
    -439         }
    -440 
    -441         /**
    -442          * Checks if the handler is at the VULN_CWE node.
    -443          *
    -444          * @return true or false
    -445          */
    -446         public boolean isVulnCWENode() {
    -447             return VULN_CWE.equals(node);
    -448         }
    -449 
    -450         /**
    -451          * Checks if the handler is at the CVSS_SCORE node.
    -452          *
    -453          * @return true or false
    -454          */
    -455         public boolean isCVSSScoreNode() {
    -456             return CVSS_SCORE.equals(node);
    -457         }
    -458 
    -459         /**
    -460          * Checks if the handler is at the CVSS_ACCESS_VECTOR node.
    -461          *
    -462          * @return true or false
    -463          */
    -464         public boolean isCVSSAccessVectorNode() {
    -465             return CVSS_ACCESS_VECTOR.equals(node);
    -466         }
    -467 
    -468         /**
    -469          * Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node.
    -470          *
    -471          * @return true or false
    -472          */
    -473         public boolean isCVSSAccessComplexityNode() {
    -474             return CVSS_ACCESS_COMPLEXITY.equals(node);
    -475         }
    -476 
    -477         /**
    -478          * Checks if the handler is at the CVSS_AUTHENTICATION node.
    -479          *
    -480          * @return true or false
    -481          */
    -482         public boolean isCVSSAuthenticationNode() {
    -483             return CVSS_AUTHENTICATION.equals(node);
    -484         }
    -485 
    -486         /**
    -487          * Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node.
    -488          *
    -489          * @return true or false
    -490          */
    -491         public boolean isCVSSConfidentialityImpactNode() {
    -492             return CVSS_CONFIDENTIALITY_IMPACT.equals(node);
    -493         }
    -494 
    -495         /**
    -496          * Checks if the handler is at the CVSS_INTEGRITY_IMPACT node.
    -497          *
    -498          * @return true or false
    -499          */
    -500         public boolean isCVSSIntegrityImpactNode() {
    -501             return CVSS_INTEGRITY_IMPACT.equals(node);
    -502         }
    -503 
    -504         /**
    -505          * Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node.
    -506          *
    -507          * @return true or false
    -508          */
    -509         public boolean isCVSSAvailabilityImpactNode() {
    -510             return CVSS_AVAILABILITY_IMPACT.equals(node);
    -511         }
    -512     }
    -513     // </editor-fold>
    -514 }
    -
    -
    - - diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html deleted file mode 100644 index 6e1b108ef..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/package-frame.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - dependency-check-core 1.0.1 Reference Package org.owasp.dependencycheck.data.nvdcve.xml - - - - -

    - org.owasp.dependencycheck.data.nvdcve.xml -

    - -

    Classes

    - - - - - \ No newline at end of file diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html deleted file mode 100644 index 8c39c8330..000000000 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/package-summary.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - dependency-check-core 1.0.1 Reference Package org.owasp.dependencycheck.data.nvdcve.xml - - - -
    - -
    -
    - -
    - -

    Package org.owasp.dependencycheck.data.nvdcve.xml

    - -
  • - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary
    - DatabaseUpdater -
    - Element -
    - InvalidDataException -
    - NvdCve12Handler -
    - NvdCve20Handler -
    - NvdCveUrl -
    - -
    - -
    -
    - -
    -
    - Copyright © 2012-2013 OWASP. All Rights Reserved. - - \ No newline at end of file diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/package-frame.html index a7744064a..70d430bc5 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/package-summary.html index 1180f1d50..b51018f77 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html new file mode 100644 index 000000000..f9dcb707a --- /dev/null +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html @@ -0,0 +1,302 @@ + + + + +AbstractUpdateTask xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import java.io.File;
    +22  import java.io.IOException;
    +23  import java.net.MalformedURLException;
    +24  import java.sql.SQLException;
    +25  import java.util.List;
    +26  import java.util.Map;
    +27  import java.util.logging.Level;
    +28  import java.util.logging.Logger;
    +29  import javax.xml.parsers.ParserConfigurationException;
    +30  import javax.xml.parsers.SAXParser;
    +31  import javax.xml.parsers.SAXParserFactory;
    +32  import org.owasp.dependencycheck.data.UpdateException;
    +33  import org.owasp.dependencycheck.data.cpe.CpeIndexWriter;
    +34  import org.owasp.dependencycheck.data.nvdcve.CveDB;
    +35  import org.owasp.dependencycheck.utils.FileUtils;
    +36  import org.owasp.dependencycheck.utils.Settings;
    +37  import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
    +38  import org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler;
    +39  import org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler;
    +40  import org.owasp.dependencycheck.dependency.VulnerableSoftware;
    +41  import org.owasp.dependencycheck.utils.DownloadFailedException;
    +42  import org.xml.sax.SAXException;
    +43  
    +44  /**
    +45   * Class responsible for updating the CPE and NVDCVE data stores.
    +46   *
    +47   * @author Jeremy Long (jeremy.long@owasp.org)
    +48   */
    +49  public abstract class AbstractUpdateTask implements UpdateTask {
    +50  
    +51      /**
    +52       * Initializes the AbstractUpdateTask.
    +53       *
    +54       * @param properties information about the data store
    +55       * @throws MalformedURLException thrown if the configuration contains a
    +56       * malformed url
    +57       * @throws DownloadFailedException thrown if the timestamp on a file cannot
    +58       * be checked
    +59       * @throws UpdateException thrown if the update fails
    +60       */
    +61      public AbstractUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException {
    +62          this.properties = properties;
    +63          this.updateable = updatesNeeded();
    +64      }
    +65      /**
    +66       * A collection of updateable NVD CVE items.
    +67       */
    +68      private Updateable updateable;
    +69      /**
    +70       * Utility to read and write meta-data about the data.
    +71       */
    +72      private DataStoreMetaInfo properties = null;
    +73  
    +74      /**
    +75       * Returns the data store properties.
    +76       *
    +77       * @return the data store properties
    +78       */
    +79      protected DataStoreMetaInfo getProperties() {
    +80          return properties;
    +81      }
    +82      /**
    +83       * Reference to the Cve Database.
    +84       */
    +85      private CveDB cveDB = null;
    +86  
    +87      /**
    +88       * Returns the CveDB.
    +89       *
    +90       * @return the CveDB
    +91       */
    +92      protected CveDB getCveDB() {
    +93          return cveDB;
    +94      }
    +95      /**
    +96       * Reference to the Cpe Index.
    +97       */
    +98      private CpeIndexWriter cpeIndex = null;
    +99  
    +100     /**
    +101      * Returns the CpeIndex.
    +102      *
    +103      * @return the CpeIndex
    +104      */
    +105     protected CpeIndexWriter getCpeIndex() {
    +106         return cpeIndex;
    +107     }
    +108 
    +109     /**
    +110      * Gets whether or not an update is needed.
    +111      *
    +112      * @return true or false depending on whether an update is needed
    +113      */
    +114     public boolean isUpdateNeeded() {
    +115         return updateable.isUpdateNeeded();
    +116     }
    +117 
    +118     /**
    +119      * Gets the updateable NVD CVE Entries.
    +120      *
    +121      * @return an Updateable object containing the NVD CVE entries
    +122      */
    +123     protected Updateable getUpdateable() {
    +124         return updateable;
    +125     }
    +126 
    +127     /**
    +128      * Determines if the index needs to be updated.
    +129      *
    +130      * @return a collection of updateable resources.
    +131      * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
    +132      * data is incorrect.
    +133      * @throws DownloadFailedException is thrown if there is an error.
    +134      * downloading the NVD CVE download data file.
    +135      * @throws UpdateException Is thrown if there is an issue with the last
    +136      * updated properties file.
    +137      */
    +138     protected abstract Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException;
    +139 
    +140     /**
    +141      * <p>Updates the data store to the latest version.</p>
    +142      *
    +143      * @throws UpdateException is thrown if there is an error updating the
    +144      * database
    +145      */
    +146     public abstract void update() throws UpdateException;
    +147     /**
    +148      * A flag indicating whether or not the current data store should be
    +149      * deleted.
    +150      */
    +151     private boolean deleteAndRecreate = false;
    +152 
    +153     /**
    +154      * Get the value of deleteAndRecreate.
    +155      *
    +156      * @return the value of deleteAndRecreate
    +157      */
    +158     public boolean shouldDeleteAndRecreate() {
    +159         return deleteAndRecreate;
    +160     }
    +161 
    +162     /**
    +163      * Set the value of deleteAndRecreate.
    +164      *
    +165      * @param deleteAndRecreate new value of deleteAndRecreate
    +166      */
    +167     protected void setDeleteAndRecreate(boolean deleteAndRecreate) {
    +168         this.deleteAndRecreate = deleteAndRecreate;
    +169     }
    +170 
    +171     /**
    +172      * Deletes the existing data directories.
    +173      *
    +174      * @throws IOException thrown if the directory cannot be deleted
    +175      */
    +176     protected void deleteExistingData() throws IOException {
    +177         File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY);
    +178         if (data.exists()) {
    +179             FileUtils.delete(data);
    +180         }
    +181         data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY);
    +182         if (data.exists()) {
    +183             FileUtils.delete(data);
    +184         }
    +185         data = DataStoreMetaInfo.getPropertiesFile();
    +186         if (data.exists()) {
    +187             FileUtils.delete(data);
    +188         }
    +189     }
    +190 
    +191     /**
    +192      * Closes the CVE and CPE data stores.
    +193      */
    +194     protected void closeDataStores() {
    +195         if (cveDB != null) {
    +196             try {
    +197                 cveDB.close();
    +198             } catch (Exception ignore) {
    +199                 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINEST, "Error closing the cveDB", ignore);
    +200             }
    +201         }
    +202         if (cpeIndex != null) {
    +203             try {
    +204                 cpeIndex.close();
    +205             } catch (Exception ignore) {
    +206                 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINEST, "Error closing the cpeIndex", ignore);
    +207             }
    +208         }
    +209     }
    +210 
    +211     /**
    +212      * Opens the CVE and CPE data stores.
    +213      *
    +214      * @throws UpdateException thrown if a data store cannot be opened
    +215      */
    +216     protected void openDataStores() throws UpdateException {
    +217         //open the cve and cpe data stores
    +218         try {
    +219             cveDB = new CveDB();
    +220             cveDB.open();
    +221             cpeIndex = new CpeIndexWriter();
    +222             cpeIndex.open();
    +223         } catch (IOException ex) {
    +224             closeDataStores();
    +225             Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "IO Error opening databases", ex);
    +226             throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    +227         } catch (SQLException ex) {
    +228             closeDataStores();
    +229             Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "SQL Exception opening databases", ex);
    +230             throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    +231         } catch (DatabaseException ex) {
    +232             closeDataStores();
    +233             Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "Database Exception opening databases", ex);
    +234             throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    +235         } catch (ClassNotFoundException ex) {
    +236             closeDataStores();
    +237             Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "Class not found exception opening databases", ex);
    +238             throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details.");
    +239         }
    +240     }
    +241 
    +242     /**
    +243      * Determines if the epoch date is within the range specified of the
    +244      * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to
    +245      * get the number of days. If the calculated days is less then the range the
    +246      * date is considered valid.
    +247      *
    +248      * @param date the date to be checked.
    +249      * @param compareTo the date to compare to.
    +250      * @param range the range in days to be considered valid.
    +251      * @return whether or not the date is within the range.
    +252      */
    +253     protected boolean withinRange(long date, long compareTo, int range) {
    +254         final double differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0;
    +255         return differenceInDays < range;
    +256     }
    +257 
    +258     /**
    +259      * Imports the NVD CVE XML File into the Lucene Index.
    +260      *
    +261      * @param file the file containing the NVD CVE XML
    +262      * @param oldVersion contains the file containing the NVD CVE XML 1.2
    +263      * @throws ParserConfigurationException is thrown if there is a parser
    +264      * configuration exception
    +265      * @throws SAXException is thrown if there is a SAXException
    +266      * @throws IOException is thrown if there is a IO Exception
    +267      * @throws SQLException is thrown if there is a SQL exception
    +268      * @throws DatabaseException is thrown if there is a database exception
    +269      * @throws ClassNotFoundException thrown if the h2 database driver cannot be
    +270      * loaded
    +271      */
    +272     protected void importXML(File file, File oldVersion)
    +273             throws ParserConfigurationException, SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException {
    +274 
    +275         final SAXParserFactory factory = SAXParserFactory.newInstance();
    +276         final SAXParser saxParser = factory.newSAXParser();
    +277 
    +278         final NvdCve12Handler cve12Handler = new NvdCve12Handler();
    +279         saxParser.parse(oldVersion, cve12Handler);
    +280         final Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities();
    +281 
    +282         final NvdCve20Handler cve20Handler = new NvdCve20Handler();
    +283         cve20Handler.setCveDB(cveDB);
    +284         cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap);
    +285         cve20Handler.setCpeIndex(cpeIndex);
    +286         saxParser.parse(file, cve20Handler);
    +287     }
    +288 }
    +
    +
    + + diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/BatchUpdateTask.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/BatchUpdateTask.html new file mode 100644 index 000000000..3e253aa39 --- /dev/null +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/BatchUpdateTask.html @@ -0,0 +1,284 @@ + + + + +BatchUpdateTask xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import org.owasp.dependencycheck.data.nvdcve.InvalidDataException;
    +22  import java.io.File;
    +23  import java.io.IOException;
    +24  import java.net.MalformedURLException;
    +25  import java.net.URISyntaxException;
    +26  import java.net.URL;
    +27  import java.util.Calendar;
    +28  import java.util.Date;
    +29  import java.util.logging.Level;
    +30  import java.util.logging.Logger;
    +31  import org.owasp.dependencycheck.data.UpdateException;
    +32  import org.owasp.dependencycheck.data.nvdcve.CveDB;
    +33  import org.owasp.dependencycheck.utils.DownloadFailedException;
    +34  import org.owasp.dependencycheck.utils.Downloader;
    +35  import org.owasp.dependencycheck.utils.FileUtils;
    +36  import org.owasp.dependencycheck.utils.Settings;
    +37  import org.owasp.dependencycheck.utils.InvalidSettingException;
    +38  import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.BATCH;
    +39  import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED;
    +40  
    +41  /**
    +42   * Class responsible for updating the CPE and NVDCVE data stores.
    +43   *
    +44   * @author Jeremy Long (jeremy.long@owasp.org)
    +45   */
    +46  public class BatchUpdateTask extends AbstractUpdateTask {
    +47  
    +48      /**
    +49       * Constructs a new BatchUpdateTask.
    +50       *
    +51       * @param properties information about the data store
    +52       * @throws MalformedURLException thrown if a configured URL is malformed
    +53       * @throws DownloadFailedException thrown if a timestamp cannot be checked
    +54       * on a configured URL
    +55       * @throws UpdateException thrown if there is an exception generating the
    +56       * update task
    +57       */
    +58      public BatchUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException {
    +59          super(properties);
    +60      }
    +61      /**
    +62       * A flag indicating whether or not the batch update should be performed.
    +63       */
    +64      private boolean doBatchUpdate;
    +65  
    +66      /**
    +67       * Get the value of doBatchUpdate
    +68       *
    +69       * @return the value of doBatchUpdate
    +70       */
    +71      protected boolean isDoBatchUpdate() {
    +72          return doBatchUpdate;
    +73      }
    +74  
    +75      /**
    +76       * Set the value of doBatchUpdate
    +77       *
    +78       * @param doBatchUpdate new value of doBatchUpdate
    +79       */
    +80      protected void setDoBatchUpdate(boolean doBatchUpdate) {
    +81          this.doBatchUpdate = doBatchUpdate;
    +82      }
    +83  
    +84      /**
    +85       * <p>Downloads the latest NVD CVE XML file from the web and imports it into
    +86       * the current CVE Database.</p>
    +87       *
    +88       * @throws UpdateException is thrown if there is an error updating the
    +89       * database
    +90       */
    +91      @Override
    +92      public void update() throws UpdateException {
    +93          if (getProperties().isBatchUpdateMode() && doBatchUpdate) {
    +94              final String batchSrc = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL);
    +95              File tmp = null;
    +96              try {
    +97                  deleteExistingData();
    +98                  final File dataDirectory = CveDB.getDataDirectory().getParentFile();
    +99                  final URL batchUrl = new URL(batchSrc);
    +100                 if ("file".equals(batchUrl.getProtocol())) {
    +101                     try {
    +102                         tmp = new File(batchUrl.toURI());
    +103                     } catch (URISyntaxException ex) {
    +104                         final String msg = String.format("Invalid batch update URI: %s", batchSrc);
    +105                         throw new UpdateException(msg, ex);
    +106                     }
    +107                 } else if ("http".equals(batchUrl.getProtocol())
    +108                         || "https".equals(batchUrl.getProtocol())) {
    +109                     tmp = File.createTempFile("batch_", ".zip");
    +110                     Downloader.fetchFile(batchUrl, tmp);
    +111                 }
    +112                 //TODO add FTP?
    +113                 FileUtils.extractFiles(tmp, dataDirectory);
    +114 
    +115             } catch (IOException ex) {
    +116                 final String msg = String.format("IO Exception Occured performing batch update using: %s", batchSrc);
    +117                 throw new UpdateException(msg, ex);
    +118             } finally {
    +119                 if (tmp != null && !tmp.delete()) {
    +120                     tmp.deleteOnExit();
    +121                 }
    +122             }
    +123         }
    +124     }
    +125 
    +126     /**
    +127      * Determines if the index needs to be updated. This is done by fetching the
    +128      * NVD CVE meta data and checking the last update date. If the data needs to
    +129      * be refreshed this method will return the NvdCveUrl for the files that
    +130      * need to be updated.
    +131      *
    +132      * @return the collection of files that need to be updated
    +133      * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
    +134      * data is incorrect
    +135      * @throws DownloadFailedException is thrown if there is an error.
    +136      * downloading the NVD CVE download data file
    +137      * @throws UpdateException Is thrown if there is an issue with the last
    +138      * updated properties file
    +139      */
    +140     @Override
    +141     public Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException {
    +142         Updateable updates = null;
    +143         try {
    +144             updates = retrieveCurrentTimestampsFromWeb();
    +145         } catch (InvalidDataException ex) {
    +146             final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page";
    +147             Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, msg, ex);
    +148             throw new DownloadFailedException(msg, ex);
    +149         } catch (InvalidSettingException ex) {
    +150             Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex);
    +151             throw new DownloadFailedException("Invalid settings", ex);
    +152         }
    +153 
    +154         if (updates == null) {
    +155             throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data");
    +156         }
    +157         final DataStoreMetaInfo properties = getProperties();
    +158         if (!properties.isEmpty()) {
    +159             try {
    +160                 boolean deleteAndRecreate = false;
    +161                 float version;
    +162 
    +163                 if (properties.getProperty("version") == null) {
    +164                     deleteAndRecreate = true;
    +165                 } else {
    +166                     try {
    +167                         version = Float.parseFloat(properties.getProperty("version"));
    +168                         final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);
    +169                         if (currentVersion > version) {
    +170                             deleteAndRecreate = true;
    +171                         }
    +172                     } catch (NumberFormatException ex) {
    +173                         deleteAndRecreate = true;
    +174                     }
    +175                 }
    +176 
    +177                 final NvdCveInfo batchInfo = updates.get(BATCH);
    +178                 if (properties.isBatchUpdateMode() && batchInfo != null) {
    +179                     final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.BATCH, "0"));
    +180                     if (lastUpdated != batchInfo.getTimestamp()) {
    +181                         deleteAndRecreate = true;
    +182                     }
    +183                 }
    +184 
    +185                 if (deleteAndRecreate) {
    +186                     setDoBatchUpdate(properties.isBatchUpdateMode());
    +187                     try {
    +188                         deleteExistingData();
    +189                     } catch (IOException ex) {
    +190                         final String msg = "Unable to delete existing data";
    +191                         Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.WARNING, msg);
    +192                         Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, null, ex);
    +193                     }
    +194                     return updates;
    +195                 }
    +196 
    +197                 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0"));
    +198                 final Date now = new Date();
    +199                 final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);
    +200                 final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002);
    +201                 final int end = Calendar.getInstance().get(Calendar.YEAR);
    +202                 if (lastUpdated == updates.get(MODIFIED).getTimestamp()) {
    +203                     updates.clear(); //we don't need to update anything.
    +204                     setDoBatchUpdate(properties.isBatchUpdateMode());
    +205                 } else if (withinRange(lastUpdated, now.getTime(), days)) {
    +206                     updates.get(MODIFIED).setNeedsUpdate(true);
    +207                     if (properties.isBatchUpdateMode()) {
    +208                         setDoBatchUpdate(false);
    +209                     } else {
    +210                         for (int i = start; i <= end; i++) {
    +211                             updates.get(String.valueOf(i)).setNeedsUpdate(false);
    +212                         }
    +213                     }
    +214                 } else if (properties.isBatchUpdateMode()) {
    +215                     updates.get(MODIFIED).setNeedsUpdate(true);
    +216                     setDoBatchUpdate(true);
    +217                 } else { //we figure out which of the several XML files need to be downloaded.
    +218                     updates.get(MODIFIED).setNeedsUpdate(false);
    +219                     for (int i = start; i <= end; i++) {
    +220                         final NvdCveInfo cve = updates.get(String.valueOf(i));
    +221                         long currentTimestamp = 0;
    +222                         try {
    +223                             currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + String.valueOf(i), "0"));
    +224                         } catch (NumberFormatException ex) {
    +225                             final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated",
    +226                                     DataStoreMetaInfo.LAST_UPDATED_BASE, String.valueOf(i));
    +227                             Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, msg, ex);
    +228                         }
    +229                         if (currentTimestamp == cve.getTimestamp()) {
    +230                             cve.setNeedsUpdate(false); //they default to true.
    +231                         }
    +232                     }
    +233                 }
    +234             } catch (NumberFormatException ex) {
    +235                 final String msg = "An invalid schema version or timestamp exists in the data.properties file.";
    +236                 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.WARNING, msg);
    +237                 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, null, ex);
    +238                 setDoBatchUpdate(properties.isBatchUpdateMode());
    +239             }
    +240         }
    +241         return updates;
    +242     }
    +243 
    +244     /**
    +245      * Retrieves the timestamps from the NVD CVE meta data file.
    +246      *
    +247      * @return the timestamp from the currently published nvdcve downloads page
    +248      * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data
    +249      * is incorrect.
    +250      * @throws DownloadFailedException thrown if there is an error downloading
    +251      * the nvd cve meta data file
    +252      * @throws InvalidDataException thrown if there is an exception parsing the
    +253      * timestamps
    +254      * @throws InvalidSettingException thrown if the settings are invalid
    +255      */
    +256     private Updateable retrieveCurrentTimestampsFromWeb()
    +257             throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {
    +258         final Updateable updates = new Updateable();
    +259         updates.add(BATCH, Settings.getString(Settings.KEYS.BATCH_UPDATE_URL),
    +260                 null, false);
    +261 
    +262         final String url = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL, "");
    +263         if (!url.isEmpty()) {
    +264             updates.add(MODIFIED, url,
    +265                     Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL),
    +266                     false);
    +267         }
    +268         return updates;
    +269     }
    +270 }
    +
    +
    + + diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DatabaseUpdater.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DatabaseUpdater.html index 1b97fc5a5..9fbf9086d 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DatabaseUpdater.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DatabaseUpdater.html @@ -28,558 +28,103 @@ 18 */ 19 package org.owasp.dependencycheck.data.update; 20 -21 import org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler; -22 import org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler; -23 import org.owasp.dependencycheck.data.nvdcve.InvalidDataException; -24 import java.io.File; -25 import java.io.FileNotFoundException; -26 import java.io.IOException; -27 import javax.xml.parsers.ParserConfigurationException; -28 import org.xml.sax.SAXException; -29 import org.owasp.dependencycheck.data.CachedWebDataSource; -30 import java.net.MalformedURLException; -31 import java.net.URISyntaxException; -32 import java.net.URL; -33 import java.sql.SQLException; -34 import java.util.Calendar; -35 import java.util.Date; -36 import java.util.List; -37 import java.util.Map; -38 import java.util.TreeMap; -39 import java.util.logging.Level; -40 import java.util.logging.Logger; -41 import javax.xml.parsers.SAXParser; -42 import javax.xml.parsers.SAXParserFactory; -43 import org.owasp.dependencycheck.data.UpdateException; -44 import org.owasp.dependencycheck.data.cpe.CpeIndexWriter; -45 import org.owasp.dependencycheck.data.nvdcve.CveDB; -46 import org.owasp.dependencycheck.dependency.VulnerableSoftware; -47 import org.owasp.dependencycheck.utils.DownloadFailedException; -48 import org.owasp.dependencycheck.utils.Downloader; -49 import org.owasp.dependencycheck.utils.FileUtils; -50 import org.owasp.dependencycheck.utils.Settings; -51 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; -52 import org.owasp.dependencycheck.utils.InvalidSettingException; -53 import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.BATCH; -54 import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED; -55 -56 /** -57 * Class responsible for updating the CPE and NVDCVE data stores. -58 * -59 * @author Jeremy Long (jeremy.long@owasp.org) -60 */ -61 public class DatabaseUpdater implements CachedWebDataSource { -62 -63 /** -64 * Utility to read and write meta-data about the data. -65 */ -66 private DataStoreMetaInfo properties = null; -67 /** -68 * Reference to the Cve Database. -69 */ -70 private CveDB cveDB = null; -71 /** -72 * Reference to the Cpe Index. -73 */ -74 private CpeIndexWriter cpeIndex = null; -75 /** -76 * A flag indicating whether or not the batch update should be performed. -77 */ -78 private boolean doBatchUpdate; -79 -80 /** -81 * Get the value of doBatchUpdate -82 * -83 * @return the value of doBatchUpdate -84 */ -85 protected boolean isDoBatchUpdate() { -86 return doBatchUpdate; -87 } -88 -89 /** -90 * Set the value of doBatchUpdate -91 * -92 * @param doBatchUpdate new value of doBatchUpdate -93 */ -94 protected void setDoBatchUpdate(boolean doBatchUpdate) { -95 this.doBatchUpdate = doBatchUpdate; +21 import java.io.File; +22 import java.io.IOException; +23 import org.owasp.dependencycheck.data.CachedWebDataSource; +24 import java.net.MalformedURLException; +25 import java.util.logging.Level; +26 import java.util.logging.Logger; +27 import org.owasp.dependencycheck.concurrency.DirectoryLockException; +28 import org.owasp.dependencycheck.concurrency.DirectorySpinLock; +29 import org.owasp.dependencycheck.concurrency.InvalidDirectoryException; +30 import org.owasp.dependencycheck.data.UpdateException; +31 import org.owasp.dependencycheck.utils.DownloadFailedException; +32 import org.owasp.dependencycheck.utils.FileUtils; +33 import org.owasp.dependencycheck.utils.Settings; +34 +35 /** +36 * Class responsible for updating the CPE and NVDCVE data stores. +37 * +38 * @author Jeremy Long (jeremy.long@owasp.org) +39 */ +40 public class DatabaseUpdater implements CachedWebDataSource { +41 +42 /** +43 * <p>Downloads the latest NVD CVE XML file from the web and imports it into +44 * the current CVE Database.</p> +45 * +46 * @throws UpdateException is thrown if there is an error updating the +47 * database +48 */ +49 @Override +50 public void update() throws UpdateException { +51 final File dataDir = Settings.getFile(Settings.KEYS.DATA_DIRECTORY); +52 DirectorySpinLock lock = null; +53 try { +54 lock = new DirectorySpinLock(dataDir); +55 } catch (InvalidDirectoryException ex) { +56 throw new UpdateException("Unable to obtain lock on the data directory", ex); +57 } catch (DirectoryLockException ex) { +58 throw new UpdateException("Unable to obtain exclusive lock on the data directory", ex); +59 } +60 +61 try { +62 lock.obtainSharedLock(); +63 final UpdateTask task = UpdateTaskFactory.getUpdateTask(); +64 +65 +66 if (task.isUpdateNeeded()) { +67 lock.release(); +68 lock.obtainExclusiveLock(); +69 if (task.shouldDeleteAndRecreate()) { +70 try { +71 deleteExistingData(); +72 } catch (IOException ex) { +73 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, "Unable to delete the existing data directory"); +74 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); +75 } +76 } +77 task.update(); +78 } +79 } catch (DirectoryLockException ex) { +80 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, +81 "Unable to obtain lock on data directory, unable to update the data to use the most current data."); +82 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); +83 } catch (MalformedURLException ex) { +84 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, +85 "NVD CVE properties files contain an invalid URL, unable to update the data to use the most current data."); +86 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); +87 } catch (DownloadFailedException ex) { +88 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, +89 "Unable to download the NVD CVE data, unable to update the data to use the most current data."); +90 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); +91 } finally { +92 if (lock != null) { +93 lock.release(); +94 } +95 } 96 } 97 98 /** -99 * <p>Downloads the latest NVD CVE XML file from the web and imports it into -100 * the current CVE Database.</p> -101 * -102 * @throws UpdateException is thrown if there is an error updating the -103 * database -104 */ -105 @Override -106 public void update() throws UpdateException { -107 doBatchUpdate = false; -108 properties = new DataStoreMetaInfo(); -109 try { -110 final Map<String, NvdCveInfo> update = updateNeeded(); -111 int maxUpdates = 0; -112 for (NvdCveInfo cve : update.values()) { -113 if (cve.getNeedsUpdate()) { -114 maxUpdates += 1; -115 } -116 } -117 if (maxUpdates > 3 && !properties.isBatchUpdateMode()) { -118 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO, -119 "NVD CVE requires several updates; this could take a couple of minutes."); -120 } -121 if (maxUpdates > 0 && !isDoBatchUpdate()) { -122 openDataStores(); -123 } -124 -125 if (properties.isBatchUpdateMode() && isDoBatchUpdate()) { -126 try { -127 performBatchUpdate(); -128 openDataStores(); -129 } catch (IOException ex) { -130 throw new UpdateException("Unable to perform batch update", ex); -131 } -132 } -133 -134 int count = 0; -135 for (NvdCveInfo cve : update.values()) { -136 if (cve.getNeedsUpdate()) { -137 count += 1; -138 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO, -139 "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates}); -140 URL url = new URL(cve.getUrl()); -141 File outputPath = null; -142 File outputPath12 = null; -143 try { -144 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO, -145 "Downloading {0}", cve.getUrl()); -146 outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml"); -147 Downloader.fetchFile(url, outputPath); -148 -149 url = new URL(cve.getOldSchemaVersionUrl()); -150 outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml"); -151 Downloader.fetchFile(url, outputPath12); -152 -153 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO, -154 "Processing {0}", cve.getUrl()); -155 -156 importXML(outputPath, outputPath12); -157 -158 cveDB.commit(); -159 cpeIndex.commit(); -160 -161 properties.save(cve); -162 -163 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.INFO, -164 "Completed update {0} of {1}", new Object[]{count, maxUpdates}); -165 } catch (FileNotFoundException ex) { -166 throw new UpdateException(ex); -167 } catch (ParserConfigurationException ex) { -168 throw new UpdateException(ex); -169 } catch (SAXException ex) { -170 throw new UpdateException(ex); -171 } catch (IOException ex) { -172 throw new UpdateException(ex); -173 } catch (SQLException ex) { -174 throw new UpdateException(ex); -175 } catch (DatabaseException ex) { -176 throw new UpdateException(ex); -177 } catch (ClassNotFoundException ex) { -178 throw new UpdateException(ex); -179 } finally { -180 boolean deleted = false; -181 try { -182 if (outputPath != null && outputPath.exists()) { -183 deleted = outputPath.delete(); -184 } -185 } finally { -186 if (outputPath != null && (outputPath.exists() || !deleted)) { -187 outputPath.deleteOnExit(); -188 } -189 } -190 try { -191 deleted = false; -192 if (outputPath12 != null && outputPath12.exists()) { -193 deleted = outputPath12.delete(); -194 } -195 } finally { -196 if (outputPath12 != null && (outputPath12.exists() || !deleted)) { -197 outputPath12.deleteOnExit(); -198 } -199 } -200 } -201 } -202 } -203 if (maxUpdates >= 1) { //ensure the modified file date gets written -204 properties.save(update.get(MODIFIED)); -205 cveDB.cleanupDatabase(); -206 } -207 if (update.get(BATCH) != null) { -208 properties.save(update.get(BATCH)); -209 } -210 } catch (MalformedURLException ex) { -211 throw new UpdateException(ex); -212 } catch (DownloadFailedException ex) { -213 throw new UpdateException(ex); -214 } finally { -215 closeDataStores(); -216 } -217 } -218 -219 /** -220 * Imports the NVD CVE XML File into the Lucene Index. -221 * -222 * @param file the file containing the NVD CVE XML -223 * @param oldVersion contains the file containing the NVD CVE XML 1.2 -224 * @throws ParserConfigurationException is thrown if there is a parser -225 * configuration exception -226 * @throws SAXException is thrown if there is a SAXException -227 * @throws IOException is thrown if there is a IO Exception -228 * @throws SQLException is thrown if there is a SQL exception -229 * @throws DatabaseException is thrown if there is a database exception -230 * @throws ClassNotFoundException thrown if the h2 database driver cannot be -231 * loaded -232 */ -233 private void importXML(File file, File oldVersion) -234 throws ParserConfigurationException, SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException { -235 -236 final SAXParserFactory factory = SAXParserFactory.newInstance(); -237 final SAXParser saxParser = factory.newSAXParser(); -238 -239 final NvdCve12Handler cve12Handler = new NvdCve12Handler(); -240 saxParser.parse(oldVersion, cve12Handler); -241 final Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities(); -242 -243 final NvdCve20Handler cve20Handler = new NvdCve20Handler(); -244 cve20Handler.setCveDB(cveDB); -245 cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap); -246 cve20Handler.setCpeIndex(cpeIndex); -247 saxParser.parse(file, cve20Handler); -248 } -249 -250 /** -251 * Deletes the existing data directories. -252 * -253 * @throws IOException thrown if the directory cannot be deleted -254 */ -255 protected void deleteExistingData() throws IOException { -256 File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY); -257 if (data.exists()) { -258 FileUtils.delete(data); -259 } -260 data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY); -261 if (data.exists()) { -262 FileUtils.delete(data); -263 } -264 data = DataStoreMetaInfo.getPropertiesFile(); -265 if (data.exists()) { -266 FileUtils.delete(data); -267 } -268 } -269 -270 /** -271 * Performs the batch update based on the configured batch update URL. -272 * -273 * @throws UpdateException thrown if there is an exception during the update -274 * process -275 */ -276 private void performBatchUpdate() throws UpdateException { -277 if (properties.isBatchUpdateMode() && doBatchUpdate) { -278 final String batchSrc = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL); -279 File tmp = null; -280 try { -281 deleteExistingData(); -282 final File dataDirectory = CveDB.getDataDirectory().getParentFile(); -283 final URL batchUrl = new URL(batchSrc); -284 if ("file".equals(batchUrl.getProtocol())) { -285 try { -286 tmp = new File(batchUrl.toURI()); -287 } catch (URISyntaxException ex) { -288 final String msg = String.format("Invalid batch update URI: %s", batchSrc); -289 throw new UpdateException(msg, ex); -290 } -291 } else if ("http".equals(batchUrl.getProtocol()) -292 || "https".equals(batchUrl.getProtocol())) { -293 tmp = File.createTempFile("batch_", ".zip"); -294 Downloader.fetchFile(batchUrl, tmp); -295 } -296 //TODO add FTP? -297 FileUtils.extractFiles(tmp, dataDirectory); -298 -299 } catch (IOException ex) { -300 final String msg = String.format("IO Exception Occured performing batch update using: %s", batchSrc); -301 throw new UpdateException(msg, ex); -302 } finally { -303 if (tmp != null && !tmp.delete()) { -304 tmp.deleteOnExit(); -305 } -306 } -307 } -308 } -309 -310 /** -311 * Closes the CVE and CPE data stores. -312 */ -313 private void closeDataStores() { -314 if (cveDB != null) { -315 try { -316 cveDB.close(); -317 } catch (Exception ignore) { -318 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, "Error closing the cveDB", ignore); -319 } -320 } -321 if (cpeIndex != null) { -322 try { -323 cpeIndex.close(); -324 } catch (Exception ignore) { -325 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINEST, "Error closing the cpeIndex", ignore); -326 } -327 } -328 } -329 -330 /** -331 * Opens the CVE and CPE data stores. -332 * -333 * @throws UpdateException thrown if a data store cannot be opened -334 */ -335 private void openDataStores() throws UpdateException { -336 //open the cve and cpe data stores -337 try { -338 cveDB = new CveDB(); -339 cveDB.open(); -340 cpeIndex = new CpeIndexWriter(); -341 cpeIndex.open(); -342 } catch (IOException ex) { -343 closeDataStores(); -344 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "IO Error opening databases", ex); -345 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); -346 } catch (SQLException ex) { -347 closeDataStores(); -348 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "SQL Exception opening databases", ex); -349 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); -350 } catch (DatabaseException ex) { -351 closeDataStores(); -352 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Database Exception opening databases", ex); -353 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); -354 } catch (ClassNotFoundException ex) { -355 closeDataStores(); -356 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, "Class not found exception opening databases", ex); -357 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); -358 } -359 } -360 -361 /** -362 * Determines if the index needs to be updated. This is done by fetching the -363 * NVD CVE meta data and checking the last update date. If the data needs to -364 * be refreshed this method will return the NvdCveUrl for the files that -365 * need to be updated. -366 * -367 * @return the NvdCveUrl of the files that need to be updated. -368 * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta -369 * data is incorrect. -370 * @throws DownloadFailedException is thrown if there is an error. -371 * downloading the NVD CVE download data file. -372 * @throws UpdateException Is thrown if there is an issue with the last -373 * updated properties file. -374 */ -375 private Map<String, NvdCveInfo> updateNeeded() throws MalformedURLException, DownloadFailedException, UpdateException { -376 -377 Map<String, NvdCveInfo> currentlyPublished; -378 try { -379 currentlyPublished = retrieveCurrentTimestampsFromWeb(); -380 } catch (InvalidDataException ex) { -381 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page"; -382 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, msg, ex); -383 throw new DownloadFailedException(msg, ex); -384 } catch (InvalidSettingException ex) { -385 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex); -386 throw new DownloadFailedException("Invalid settings", ex); -387 } -388 -389 if (currentlyPublished == null) { -390 throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data"); -391 } -392 -393 // final File cpeDataDirectory; -394 // try { -395 // cpeDataDirectory = CveDB.getDataDirectory(); -396 // } catch (IOException ex) { -397 // String msg; -398 // try { -399 // msg = String.format("Unable to create the CVE Data Directory '%s'", -400 // Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY).getCanonicalPath()); -401 // } catch (IOException ex1) { -402 // msg = String.format("Unable to create the CVE Data Directory, this is likely a configuration issue: '%s%s%s'", -403 // Settings.getString(Settings.KEYS.DATA_DIRECTORY, ""), -404 // File.separator, -405 // Settings.getString(Settings.KEYS.CVE_DATA_DIRECTORY, "")); -406 // } -407 // throw new UpdateException(msg, ex); -408 // } -409 -410 if (!properties.isEmpty()) { -411 try { -412 boolean deleteAndRecreate = false; -413 float version; -414 -415 if (properties.getProperty("version") == null) { -416 deleteAndRecreate = true; -417 } else { -418 try { -419 version = Float.parseFloat(properties.getProperty("version")); -420 final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION); -421 if (currentVersion > version) { -422 deleteAndRecreate = true; -423 } -424 } catch (NumberFormatException ex) { -425 deleteAndRecreate = true; -426 } -427 } -428 -429 final NvdCveInfo batchInfo = currentlyPublished.get(BATCH); -430 if (properties.isBatchUpdateMode() && batchInfo != null) { -431 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.BATCH, "0")); -432 if (lastUpdated != batchInfo.getTimestamp()) { -433 deleteAndRecreate = true; -434 } -435 } -436 -437 if (deleteAndRecreate) { -438 setDoBatchUpdate(properties.isBatchUpdateMode()); -439 try { -440 deleteExistingData(); -441 } catch (IOException ex) { -442 final String msg = "Unable to delete existing data"; -443 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, msg); -444 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); -445 } -446 return currentlyPublished; -447 } -448 -449 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0")); -450 final Date now = new Date(); -451 final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7); -452 final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002); -453 final int end = Calendar.getInstance().get(Calendar.YEAR); -454 if (lastUpdated == currentlyPublished.get(MODIFIED).getTimestamp()) { -455 currentlyPublished.clear(); //we don't need to update anything. -456 setDoBatchUpdate(properties.isBatchUpdateMode()); -457 } else if (withinRange(lastUpdated, now.getTime(), days)) { -458 currentlyPublished.get(MODIFIED).setNeedsUpdate(true); -459 if (properties.isBatchUpdateMode()) { -460 setDoBatchUpdate(false); -461 } else { -462 for (int i = start; i <= end; i++) { -463 currentlyPublished.get(String.valueOf(i)).setNeedsUpdate(false); -464 } -465 } -466 } else if (properties.isBatchUpdateMode()) { -467 currentlyPublished.get(MODIFIED).setNeedsUpdate(true); -468 setDoBatchUpdate(true); -469 } else { //we figure out which of the several XML files need to be downloaded. -470 currentlyPublished.get(MODIFIED).setNeedsUpdate(false); -471 for (int i = start; i <= end; i++) { -472 final NvdCveInfo cve = currentlyPublished.get(String.valueOf(i)); -473 long currentTimestamp = 0; -474 try { -475 currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + String.valueOf(i), "0")); -476 } catch (NumberFormatException ex) { -477 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated", -478 DataStoreMetaInfo.LAST_UPDATED_BASE, String.valueOf(i)); -479 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, msg, ex); -480 } -481 if (currentTimestamp == cve.getTimestamp()) { -482 cve.setNeedsUpdate(false); //they default to true. -483 } -484 } -485 } -486 } catch (NumberFormatException ex) { -487 final String msg = "An invalid schema version or timestamp exists in the data.properties file."; -488 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.WARNING, msg); -489 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.FINE, null, ex); -490 setDoBatchUpdate(properties.isBatchUpdateMode()); -491 } -492 } else { -493 setDoBatchUpdate(properties.isBatchUpdateMode()); -494 } -495 return currentlyPublished; -496 } -497 -498 /** -499 * Determines if the epoch date is within the range specified of the -500 * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to -501 * get the number of days. If the calculated days is less then the range the -502 * date is considered valid. -503 * -504 * @param date the date to be checked. -505 * @param compareTo the date to compare to. -506 * @param range the range in days to be considered valid. -507 * @return whether or not the date is within the range. -508 */ -509 private boolean withinRange(long date, long compareTo, int range) { -510 final double differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0; -511 return differenceInDays < range; -512 } -513 -514 /** -515 * Retrieves the timestamps from the NVD CVE meta data file. -516 * -517 * @return the timestamp from the currently published nvdcve downloads page -518 * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data -519 * is incorrect. -520 * @throws DownloadFailedException thrown if there is an error downloading -521 * the nvd cve meta data file -522 * @throws InvalidDataException thrown if there is an exception parsing the -523 * timestamps -524 * @throws InvalidSettingException thrown if the settings are invalid -525 */ -526 private Map<String, NvdCveInfo> retrieveCurrentTimestampsFromWeb() -527 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException { -528 -529 final Map<String, NvdCveInfo> map = new TreeMap<String, NvdCveInfo>(); -530 String retrieveUrl = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL); -531 if (retrieveUrl == null && properties.isBatchUpdateMode()) { -532 final NvdCveInfo item = new NvdCveInfo(); -533 retrieveUrl = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL); -534 if (retrieveUrl == null) { -535 final String msg = "Invalid configuration - neither the modified or batch update URLs are specified in the configuration."; -536 Logger.getLogger(DataStoreMetaInfo.class.getName()).log(Level.SEVERE, msg); -537 throw new InvalidSettingException(msg); -538 } -539 item.setTimestamp(Downloader.getLastModified(new URL(retrieveUrl))); -540 item.setId(BATCH); -541 item.setNeedsUpdate(false); -542 map.put(BATCH, item); -543 } else { -544 NvdCveInfo item = new NvdCveInfo(); -545 item.setNeedsUpdate(false); //the others default to true, to make life easier later this should default to false. -546 item.setId(MODIFIED); -547 item.setUrl(retrieveUrl); -548 item.setOldSchemaVersionUrl(Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL)); -549 -550 item.setTimestamp(Downloader.getLastModified(new URL(retrieveUrl))); -551 map.put(MODIFIED, item); -552 -553 //only add these urls if we are not in batch mode -554 if (!properties.isBatchUpdateMode()) { -555 final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR); -556 final int end = Calendar.getInstance().get(Calendar.YEAR); -557 final String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0); -558 final String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2); -559 for (int i = start; i <= end; i++) { -560 retrieveUrl = String.format(baseUrl20, i); -561 item = new NvdCveInfo(); -562 item.setId(Integer.toString(i)); -563 item.setUrl(retrieveUrl); -564 item.setOldSchemaVersionUrl(String.format(baseUrl12, i)); -565 item.setTimestamp(Downloader.getLastModified(new URL(retrieveUrl))); -566 map.put(item.getId(), item); -567 } -568 } -569 } -570 return map; -571 } -572 } +99 * Deletes the existing data directories. +100 * +101 * @throws IOException thrown if the directory cannot be deleted +102 */ +103 protected void deleteExistingData() throws IOException { +104 File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY); +105 if (data.exists()) { +106 FileUtils.delete(data); +107 } +108 data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY); +109 if (data.exists()) { +110 FileUtils.delete(data); +111 } +112 data = DataStoreMetaInfo.getPropertiesFile(); +113 if (data.exists()) { +114 FileUtils.delete(data); +115 } +116 } +117 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/StandardUpdateTask.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/StandardUpdateTask.html new file mode 100644 index 000000000..cadd4b7e4 --- /dev/null +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/StandardUpdateTask.html @@ -0,0 +1,308 @@ + + + + +StandardUpdateTask xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import org.owasp.dependencycheck.data.nvdcve.InvalidDataException;
    +22  import java.io.File;
    +23  import java.io.FileNotFoundException;
    +24  import java.io.IOException;
    +25  import javax.xml.parsers.ParserConfigurationException;
    +26  import org.xml.sax.SAXException;
    +27  import java.net.MalformedURLException;
    +28  import java.net.URL;
    +29  import java.sql.SQLException;
    +30  import java.util.Calendar;
    +31  import java.util.Date;
    +32  import java.util.logging.Level;
    +33  import java.util.logging.Logger;
    +34  import org.owasp.dependencycheck.data.UpdateException;
    +35  import org.owasp.dependencycheck.data.nvdcve.CveDB;
    +36  import org.owasp.dependencycheck.utils.DownloadFailedException;
    +37  import org.owasp.dependencycheck.utils.Downloader;
    +38  import org.owasp.dependencycheck.utils.Settings;
    +39  import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
    +40  import org.owasp.dependencycheck.utils.InvalidSettingException;
    +41  import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED;
    +42  
    +43  /**
    +44   * Class responsible for updating the CPE and NVDCVE data stores.
    +45   *
    +46   * @author Jeremy Long (jeremy.long@owasp.org)
    +47   */
    +48  public class StandardUpdateTask extends AbstractUpdateTask {
    +49  
    +50      /**
    +51       * Constructs a new Standard Update Task.
    +52       *
    +53       * @param properties information about the data store
    +54       * @throws MalformedURLException thrown if a configured URL is malformed
    +55       * @throws DownloadFailedException thrown if a timestamp cannot be checked
    +56       * on a configured URL
    +57       * @throws UpdateException thrown if there is an exception generating the
    +58       * update task
    +59       */
    +60      public StandardUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException {
    +61          super(properties);
    +62      }
    +63  
    +64      /**
    +65       * <p>Downloads the latest NVD CVE XML file from the web and imports it into
    +66       * the current CVE Database.</p>
    +67       *
    +68       * @throws UpdateException is thrown if there is an error updating the
    +69       * database
    +70       */
    +71      @Override
    +72      public void update() throws UpdateException {
    +73          try {
    +74              int maxUpdates = 0;
    +75              for (NvdCveInfo cve : getUpdateable()) {
    +76                  if (cve.getNeedsUpdate()) {
    +77                      maxUpdates += 1;
    +78                  }
    +79              }
    +80              if (maxUpdates > 3) {
    +81                  Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
    +82                          "NVD CVE requires several updates; this could take a couple of minutes.");
    +83              }
    +84              if (maxUpdates > 0) {
    +85                  openDataStores();
    +86              }
    +87  
    +88              int count = 0;
    +89              for (NvdCveInfo cve : getUpdateable()) {
    +90                  if (cve.getNeedsUpdate()) {
    +91                      count += 1;
    +92                      Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
    +93                              "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates});
    +94                      URL url = new URL(cve.getUrl());
    +95                      File outputPath = null;
    +96                      File outputPath12 = null;
    +97                      try {
    +98                          Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
    +99                                  "Downloading {0}", cve.getUrl());
    +100                         outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml");
    +101                         Downloader.fetchFile(url, outputPath);
    +102 
    +103                         url = new URL(cve.getOldSchemaVersionUrl());
    +104                         outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml");
    +105                         Downloader.fetchFile(url, outputPath12);
    +106 
    +107                         Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
    +108                                 "Processing {0}", cve.getUrl());
    +109 
    +110                         importXML(outputPath, outputPath12);
    +111 
    +112                         getCveDB().commit();
    +113                         getCpeIndex().commit();
    +114                         getProperties().save(cve);
    +115 
    +116                         Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,
    +117                                 "Completed update {0} of {1}", new Object[]{count, maxUpdates});
    +118                     } catch (FileNotFoundException ex) {
    +119                         throw new UpdateException(ex);
    +120                     } catch (ParserConfigurationException ex) {
    +121                         throw new UpdateException(ex);
    +122                     } catch (SAXException ex) {
    +123                         throw new UpdateException(ex);
    +124                     } catch (IOException ex) {
    +125                         throw new UpdateException(ex);
    +126                     } catch (SQLException ex) {
    +127                         throw new UpdateException(ex);
    +128                     } catch (DatabaseException ex) {
    +129                         throw new UpdateException(ex);
    +130                     } catch (ClassNotFoundException ex) {
    +131                         throw new UpdateException(ex);
    +132                     } finally {
    +133                         boolean deleted = false;
    +134                         try {
    +135                             if (outputPath != null && outputPath.exists()) {
    +136                                 deleted = outputPath.delete();
    +137                             }
    +138                         } finally {
    +139                             if (outputPath != null && (outputPath.exists() || !deleted)) {
    +140                                 outputPath.deleteOnExit();
    +141                             }
    +142                         }
    +143                         try {
    +144                             deleted = false;
    +145                             if (outputPath12 != null && outputPath12.exists()) {
    +146                                 deleted = outputPath12.delete();
    +147                             }
    +148                         } finally {
    +149                             if (outputPath12 != null && (outputPath12.exists() || !deleted)) {
    +150                                 outputPath12.deleteOnExit();
    +151                             }
    +152                         }
    +153                     }
    +154                 }
    +155             }
    +156             if (maxUpdates >= 1) { //ensure the modified file date gets written
    +157                 getProperties().save(getUpdateable().get(MODIFIED));
    +158                 getCveDB().cleanupDatabase();
    +159             }
    +160         } catch (MalformedURLException ex) {
    +161             throw new UpdateException(ex);
    +162         } finally {
    +163             closeDataStores();
    +164         }
    +165     }
    +166 
    +167     /**
    +168      * Determines if the index needs to be updated. This is done by fetching the
    +169      * NVD CVE meta data and checking the last update date. If the data needs to
    +170      * be refreshed this method will return the NvdCveUrl for the files that
    +171      * need to be updated.
    +172      *
    +173      * @return the collection of files that need to be updated
    +174      * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta
    +175      * data is incorrect
    +176      * @throws DownloadFailedException is thrown if there is an error.
    +177      * downloading the NVD CVE download data file
    +178      * @throws UpdateException Is thrown if there is an issue with the last
    +179      * updated properties file
    +180      */
    +181     @Override
    +182     protected Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException {
    +183         Updateable updates = null;
    +184         try {
    +185             updates = retrieveCurrentTimestampsFromWeb();
    +186         } catch (InvalidDataException ex) {
    +187             final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page";
    +188             Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, msg, ex);
    +189             throw new DownloadFailedException(msg, ex);
    +190         } catch (InvalidSettingException ex) {
    +191             Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex);
    +192             throw new DownloadFailedException("Invalid settings", ex);
    +193         }
    +194 
    +195         if (updates == null) {
    +196             throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data");
    +197         }
    +198         final DataStoreMetaInfo properties = getProperties();
    +199         if (!properties.isEmpty()) {
    +200             try {
    +201                 float version;
    +202 
    +203                 if (properties.getProperty("version") == null) {
    +204                     setDeleteAndRecreate(true);
    +205                 } else {
    +206                     try {
    +207                         version = Float.parseFloat(properties.getProperty("version"));
    +208                         final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);
    +209                         if (currentVersion > version) {
    +210                             setDeleteAndRecreate(true);
    +211                         }
    +212                     } catch (NumberFormatException ex) {
    +213                         setDeleteAndRecreate(true);
    +214                     }
    +215                 }
    +216 
    +217                 if (shouldDeleteAndRecreate()) {
    +218                     return updates;
    +219                 }
    +220 
    +221                 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0"));
    +222                 final Date now = new Date();
    +223                 final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);
    +224                 if (lastUpdated == updates.getTimeStamp(MODIFIED)) {
    +225                     updates.clear(); //we don't need to update anything.
    +226                 } else if (withinRange(lastUpdated, now.getTime(), days)) {
    +227                     for (NvdCveInfo entry : updates) {
    +228                         if (MODIFIED.equals(entry.getId())) {
    +229                             entry.setNeedsUpdate(true);
    +230                         } else {
    +231                             entry.setNeedsUpdate(false);
    +232                         }
    +233                     }
    +234                 } else { //we figure out which of the several XML files need to be downloaded.
    +235                     for (NvdCveInfo entry : updates) {
    +236                         if (MODIFIED.equals(entry.getId())) {
    +237                             entry.setNeedsUpdate(true);
    +238                         } else {
    +239                             long currentTimestamp = 0;
    +240                             try {
    +241                                 currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + entry.getId(), "0"));
    +242                             } catch (NumberFormatException ex) {
    +243                                 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated",
    +244                                         DataStoreMetaInfo.LAST_UPDATED_BASE, entry.getId());
    +245                                 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, msg, ex);
    +246                             }
    +247                             if (currentTimestamp == entry.getTimestamp()) {
    +248                                 entry.setNeedsUpdate(false);
    +249                             }
    +250                         }
    +251                     }
    +252                 }
    +253             } catch (NumberFormatException ex) {
    +254                 final String msg = "An invalid schema version or timestamp exists in the data.properties file.";
    +255                 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.WARNING, msg);
    +256                 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, null, ex);
    +257             }
    +258         }
    +259         return updates;
    +260     }
    +261 
    +262     /**
    +263      * Retrieves the timestamps from the NVD CVE meta data file.
    +264      *
    +265      * @return the timestamp from the currently published nvdcve downloads page
    +266      * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data
    +267      * is incorrect.
    +268      * @throws DownloadFailedException thrown if there is an error downloading
    +269      * the nvd cve meta data file
    +270      * @throws InvalidDataException thrown if there is an exception parsing the
    +271      * timestamps
    +272      * @throws InvalidSettingException thrown if the settings are invalid
    +273      */
    +274     private Updateable retrieveCurrentTimestampsFromWeb()
    +275             throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {
    +276 
    +277         final Updateable updates = new Updateable();
    +278         updates.add(MODIFIED, Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL),
    +279                 Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL),
    +280                 false);
    +281 
    +282         final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR);
    +283         final int end = Calendar.getInstance().get(Calendar.YEAR);
    +284         final String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0);
    +285         final String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2);
    +286         for (int i = start; i <= end; i++) {
    +287             updates.add(Integer.toString(i), String.format(baseUrl20, i),
    +288                     String.format(baseUrl12, i),
    +289                     true);
    +290         }
    +291 
    +292         return updates;
    +293     }
    +294 }
    +
    +
    + + diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/InvalidDataException.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTask.html similarity index 55% rename from dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/InvalidDataException.html rename to dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTask.html index 1e40f881f..aec1fa8b5 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/xml/InvalidDataException.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTask.html @@ -2,11 +2,11 @@ -InvalidDataException xref - +UpdateTask xref + -
    +
     
     1   /*
     2    * This file is part of dependency-check-core.
    @@ -26,40 +26,39 @@
     16   *
     17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
     18   */
    -19  package org.owasp.dependencycheck.data.nvdcve.xml;
    +19  package org.owasp.dependencycheck.data.update;
     20  
    -21  /**
    -22   * An InvalidDataDataException is a generic exception used when trying to load
    -23   * the nvd cve meta data.
    -24   *
    -25   * @author Jeremy Long (jeremy.long@owasp.org)
    -26   */
    -27  public class InvalidDataException extends Exception {
    -28  
    -29      /**
    -30       * the serial version uid.
    -31       */
    -32      private static final long serialVersionUID = 1L;
    -33  
    -34      /**
    -35       * Creates an InvalidDataException.
    -36       *
    -37       * @param msg the exception message
    -38       */
    -39      public InvalidDataException(String msg) {
    -40          super(msg);
    -41      }
    -42  
    -43      /**
    -44       * Creates an InvalidDataException.
    -45       *
    -46       * @param msg the exception message
    -47       * @param ex the cause of the exception
    -48       */
    -49      public InvalidDataException(String msg, Exception ex) {
    -50          super(msg, ex);
    -51      }
    -52  }
    +21  import org.owasp.dependencycheck.data.UpdateException;
    +22  
    +23  /**
    +24   * An interface defining an update task.
    +25   *
    +26   * @author Jeremy Long (jeremy.long@owasp.org)
    +27   */
    +28  public interface UpdateTask {
    +29  
    +30      /**
    +31       * <p>Updates the data store to the latest version.</p>
    +32       *
    +33       * @throws UpdateException is thrown if there is an error updating the
    +34       * database
    +35       */
    +36      void update() throws UpdateException;
    +37  
    +38      /**
    +39       * Get the value of deleteAndRecreate.
    +40       *
    +41       * @return the value of deleteAndRecreate
    +42       */
    +43      boolean shouldDeleteAndRecreate();
    +44  
    +45      /**
    +46       * Gets whether or not an update is needed.
    +47       *
    +48       * @return true or false depending on whether an update is needed
    +49       */
    +50      boolean isUpdateNeeded();
    +51  }
     

    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html new file mode 100644 index 000000000..73d3f9530 --- /dev/null +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html @@ -0,0 +1,74 @@ + + + + +UpdateTaskFactory xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import java.net.MalformedURLException;
    +22  import org.owasp.dependencycheck.data.UpdateException;
    +23  import org.owasp.dependencycheck.utils.DownloadFailedException;
    +24  
    +25  /**
    +26   * An UpdateTask Factory that instantiates the correct UpdateTask based on the
    +27   * given configuration.
    +28   *
    +29   * @author Jeremy Long (jeremy.long@owasp.org)
    +30   */
    +31  public final class UpdateTaskFactory {
    +32  
    +33      /**
    +34       * private constructor for a utility class.
    +35       */
    +36      private UpdateTaskFactory() {
    +37          //empty contrusctor for utility class
    +38      }
    +39  
    +40      /**
    +41       * Constructs the appropriate update task based on configuration.
    +42       *
    +43       * @return an UpdateTask
    +44       * @throws MalformedURLException thrown if a configured URL is malformed
    +45       * @throws DownloadFailedException thrown if a timestamp cannot be checked
    +46       * on a configured URL
    +47       * @throws UpdateException thrown if there is an exception generating the
    +48       * update task
    +49       */
    +50      public static UpdateTask getUpdateTask() throws MalformedURLException, DownloadFailedException, UpdateException {
    +51          final UpdateTask task;
    +52          final DataStoreMetaInfo properties = new DataStoreMetaInfo();
    +53          if (properties.isBatchUpdateMode()) {
    +54              task = new BatchUpdateTask(properties);
    +55          } else {
    +56              task = new StandardUpdateTask(properties);
    +57          }
    +58          return task;
    +59      }
    +60  }
    +
    +
    + + diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/Updateable.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/Updateable.html new file mode 100644 index 000000000..07567d7ee --- /dev/null +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/Updateable.html @@ -0,0 +1,195 @@ + + + + +Updateable xref + + + +
    +
    +1   /*
    +2    * This file is part of dependency-check-core.
    +3    *
    +4    * Dependency-check-core is free software: you can redistribute it and/or modify it
    +5    * under the terms of the GNU General Public License as published by the Free
    +6    * Software Foundation, either version 3 of the License, or (at your option) any
    +7    * later version.
    +8    *
    +9    * Dependency-check-core is distributed in the hope that it will be useful, but
    +10   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    +11   * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    +12   * details.
    +13   *
    +14   * You should have received a copy of the GNU General Public License along with
    +15   * dependency-check-core. If not, see http://www.gnu.org/licenses/.
    +16   *
    +17   * Copyright (c) 2012 Jeremy Long. All Rights Reserved.
    +18   */
    +19  package org.owasp.dependencycheck.data.update;
    +20  
    +21  import java.net.MalformedURLException;
    +22  import java.net.URL;
    +23  import java.util.Iterator;
    +24  import java.util.Map;
    +25  import java.util.Map.Entry;
    +26  import java.util.TreeMap;
    +27  import org.owasp.dependencycheck.utils.DownloadFailedException;
    +28  import org.owasp.dependencycheck.utils.Downloader;
    +29  
    +30  /**
    +31   * Contains a collection of updateable NvdCveInfo objects. This is used to
    +32   * determine which files need to be downloaded and processed.
    +33   *
    +34   * @author Jeremy Long (jeremy.long@owasp.org)
    +35   */
    +36  public class Updateable implements java.lang.Iterable<NvdCveInfo>, Iterator<NvdCveInfo> {
    +37  
    +38      /**
    +39       * A collection of sources of data.
    +40       */
    +41      private Map<String, NvdCveInfo> collection = new TreeMap<String, NvdCveInfo>();
    +42  
    +43      /**
    +44       * Returns the collection of NvdCveInfo objects. This method is mainly used
    +45       * for testing.
    +46       *
    +47       * @return the collection of NvdCveInfo objects
    +48       */
    +49      protected Map<String, NvdCveInfo> getCollection() {
    +50          return collection;
    +51      }
    +52  
    +53      /**
    +54       * Gets whether or not an update is needed.
    +55       *
    +56       * @return true or false depending on whether an update is needed
    +57       */
    +58      public boolean isUpdateNeeded() {
    +59          for (NvdCveInfo item : this) {
    +60              if (item.getNeedsUpdate()) {
    +61                  return true;
    +62              }
    +63          }
    +64          return false;
    +65      }
    +66  
    +67      /**
    +68       * Adds a new entry of updateable information to the contained collection.
    +69       *
    +70       * @param id the key for the item to be added
    +71       * @param url the URL to download the item
    +72       * @param oldUrl the URL for the old version of the item (the NVD CVE old
    +73       * schema still contains useful data we need).
    +74       * @throws MalformedURLException thrown if the URL provided is invalid
    +75       * @throws DownloadFailedException thrown if the download fails.
    +76       */
    +77      public void add(String id, String url, String oldUrl) throws MalformedURLException, DownloadFailedException {
    +78          add(id, url, oldUrl, false);
    +79      }
    +80  
    +81      /**
    +82       * Adds a new entry of updateable information to the contained collection.
    +83       *
    +84       * @param id the key for the item to be added
    +85       * @param url the URL to download the item
    +86       * @param oldUrl the URL for the old version of the item (the NVD CVE old
    +87       * schema still contains useful data we need).
    +88       * @param needsUpdate whether or not the data needs to be updated
    +89       * @throws MalformedURLException thrown if the URL provided is invalid
    +90       * @throws DownloadFailedException thrown if the download fails.
    +91       */
    +92      public void add(String id, String url, String oldUrl, boolean needsUpdate) throws MalformedURLException, DownloadFailedException {
    +93          final NvdCveInfo item = new NvdCveInfo();
    +94          item.setNeedsUpdate(needsUpdate); //the others default to true, to make life easier later this should default to false.
    +95          item.setId(id);
    +96          item.setUrl(url);
    +97          item.setOldSchemaVersionUrl(oldUrl);
    +98          item.setTimestamp(Downloader.getLastModified(new URL(url)));
    +99          collection.put(id, item);
    +100     }
    +101 
    +102     /**
    +103      * Clears the contained collection of NvdCveInfo entries.
    +104      */
    +105     public void clear() {
    +106         collection.clear();
    +107     }
    +108 
    +109     /**
    +110      * Returns the timestamp for the given entry.
    +111      *
    +112      * @param key the key to lookup in the collection of NvdCveInfo items
    +113      * @return the timestamp for the given entry
    +114      */
    +115     public long getTimeStamp(String key) {
    +116         return collection.get(key).getTimestamp();
    +117     }
    +118     /**
    +119      * An internal iterator used to implement iterable.
    +120      */
    +121     private Iterator<Entry<String, NvdCveInfo>> iterableContent = null;
    +122 
    +123     /**
    +124      * <p>Returns an iterator for the NvdCveInfo contained.</p>
    +125      * <p><b>This method is not thread safe.</b></p>
    +126      *
    +127      * @return an NvdCveInfo Iterator
    +128      */
    +129     @Override
    +130     public Iterator<NvdCveInfo> iterator() {
    +131         iterableContent = collection.entrySet().iterator();
    +132         return this;
    +133     }
    +134 
    +135     /**
    +136      * <p>Returns whether or not there is another item in the collection.</p>
    +137      * <p><b>This method is not thread safe.</b></p>
    +138      *
    +139      * @return true or false depending on whether or not another item exists in
    +140      * the collection
    +141      */
    +142     @Override
    +143     public boolean hasNext() {
    +144         return iterableContent.hasNext();
    +145     }
    +146 
    +147     /**
    +148      * <p>Returns the next item in the collection.</p>
    +149      * <p><b>This method is not thread safe.</b></p>
    +150      *
    +151      * @return the next NvdCveInfo item in the collection
    +152      */
    +153     @Override
    +154     public NvdCveInfo next() {
    +155         return iterableContent.next().getValue();
    +156     }
    +157 
    +158     /**
    +159      * <p>Removes the current NvdCveInfo object from the collection.</p>
    +160      * <p><b>This method is not thread safe.</b></p>
    +161      */
    +162     @Override
    +163     public void remove() {
    +164         iterableContent.remove();
    +165     }
    +166 
    +167     /**
    +168      * Returns the specified item from the collection.
    +169      *
    +170      * @param key the key to lookup the return value
    +171      * @return the NvdCveInfo object stored using the specified key
    +172      */
    +173     NvdCveInfo get(String key) {
    +174         return collection.get(key);
    +175     }
    +176 
    +177     @Override
    +178     public String toString() {
    +179         return "Updateable{" + "size=" + collection.size() + '}';
    +180     }
    +181 }
    +
    +
    + + diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html index 651392f0a..5811ebfea 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.update @@ -16,6 +16,12 @@ diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html index f7b865283..4ac352679 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.data.update @@ -36,6 +36,16 @@ + + AbstractUpdateTask + + + + + BatchUpdateTask + + + DataStoreMetaInfo @@ -49,6 +59,26 @@ NvdCveInfo + + + + StandardUpdateTask + + + + + UpdateTask + + + + + UpdateTaskFactory + + + + + Updateable + diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html index dcf6ebf0d..e6affde31 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html index b99080137..91c794d24 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html index 3d9f96516..5ed36e1b9 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.jaxb.pom.generated + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.jaxb.pom.generated diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html index 9be0b3af1..2a2c1e340 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.jaxb.pom.generated + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.jaxb.pom.generated diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-frame.html index 96bb43259..cd86ecfa4 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.jaxb.pom + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.jaxb.pom diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-summary.html index b4ec03afc..0bfa5eca0 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.jaxb.pom + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.jaxb.pom diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html index a07f3d7ae..50ccff593 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html index d0d076c04..a0f843789 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html index a6af7630c..109cd52be 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html index 179253010..e6c0db791 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/FileUtils.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/FileUtils.html index 79099c3f1..704dc1c83 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/FileUtils.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/FileUtils.html @@ -90,180 +90,157 @@ 80 } 81 } 82 if (!org.apache.commons.io.FileUtils.deleteQuietly(file)) { -83 //if (!file.delete()) { -84 throw new FileNotFoundException("Failed to delete file: " + file); -85 } else { -86 file.deleteOnExit(); -87 } -88 } -89 -90 /** -91 * Deletes a file. If the File is a directory it will recursively delete the -92 * contents. -93 * -94 * @param file the File to delete -95 * @param deleteOnExit setting this to true will cause errors to be ignored -96 * and if there is an error deleting the file it will be setup to be deleted -97 * when the JVM exits. -98 * @throws IOException is thrown if the file could not be deleted -99 */ -100 public static void delete(File file, boolean deleteOnExit) throws IOException { -101 if (file.isDirectory()) { -102 for (File c : file.listFiles()) { -103 delete(c); -104 } -105 } -106 if (!org.apache.commons.io.FileUtils.deleteQuietly(file)) { -107 //if (!file.delete()) { -108 if (deleteOnExit) { -109 file.deleteOnExit(); -110 } else { -111 throw new FileNotFoundException("Failed to delete file: " + file); -112 } -113 } -114 } -115 -116 /** -117 * Returns the data directory. If a path was specified in -118 * dependencycheck.properties or was specified using the Settings object, -119 * and the path exists, that path will be returned as a File object. If it -120 * does not exist, then a File object will be created based on the file -121 * location of the JAR containing the specified class. -122 * -123 * @param configuredFilePath the configured relative or absolute path -124 * @param clazz the class whos path will be resolved -125 * @return a File object -126 * @throws IOException is thrown if the path could not be decoded -127 * @deprecated This method should no longer be used. See the implementation -128 * in dependency-check-cli/App.java to see how the data directory should be -129 * set. -130 */ -131 @java.lang.Deprecated -132 public static File getDataDirectory(String configuredFilePath, Class clazz) throws IOException { -133 final File file = new File(configuredFilePath); -134 if (file.isDirectory() && file.canWrite()) { -135 return new File(file.getCanonicalPath()); -136 } else { -137 final File exePath = getPathToJar(clazz); -138 return new File(exePath, configuredFilePath); -139 } -140 } -141 -142 /** -143 * Retrieves the physical path to the parent directory containing the -144 * provided class. For example, if a JAR file contained a class -145 * org.something.clazz this method would return the parent directory of the -146 * JAR file. -147 * -148 * @param clazz the class to determine the parent directory of -149 * @return the parent directory of the file containing the specified class. -150 * @throws UnsupportedEncodingException thrown if UTF-8 is not supported. -151 * @deprecated this should no longer be used. -152 */ -153 @java.lang.Deprecated -154 public static File getPathToJar(Class clazz) throws UnsupportedEncodingException { -155 final String filePath = clazz.getProtectionDomain().getCodeSource().getLocation().getPath(); -156 final String decodedPath = URLDecoder.decode(filePath, "UTF-8"); -157 final File jarPath = new File(decodedPath); -158 return jarPath.getParentFile(); -159 } -160 -161 /** -162 * Extracts the contents of an archive into the specified directory. -163 * -164 * @param archive an archive file such as a WAR or EAR -165 * @param extractTo a directory to extract the contents to -166 * @throws ExtractionException thrown if an exception occurs while -167 * extracting the files -168 */ -169 public static void extractFiles(File archive, File extractTo) throws ExtractionException { -170 extractFiles(archive, extractTo, null); -171 } -172 -173 /** -174 * Extracts the contents of an archive into the specified directory. The -175 * files are only extracted if they are supported by the analyzers loaded -176 * into the specified engine. If the engine is specified as null then all -177 * files are extracted. -178 * -179 * @param archive an archive file such as a WAR or EAR -180 * @param extractTo a directory to extract the contents to -181 * @param engine the scanning engine -182 * @throws ExtractionException thrown if there is an error extracting the -183 * files -184 */ -185 public static void extractFiles(File archive, File extractTo, Engine engine) throws ExtractionException { -186 if (archive == null || extractTo == null) { -187 return; -188 } -189 -190 FileInputStream fis = null; -191 ZipInputStream zis = null; -192 -193 try { -194 fis = new FileInputStream(archive); -195 } catch (FileNotFoundException ex) { -196 Logger.getLogger(FileUtils.class.getName()).log(Level.INFO, null, ex); -197 throw new ExtractionException("Archive file was not found.", ex); -198 } -199 zis = new ZipInputStream(new BufferedInputStream(fis)); -200 ZipEntry entry; -201 try { -202 while ((entry = zis.getNextEntry()) != null) { -203 if (entry.isDirectory()) { -204 final File d = new File(extractTo, entry.getName()); -205 if (!d.exists() && !d.mkdirs()) { -206 final String msg = String.format("Unable to create '%s'.", d.getAbsolutePath()); -207 throw new ExtractionException(msg); -208 } -209 } else { -210 final File file = new File(extractTo, entry.getName()); -211 final String ext = getFileExtension(file.getName()); -212 if (engine == null || engine.supportsExtension(ext)) { -213 BufferedOutputStream bos = null; -214 FileOutputStream fos; -215 try { -216 fos = new FileOutputStream(file); -217 bos = new BufferedOutputStream(fos, BUFFER_SIZE); -218 int count; -219 final byte data[] = new byte[BUFFER_SIZE]; -220 while ((count = zis.read(data, 0, BUFFER_SIZE)) != -1) { -221 bos.write(data, 0, count); -222 } -223 bos.flush(); -224 } catch (FileNotFoundException ex) { -225 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, null, ex); -226 final String msg = String.format("Unable to find file '%s'.", file.getName()); -227 throw new ExtractionException(msg, ex); -228 } catch (IOException ex) { -229 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, null, ex); -230 final String msg = String.format("IO Exception while parsing file '%s'.", file.getName()); -231 throw new ExtractionException(msg, ex); -232 } finally { -233 if (bos != null) { -234 try { -235 bos.close(); -236 } catch (IOException ex) { -237 Logger.getLogger(FileUtils.class.getName()).log(Level.FINEST, null, ex); -238 } -239 } -240 } -241 } -242 } -243 } -244 } catch (IOException ex) { -245 final String msg = String.format("Exception reading archive '%s'.", archive.getName()); -246 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, msg, ex); -247 throw new ExtractionException(msg, ex); -248 } finally { -249 try { -250 zis.close(); -251 } catch (IOException ex) { -252 Logger.getLogger(FileUtils.class.getName()).log(Level.FINEST, null, ex); -253 } -254 } -255 } -256 } +83 throw new FileNotFoundException("Failed to delete file: " + file); +84 } +85 /* else { +86 //delete on exit was a bad idea. if for some reason the file can't be deleted +87 // this will cause a newly constructed file to be deleted and a subsequent run may fail. +88 // still not sure why a file fails to be deleted, but can be overwritten... odd. +89 file.deleteOnExit(); +90 }*/ +91 } +92 +93 /** +94 * Returns the data directory. If a path was specified in +95 * dependencycheck.properties or was specified using the Settings object, +96 * and the path exists, that path will be returned as a File object. If it +97 * does not exist, then a File object will be created based on the file +98 * location of the JAR containing the specified class. +99 * +100 * @param configuredFilePath the configured relative or absolute path +101 * @param clazz the class whos path will be resolved +102 * @return a File object +103 * @throws IOException is thrown if the path could not be decoded +104 * @deprecated This method should no longer be used. See the implementation +105 * in dependency-check-cli/App.java to see how the data directory should be +106 * set. +107 */ +108 @java.lang.Deprecated +109 public static File getDataDirectory(String configuredFilePath, Class clazz) throws IOException { +110 final File file = new File(configuredFilePath); +111 if (file.isDirectory() && file.canWrite()) { +112 return new File(file.getCanonicalPath()); +113 } else { +114 final File exePath = getPathToJar(clazz); +115 return new File(exePath, configuredFilePath); +116 } +117 } +118 +119 /** +120 * Retrieves the physical path to the parent directory containing the +121 * provided class. For example, if a JAR file contained a class +122 * org.something.clazz this method would return the parent directory of the +123 * JAR file. +124 * +125 * @param clazz the class to determine the parent directory of +126 * @return the parent directory of the file containing the specified class. +127 * @throws UnsupportedEncodingException thrown if UTF-8 is not supported. +128 * @deprecated this should no longer be used. +129 */ +130 @java.lang.Deprecated +131 public static File getPathToJar(Class clazz) throws UnsupportedEncodingException { +132 final String filePath = clazz.getProtectionDomain().getCodeSource().getLocation().getPath(); +133 final String decodedPath = URLDecoder.decode(filePath, "UTF-8"); +134 final File jarPath = new File(decodedPath); +135 return jarPath.getParentFile(); +136 } +137 +138 /** +139 * Extracts the contents of an archive into the specified directory. +140 * +141 * @param archive an archive file such as a WAR or EAR +142 * @param extractTo a directory to extract the contents to +143 * @throws ExtractionException thrown if an exception occurs while +144 * extracting the files +145 */ +146 public static void extractFiles(File archive, File extractTo) throws ExtractionException { +147 extractFiles(archive, extractTo, null); +148 } +149 +150 /** +151 * Extracts the contents of an archive into the specified directory. The +152 * files are only extracted if they are supported by the analyzers loaded +153 * into the specified engine. If the engine is specified as null then all +154 * files are extracted. +155 * +156 * @param archive an archive file such as a WAR or EAR +157 * @param extractTo a directory to extract the contents to +158 * @param engine the scanning engine +159 * @throws ExtractionException thrown if there is an error extracting the +160 * files +161 */ +162 public static void extractFiles(File archive, File extractTo, Engine engine) throws ExtractionException { +163 if (archive == null || extractTo == null) { +164 return; +165 } +166 +167 FileInputStream fis = null; +168 ZipInputStream zis = null; +169 +170 try { +171 fis = new FileInputStream(archive); +172 } catch (FileNotFoundException ex) { +173 Logger.getLogger(FileUtils.class.getName()).log(Level.INFO, null, ex); +174 throw new ExtractionException("Archive file was not found.", ex); +175 } +176 zis = new ZipInputStream(new BufferedInputStream(fis)); +177 ZipEntry entry; +178 try { +179 while ((entry = zis.getNextEntry()) != null) { +180 if (entry.isDirectory()) { +181 final File d = new File(extractTo, entry.getName()); +182 if (!d.exists() && !d.mkdirs()) { +183 final String msg = String.format("Unable to create '%s'.", d.getAbsolutePath()); +184 throw new ExtractionException(msg); +185 } +186 } else { +187 final File file = new File(extractTo, entry.getName()); +188 final String ext = getFileExtension(file.getName()); +189 if (engine == null || engine.supportsExtension(ext)) { +190 BufferedOutputStream bos = null; +191 FileOutputStream fos; +192 try { +193 fos = new FileOutputStream(file); +194 bos = new BufferedOutputStream(fos, BUFFER_SIZE); +195 int count; +196 final byte data[] = new byte[BUFFER_SIZE]; +197 while ((count = zis.read(data, 0, BUFFER_SIZE)) != -1) { +198 bos.write(data, 0, count); +199 } +200 bos.flush(); +201 } catch (FileNotFoundException ex) { +202 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, null, ex); +203 final String msg = String.format("Unable to find file '%s'.", file.getName()); +204 throw new ExtractionException(msg, ex); +205 } catch (IOException ex) { +206 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, null, ex); +207 final String msg = String.format("IO Exception while parsing file '%s'.", file.getName()); +208 throw new ExtractionException(msg, ex); +209 } finally { +210 if (bos != null) { +211 try { +212 bos.close(); +213 } catch (IOException ex) { +214 Logger.getLogger(FileUtils.class.getName()).log(Level.FINEST, null, ex); +215 } +216 } +217 } +218 } +219 } +220 } +221 } catch (IOException ex) { +222 final String msg = String.format("Exception reading archive '%s'.", archive.getName()); +223 Logger.getLogger(FileUtils.class.getName()).log(Level.FINE, msg, ex); +224 throw new ExtractionException(msg, ex); +225 } finally { +226 try { +227 zis.close(); +228 } catch (IOException ex) { +229 Logger.getLogger(FileUtils.class.getName()).log(Level.FINEST, null, ex); +230 } +231 } +232 } +233 }

    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/UrlStringUtils.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/UrlStringUtils.html index daba102fa..89afb1684 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/UrlStringUtils.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/UrlStringUtils.html @@ -80,45 +80,46 @@ 70 * A listing of domain parts that shold not be used as evidence. Yes, this 71 * is an incomplete list. 72 */ -73 private static final HashSet<String> IGNORE_LIST = new HashSet<String>(Arrays.asList("www", "com", "org", "gov", "info", "name", "net", "pro", "tel", "mobi", "xxx")); -74 -75 /** -76 * <p>Takes a URL, in String format, and adds the important parts of the URL -77 * to a list of strings.</p> -78 * <p>Example, given the following input:</p> -79 * <code>"https://www.somedomain.com/path1/path2/file.php?id=439"</code> -80 * <p>The function would return:</p> -81 * <code>{"somedomain", "path1", "path2", "file"}</code> -82 * -83 * @param text a URL -84 * @return importantParts a list of the important parts of the URL -85 * @throws MalformedURLException thrown if the URL is malformed -86 */ -87 public static List<String> extractImportantUrlData(String text) throws MalformedURLException { -88 final ArrayList<String> importantParts = new ArrayList<String>(); -89 final URL url = new URL(text); -90 final String[] domain = url.getHost().split("\\."); -91 //add the domain except www and the tld. -92 for (int i = 0; i < domain.length - 1; i++) { -93 final String sub = domain[i]; -94 if (!IGNORE_LIST.contains(sub.toLowerCase())) { -95 importantParts.add(sub); -96 } -97 } -98 final String document = url.getPath(); -99 final String[] pathParts = document.split("[\\//]"); -100 for (int i = 0; i < pathParts.length - 2; i++) { -101 if (!pathParts[i].isEmpty()) { -102 importantParts.add(pathParts[i]); -103 } -104 } -105 if (pathParts.length > 0 && !pathParts[pathParts.length - 1].isEmpty()) { -106 final String fileNameNoExt = pathParts[pathParts.length - 1].replaceAll("\\..*{0,5}$", ""); -107 importantParts.add(fileNameNoExt); -108 } -109 return importantParts; -110 } -111 } +73 private static final HashSet<String> IGNORE_LIST = new HashSet<String>( +74 Arrays.asList("www", "com", "org", "gov", "info", "name", "net", "pro", "tel", "mobi", "xxx")); +75 +76 /** +77 * <p>Takes a URL, in String format, and adds the important parts of the URL +78 * to a list of strings.</p> +79 * <p>Example, given the following input:</p> +80 * <code>"https://www.somedomain.com/path1/path2/file.php?id=439"</code> +81 * <p>The function would return:</p> +82 * <code>{"somedomain", "path1", "path2", "file"}</code> +83 * +84 * @param text a URL +85 * @return importantParts a list of the important parts of the URL +86 * @throws MalformedURLException thrown if the URL is malformed +87 */ +88 public static List<String> extractImportantUrlData(String text) throws MalformedURLException { +89 final ArrayList<String> importantParts = new ArrayList<String>(); +90 final URL url = new URL(text); +91 final String[] domain = url.getHost().split("\\."); +92 //add the domain except www and the tld. +93 for (int i = 0; i < domain.length - 1; i++) { +94 final String sub = domain[i]; +95 if (!IGNORE_LIST.contains(sub.toLowerCase())) { +96 importantParts.add(sub); +97 } +98 } +99 final String document = url.getPath(); +100 final String[] pathParts = document.split("[\\//]"); +101 for (int i = 0; i < pathParts.length - 2; i++) { +102 if (!pathParts[i].isEmpty()) { +103 importantParts.add(pathParts[i]); +104 } +105 } +106 if (pathParts.length > 0 && !pathParts[pathParts.length - 1].isEmpty()) { +107 final String fileNameNoExt = pathParts[pathParts.length - 1].replaceAll("\\..*{0,5}$", ""); +108 importantParts.add(fileNameNoExt); +109 } +110 return importantParts; +111 } +112 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html index ad6c74312..af5aa72d0 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html index 0e95e239f..a015f971a 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 1.0.3 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref/overview-frame.html b/dependency-check-core/xref/overview-frame.html index 09fc78dd1..6917c976b 100644 --- a/dependency-check-core/xref/overview-frame.html +++ b/dependency-check-core/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference + Dependency-Check Core 1.0.3 Reference diff --git a/dependency-check-core/xref/overview-summary.html b/dependency-check-core/xref/overview-summary.html index 8803afe8b..4f723effe 100644 --- a/dependency-check-core/xref/overview-summary.html +++ b/dependency-check-core/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.2 Reference + Dependency-Check Core 1.0.3 Reference @@ -24,7 +24,7 @@
    -

    Dependency-Check Core 1.0.2 Reference

    +

    Dependency-Check Core 1.0.3 Reference

    diff --git a/dependency-check-jenkins/index.html b/dependency-check-jenkins/index.html index 51ce14811..7c4db4a29 100644 --- a/dependency-check-jenkins/index.html +++ b/dependency-check-jenkins/index.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-jenkins/license.html b/dependency-check-jenkins/license.html index efb9f9408..aa619db5d 100644 --- a/dependency-check-jenkins/license.html +++ b/dependency-check-jenkins/license.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -234,6 +234,12 @@ +
    +

    +new Unix implementation +

    +
    + diff --git a/dependency-check-jenkins/project-info.html b/dependency-check-jenkins/project-info.html index 3ea8a9051..fa23414f7 100644 --- a/dependency-check-jenkins/project-info.html +++ b/dependency-check-jenkins/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-jenkins/project-summary.html b/dependency-check-jenkins/project-summary.html index c72760e8d..7ccf26c29 100644 --- a/dependency-check-jenkins/project-summary.html +++ b/dependency-check-jenkins/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -181,7 +181,7 @@ - + diff --git a/dependency-check-maven/apidocs/allclasses-frame.html b/dependency-check-maven/apidocs/allclasses-frame.html index d9e07beb5..46d4c7f91 100644 --- a/dependency-check-maven/apidocs/allclasses-frame.html +++ b/dependency-check-maven/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Maven Plugin 1.0.2 API) +All Classes (Dependency-Check Maven Plugin 1.0.3 API) - + diff --git a/dependency-check-maven/apidocs/allclasses-noframe.html b/dependency-check-maven/apidocs/allclasses-noframe.html index ed44f13a0..53f065e22 100644 --- a/dependency-check-maven/apidocs/allclasses-noframe.html +++ b/dependency-check-maven/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Maven Plugin 1.0.2 API) +All Classes (Dependency-Check Maven Plugin 1.0.3 API) - + diff --git a/dependency-check-maven/apidocs/constant-values.html b/dependency-check-maven/apidocs/constant-values.html index 5313b6325..4dbf291fa 100644 --- a/dependency-check-maven/apidocs/constant-values.html +++ b/dependency-check-maven/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (Dependency-Check Maven Plugin 1.0.2 API) +Constant Field Values (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ Constant Field Values (Dependency-Check Maven Plugin 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="Constant Field Values (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/deprecated-list.html b/dependency-check-maven/apidocs/deprecated-list.html index 815b7f20e..eccfa07a7 100644 --- a/dependency-check-maven/apidocs/deprecated-list.html +++ b/dependency-check-maven/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (Dependency-Check Maven Plugin 1.0.2 API) +Deprecated List (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ Deprecated List (Dependency-Check Maven Plugin 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="Deprecated List (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/help-doc.html b/dependency-check-maven/apidocs/help-doc.html index 00467f135..3db846672 100644 --- a/dependency-check-maven/apidocs/help-doc.html +++ b/dependency-check-maven/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (Dependency-Check Maven Plugin 1.0.2 API) +API Help (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ API Help (Dependency-Check Maven Plugin 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="API Help (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/index-all.html b/dependency-check-maven/apidocs/index-all.html index ea8aa9704..bf5a0bc0e 100644 --- a/dependency-check-maven/apidocs/index-all.html +++ b/dependency-check-maven/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (Dependency-Check Maven Plugin 1.0.2 API) +Index (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ Index (Dependency-Check Maven Plugin 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="Index (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/index.html b/dependency-check-maven/apidocs/index.html index 303f175cb..8632bb745 100644 --- a/dependency-check-maven/apidocs/index.html +++ b/dependency-check-maven/apidocs/index.html @@ -2,10 +2,10 @@ - + -Dependency-Check Maven Plugin 1.0.2 API +Dependency-Check Maven Plugin 1.0.3 API diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/HelpMojo.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/HelpMojo.html index 701ed4eb9..ef193b8a1 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/HelpMojo.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/HelpMojo.html @@ -2,13 +2,13 @@ - + -HelpMojo (Dependency-Check Maven Plugin 1.0.2 API) +HelpMojo (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ HelpMojo (Dependency-Check Maven Plugin 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="HelpMojo (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="HelpMojo (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/DependencyCheckMojo.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/DependencyCheckMojo.html index 8add9a1c0..ccd4c8990 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/DependencyCheckMojo.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/DependencyCheckMojo.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Check Maven Plugin 1.0.2 API) +Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/HelpMojo.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/HelpMojo.html index 926da75aa..1f647e38f 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/HelpMojo.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/HelpMojo.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven Plugin 1.0.2 API) +Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven P function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-frame.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-frame.html index 607c63a42..323dc49dd 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-frame.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.2 API) +org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.3 API) - + diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-summary.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-summary.html index 3016cb3f5..a3ef48022 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-summary.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.2 API) +org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-tree.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-tree.html index 50043a5ac..d9704c782 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-tree.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1.0.2 API) +org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-use.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-use.html index 7956bba38..b858343ee 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-use.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.2 API) +Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/apidocs/overview-tree.html b/dependency-check-maven/apidocs/overview-tree.html index 61e4367b4..6c8c2b05e 100644 --- a/dependency-check-maven/apidocs/overview-tree.html +++ b/dependency-check-maven/apidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (Dependency-Check Maven Plugin 1.0.2 API) +Class Hierarchy (Dependency-Check Maven Plugin 1.0.3 API) - + @@ -16,7 +16,7 @@ Class Hierarchy (Dependency-Check Maven Plugin 1.0.2 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (Dependency-Check Maven Plugin 1.0.2 API)"; + parent.document.title="Class Hierarchy (Dependency-Check Maven Plugin 1.0.3 API)"; } } diff --git a/dependency-check-maven/check-mojo.html b/dependency-check-maven/check-mojo.html index 9a313141b..80a1283a3 100644 --- a/dependency-check-maven/check-mojo.html +++ b/dependency-check-maven/check-mojo.html @@ -1,13 +1,13 @@ - + dependency-check-maven - dependency-check:check @@ -55,7 +55,7 @@
  • - +
  • /
  • @@ -69,8 +69,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -150,7 +150,7 @@

    Full name:

    -

    org.owasp:dependency-check-maven:1.0.2:check

    +

    org.owasp:dependency-check-maven:1.0.3:check

    Description:

    diff --git a/dependency-check-maven/checkstyle.html b/dependency-check-maven/checkstyle.html index 2ef5ac20d..a0e7e3e5e 100644 --- a/dependency-check-maven/checkstyle.html +++ b/dependency-check-maven/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Checkstyle Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/cobertura/frame-summary-org.owasp.dependencycheck.maven.html b/dependency-check-maven/cobertura/frame-summary-org.owasp.dependencycheck.maven.html index b0a85a7a8..7684cb73f 100644 --- a/dependency-check-maven/cobertura/frame-summary-org.owasp.dependencycheck.maven.html +++ b/dependency-check-maven/cobertura/frame-summary-org.owasp.dependencycheck.maven.html @@ -39,6 +39,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); - + diff --git a/dependency-check-maven/cobertura/frame-summary.html b/dependency-check-maven/cobertura/frame-summary.html index 4ee289b0c..d828c0f24 100644 --- a/dependency-check-maven/cobertura/frame-summary.html +++ b/dependency-check-maven/cobertura/frame-summary.html @@ -25,6 +25,6 @@ var packageTable = new SortableTable(document.getElementById("packageResults"), ["String", "Number", "Percentage", "Percentage", "FormattedNumber"]); packageTable.sort(0); - + diff --git a/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.DependencyCheckMojo.html b/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.DependencyCheckMojo.html index f54777a8b..c2720a387 100644 --- a/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.DependencyCheckMojo.html +++ b/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.DependencyCheckMojo.html @@ -1295,6 +1295,6 @@
    dependency-check-jenkins
    Version1.0.2
    1.0.3
    Type jar
     }
    - + diff --git a/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.HelpMojo.html b/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.HelpMojo.html index 8d8e969be..558bf067c 100644 --- a/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.HelpMojo.html +++ b/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.HelpMojo.html @@ -747,6 +747,6 @@
     }
    - + diff --git a/dependency-check-maven/configuration.html b/dependency-check-maven/configuration.html index 126ae9d49..fda8ad0e9 100644 --- a/dependency-check-maven/configuration.html +++ b/dependency-check-maven/configuration.html @@ -1,13 +1,13 @@ - + dependency-check-maven - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/cpd.html b/dependency-check-maven/cpd.html index 28c268c7a..ca6c4195e 100644 --- a/dependency-check-maven/cpd.html +++ b/dependency-check-maven/cpd.html @@ -1,13 +1,13 @@ - + dependency-check-maven - CPD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/dependency-updates-report.html b/dependency-check-maven/dependency-updates-report.html index 22926c2bc..89d31dbb0 100644 --- a/dependency-check-maven/dependency-updates-report.html +++ b/dependency-check-maven/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Dependency Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -360,7 +360,7 @@ org.owasp dependency-check-core -1.0.2 +1.0.3 compile jar @@ -433,7 +433,7 @@ jar Newer versions -3.0.1 Next Incremental
    3.0.2
    3.0.3
    3.0.4
    3.0.5
    3.1.0-alpha-1 Latest Incremental
    3.1.0 Next Minor +3.0.1 Next Incremental
    3.0.2
    3.0.3
    3.0.4
    3.0.5
    3.1.0-alpha-1 Latest Incremental
    3.1.0 Next Minor
    3.1.1 Latest Minor

    org.apache.maven:maven-plugin-api

    @@ -460,7 +460,7 @@ -
    jar
    Newer versions3.0.1 Next Incremental
    3.0.2
    3.0.3
    3.0.4
    3.0.5
    3.1.0-alpha-1 Latest Incremental
    3.1.0 Next Minor
    +3.0.1 Next Incremental
    3.0.2
    3.0.3
    3.0.4
    3.0.5
    3.1.0-alpha-1 Latest Incremental
    3.1.0 Next Minor
    3.1.1 Latest Minor

    org.apache.maven.plugin-testing:maven-plugin-testing-harness

    @@ -577,7 +577,7 @@ - + diff --git a/dependency-check-maven/findbugs.html b/dependency-check-maven/findbugs.html index 243c45a5f..f5c45c2ad 100644 --- a/dependency-check-maven/findbugs.html +++ b/dependency-check-maven/findbugs.html @@ -1,13 +1,13 @@ - + dependency-check-maven - FindBugs Bug Detector Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/help-mojo.html b/dependency-check-maven/help-mojo.html index 5ee8d89bb..8324dc34a 100644 --- a/dependency-check-maven/help-mojo.html +++ b/dependency-check-maven/help-mojo.html @@ -1,13 +1,13 @@ - + dependency-check-maven - dependency-check:help @@ -55,7 +55,7 @@
  • - +
  • /
  • @@ -69,8 +69,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -148,7 +148,7 @@

    Full name:

    -

    org.owasp:dependency-check-maven:1.0.2:help

    +

    org.owasp:dependency-check-maven:1.0.3:help

    Description:

    diff --git a/dependency-check-maven/index.html b/dependency-check-maven/index.html index 51ce14811..7c4db4a29 100644 --- a/dependency-check-maven/index.html +++ b/dependency-check-maven/index.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/license.html b/dependency-check-maven/license.html index efb9f9408..aa619db5d 100644 --- a/dependency-check-maven/license.html +++ b/dependency-check-maven/license.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -234,6 +234,12 @@ +
    +

    +new Unix implementation +

    +
    + diff --git a/dependency-check-maven/plugin-info.html b/dependency-check-maven/plugin-info.html index 0f0c25be1..5b08a9b63 100644 --- a/dependency-check-maven/plugin-info.html +++ b/dependency-check-maven/plugin-info.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Plugin Documentation @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -278,7 +278,7 @@ Call mvn dependency-check:help -Ddetail=true <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.2</version> + <version>1.0.3</version> </plugin> ... </plugins> @@ -288,7 +288,7 @@ Call mvn dependency-check:help -Ddetail=true <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.2</version> + <version>1.0.3</version> </plugin> ... </plugins> @@ -300,7 +300,7 @@ Call mvn dependency-check:help -Ddetail=true <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.2</version> + <version>1.0.3</version> </plugin> ... </plugins> diff --git a/dependency-check-maven/plugin-updates-report.html b/dependency-check-maven/plugin-updates-report.html index b20f02c47..a986ba814 100644 --- a/dependency-check-maven/plugin-updates-report.html +++ b/dependency-check-maven/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Plugin Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -237,7 +237,7 @@
    - + @@ -249,7 +249,7 @@ - + @@ -365,13 +365,13 @@ - + - - + + @@ -484,7 +484,7 @@ -
    dependency-check-core
    Current Version1.0.2
    1.0.3
    Scope compile
    # of plugins using the latest version available3
    2
    # of plugins where the next version available is smaller than an incremental version update
    # of plugins where the next version available is a minor version update10
    11
    # of plugins where the next version available is a major version update3.0
    org.apache.maven.plugins maven-deploy-plugin2.72.7 2.8
    0.7
    Newer versions0.8 Next Minor
    +0.8 Next Minor
    0.9 Latest Minor

    Plugin org.apache.maven.plugins:maven-antrun-plugin

    @@ -580,7 +580,7 @@
    - + @@ -589,7 +589,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.plugins
    maven-deploy-plugin
    Current Version2.7
    +2.7 + +Newer versions +2.8 Next Minor

    Plugin org.apache.maven.plugins:maven-enforcer-plugin

    @@ -625,7 +628,7 @@ -
    2.3.1
    Newer versions2.4 Next Minor
    +2.4 Next Minor
    2.5 Latest Minor

    Plugin org.apache.maven.plugins:maven-jar-plugin

    diff --git a/dependency-check-maven/pmd.html b/dependency-check-maven/pmd.html index 8a8f12082..6edc6e297 100644 --- a/dependency-check-maven/pmd.html +++ b/dependency-check-maven/pmd.html @@ -1,13 +1,13 @@ - + dependency-check-maven - PMD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/project-info.html b/dependency-check-maven/project-info.html index 3ea8a9051..fa23414f7 100644 --- a/dependency-check-maven/project-info.html +++ b/dependency-check-maven/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/project-reports.html b/dependency-check-maven/project-reports.html index 444fee047..4a48eb502 100644 --- a/dependency-check-maven/project-reports.html +++ b/dependency-check-maven/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Generated Reports @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/project-summary.html b/dependency-check-maven/project-summary.html index c72760e8d..7ccf26c29 100644 --- a/dependency-check-maven/project-summary.html +++ b/dependency-check-maven/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -181,7 +181,7 @@ - + diff --git a/dependency-check-maven/surefire-report.html b/dependency-check-maven/surefire-report.html index 94ea5590d..3fccaa55b 100644 --- a/dependency-check-maven/surefire-report.html +++ b/dependency-check-maven/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -266,7 +266,7 @@ function toggleDisplay(elementId) { -
    dependency-check-jenkins
    Version1.0.2
    1.0.3
    Type jar
    0 0 100%0.084

    +0.062

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -287,7 +287,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.084
    +0.062

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck.maven

    @@ -309,7 +309,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.084

    +0.062

    Test Cases

    [Summary] [Package List] [Test Cases]

    @@ -319,7 +319,7 @@ function toggleDisplay(elementId) { testGenerate_Sink_SinkFactory_Locale -0.002

    +0.001
    diff --git a/dependency-check-maven/taglist.html b/dependency-check-maven/taglist.html index 83feed9e0..6fcf7f577 100644 --- a/dependency-check-maven/taglist.html +++ b/dependency-check-maven/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Tag List report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/dependency-check-maven/usage.html b/dependency-check-maven/usage.html index d705e2755..4442cbf86 100644 --- a/dependency-check-maven/usage.html +++ b/dependency-check-maven/usage.html @@ -1,13 +1,13 @@ - + dependency-check-maven - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -150,7 +150,7 @@ <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.2</version> + <version>1.0.3</version> <configuration> <failBuildOnCVSS>8</failBuildOnCVSS> </configuration> @@ -184,7 +184,7 @@ <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.2</version> + <version>1.0.3</version> <configuration> <externalReport>false</externalReport> </configuration> diff --git a/dependency-check-maven/xref-test/index.html b/dependency-check-maven/xref-test/index.html index e92771d92..a7c027667 100644 --- a/dependency-check-maven/xref-test/index.html +++ b/dependency-check-maven/xref-test/index.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference + Dependency-Check Maven Plugin 1.0.3 Reference diff --git a/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-frame.html b/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-frame.html index baaf8a897..b6211bee4 100644 --- a/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-frame.html +++ b/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 1.0.3 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-summary.html b/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-summary.html index c6b951120..ed0eb572c 100644 --- a/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-summary.html +++ b/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 1.0.3 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref-test/overview-frame.html b/dependency-check-maven/xref-test/overview-frame.html index 2af9bc6b1..29490f51c 100644 --- a/dependency-check-maven/xref-test/overview-frame.html +++ b/dependency-check-maven/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference + Dependency-Check Maven Plugin 1.0.3 Reference diff --git a/dependency-check-maven/xref-test/overview-summary.html b/dependency-check-maven/xref-test/overview-summary.html index 838a78cba..ef592d9da 100644 --- a/dependency-check-maven/xref-test/overview-summary.html +++ b/dependency-check-maven/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference + Dependency-Check Maven Plugin 1.0.3 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Maven Plugin 1.0.2 Reference

    +

    Dependency-Check Maven Plugin 1.0.3 Reference

    diff --git a/dependency-check-maven/xref/index.html b/dependency-check-maven/xref/index.html index e92771d92..a7c027667 100644 --- a/dependency-check-maven/xref/index.html +++ b/dependency-check-maven/xref/index.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference + Dependency-Check Maven Plugin 1.0.3 Reference diff --git a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html index 64a9da9d6..9bc11e23c 100644 --- a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html +++ b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 1.0.3 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html index 98e621cd2..f923572c3 100644 --- a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html +++ b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 1.0.3 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref/overview-frame.html b/dependency-check-maven/xref/overview-frame.html index 2af9bc6b1..29490f51c 100644 --- a/dependency-check-maven/xref/overview-frame.html +++ b/dependency-check-maven/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference + Dependency-Check Maven Plugin 1.0.3 Reference diff --git a/dependency-check-maven/xref/overview-summary.html b/dependency-check-maven/xref/overview-summary.html index 838a78cba..ef592d9da 100644 --- a/dependency-check-maven/xref/overview-summary.html +++ b/dependency-check-maven/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.2 Reference + Dependency-Check Maven Plugin 1.0.3 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Maven Plugin 1.0.2 Reference

    +

    Dependency-Check Maven Plugin 1.0.3 Reference

    diff --git a/index.html b/index.html index f7eca664d..d42f53f84 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,13 @@ - + dependency-check - @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/issue-tracking.html b/issue-tracking.html index 9488da1ce..1516c50ba 100644 --- a/issue-tracking.html +++ b/issue-tracking.html @@ -1,13 +1,13 @@ - + dependency-check - Issue Tracking @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/license.html b/license.html index 5db5b9c37..1ae8a4b7d 100644 --- a/license.html +++ b/license.html @@ -1,13 +1,13 @@ - + dependency-check - Project License @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/mail-lists.html b/mail-lists.html index a7c523529..a232ded12 100644 --- a/mail-lists.html +++ b/mail-lists.html @@ -1,13 +1,13 @@ - + dependency-check - Project Mailing Lists @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/modules.html b/modules.html index 67e35c8e6..74aaf1392 100644 --- a/modules.html +++ b/modules.html @@ -1,13 +1,13 @@ - + dependency-check - Project Modules @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/project-info.html b/project-info.html index 66f1fa856..dc31c47d0 100644 --- a/project-info.html +++ b/project-info.html @@ -1,13 +1,13 @@ - + dependency-check - Project Information @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/project-summary.html b/project-summary.html index 9966b2754..789e62347 100644 --- a/project-summary.html +++ b/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check - Project Summary @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • @@ -247,7 +247,7 @@ - +
    dependency-check-parent
    Version1.0.2
    1.0.3
    Type pom
    diff --git a/source-repository.html b/source-repository.html index ef01c3079..5e640da88 100644 --- a/source-repository.html +++ b/source-repository.html @@ -1,13 +1,13 @@ - + dependency-check - Source Repository @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3
  • diff --git a/team-list.html b/team-list.html index f9d33829d..88cc18840 100644 --- a/team-list.html +++ b/team-list.html @@ -1,13 +1,13 @@ - + dependency-check - Team list @@ -62,8 +62,8 @@ -
  • Last Published: 2013-09-02
  • |
  • -
  • Version: 1.0.2
  • +
  • Last Published: 2013-10-13
  • |
  • +
  • Version: 1.0.3