|
|
|
|
@@ -84,6 +84,10 @@ public abstract class BaseDependencyCheckMojo extends AbstractMojo implements Ma
|
|
|
|
|
* A flag indicating whether or not the Maven site is being generated.
|
|
|
|
|
*/
|
|
|
|
|
private boolean generatingSite = false;
|
|
|
|
|
/**
|
|
|
|
|
* The configured settings.
|
|
|
|
|
*/
|
|
|
|
|
private Settings settings = null;
|
|
|
|
|
//</editor-fold>
|
|
|
|
|
// <editor-fold defaultstate="collapsed" desc="Maven bound parameters and components">
|
|
|
|
|
/**
|
|
|
|
|
@@ -931,7 +935,7 @@ public abstract class BaseDependencyCheckMojo extends AbstractMojo implements Ma
|
|
|
|
|
*/
|
|
|
|
|
protected Engine initializeEngine() throws DatabaseException {
|
|
|
|
|
populateSettings();
|
|
|
|
|
return new Engine();
|
|
|
|
|
return new Engine(settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@@ -940,11 +944,11 @@ public abstract class BaseDependencyCheckMojo extends AbstractMojo implements Ma
|
|
|
|
|
* proxy url, port, and connection timeout.
|
|
|
|
|
*/
|
|
|
|
|
protected void populateSettings() {
|
|
|
|
|
Settings.initialize();
|
|
|
|
|
settings = new Settings();
|
|
|
|
|
InputStream mojoProperties = null;
|
|
|
|
|
try {
|
|
|
|
|
mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);
|
|
|
|
|
Settings.mergeProperties(mojoProperties);
|
|
|
|
|
settings.mergeProperties(mojoProperties);
|
|
|
|
|
} catch (IOException ex) {
|
|
|
|
|
getLog().warn("Unable to load the dependency-check ant task.properties file.");
|
|
|
|
|
if (getLog().isDebugEnabled()) {
|
|
|
|
|
@@ -961,9 +965,9 @@ public abstract class BaseDependencyCheckMojo extends AbstractMojo implements Ma
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.AUTO_UPDATE, autoUpdate);
|
|
|
|
|
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_EXPERIMENTAL_ENABLED, enableExperimental);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_EXPERIMENTAL_ENABLED, enableExperimental);
|
|
|
|
|
|
|
|
|
|
if (externalReport != null) {
|
|
|
|
|
getLog().warn("The 'externalReport' option was set; this configuration option has been removed. "
|
|
|
|
|
@@ -975,50 +979,50 @@ public abstract class BaseDependencyCheckMojo extends AbstractMojo implements Ma
|
|
|
|
|
}
|
|
|
|
|
final Proxy proxy = getMavenProxy();
|
|
|
|
|
if (proxy != null) {
|
|
|
|
|
Settings.setString(Settings.KEYS.PROXY_SERVER, proxy.getHost());
|
|
|
|
|
Settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(proxy.getPort()));
|
|
|
|
|
settings.setString(Settings.KEYS.PROXY_SERVER, proxy.getHost());
|
|
|
|
|
settings.setString(Settings.KEYS.PROXY_PORT, Integer.toString(proxy.getPort()));
|
|
|
|
|
final String userName = proxy.getUsername();
|
|
|
|
|
final String password = proxy.getPassword();
|
|
|
|
|
Settings.setStringIfNotNull(Settings.KEYS.PROXY_USERNAME, userName);
|
|
|
|
|
Settings.setStringIfNotNull(Settings.KEYS.PROXY_PASSWORD, password);
|
|
|
|
|
Settings.setStringIfNotNull(Settings.KEYS.PROXY_NON_PROXY_HOSTS, proxy.getNonProxyHosts());
|
|
|
|
|
settings.setStringIfNotNull(Settings.KEYS.PROXY_USERNAME, userName);
|
|
|
|
|
settings.setStringIfNotNull(Settings.KEYS.PROXY_PASSWORD, password);
|
|
|
|
|
settings.setStringIfNotNull(Settings.KEYS.PROXY_NON_PROXY_HOSTS, proxy.getNonProxyHosts());
|
|
|
|
|
}
|
|
|
|
|
final String[] suppressions = determineSuppressions();
|
|
|
|
|
Settings.setArrayIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressions);
|
|
|
|
|
settings.setArrayIfNotEmpty(Settings.KEYS.SUPPRESSION_FILE, suppressions);
|
|
|
|
|
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.HINTS_FILE, hintsFile);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.HINTS_FILE, hintsFile);
|
|
|
|
|
|
|
|
|
|
//File Type Analyzer Settings
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_MONO_PATH, pathToMono);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_JAR_ENABLED, jarAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NUSPEC_ENABLED, nuspecAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CENTRAL_ENABLED, centralAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_ENABLED, nexusAnalyzerEnabled);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_NEXUS_URL, nexusUrl);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NEXUS_USES_PROXY, nexusUsesProxy);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ASSEMBLY_ENABLED, assemblyAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_ARCHIVE_ENABLED, archiveAnalyzerEnabled);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.ADDITIONAL_ZIP_EXTENSIONS, zipExtensions);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.ANALYZER_ASSEMBLY_MONO_PATH, pathToMono);
|
|
|
|
|
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NSP_PACKAGE_ENABLED, nspAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, bundleAuditAnalyzerEnabled);
|
|
|
|
|
Settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, bundleAuditPath);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COCOAPODS_ENABLED, cocoapodsAnalyzerEnabled);
|
|
|
|
|
Settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED, swiftPackageManagerAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_DISTRIBUTION_ENABLED, pyDistributionAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_PYTHON_PACKAGE_ENABLED, pyPackageAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_RUBY_GEMSPEC_ENABLED, rubygemsAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_OPENSSL_ENABLED, opensslAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_CMAKE_ENABLED, cmakeAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_AUTOCONF_ENABLED, autoconfAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COMPOSER_LOCK_ENABLED, composerAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NODE_PACKAGE_ENABLED, nodeAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_NSP_PACKAGE_ENABLED, nspAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_ENABLED, bundleAuditAnalyzerEnabled);
|
|
|
|
|
settings.setStringIfNotNull(Settings.KEYS.ANALYZER_BUNDLE_AUDIT_PATH, bundleAuditPath);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_COCOAPODS_ENABLED, cocoapodsAnalyzerEnabled);
|
|
|
|
|
settings.setBooleanIfNotNull(Settings.KEYS.ANALYZER_SWIFT_PACKAGE_MANAGER_ENABLED, swiftPackageManagerAnalyzerEnabled);
|
|
|
|
|
|
|
|
|
|
//Database configuration
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_NAME, databaseDriverName);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.DB_DRIVER_PATH, databaseDriverPath);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.DB_CONNECTION_STRING, connectionString);
|
|
|
|
|
|
|
|
|
|
if (databaseUser == null && databasePassword == null && serverId != null) {
|
|
|
|
|
final Server server = settingsXml.getServer(serverId);
|
|
|
|
|
@@ -1060,15 +1064,15 @@ public abstract class BaseDependencyCheckMojo extends AbstractMojo implements Ma
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.DB_USER, databaseUser);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.DB_PASSWORD, databasePassword);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
|
|
|
|
|
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.CVE_MODIFIED_12_URL, cveUrl12Modified);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.CVE_MODIFIED_20_URL, cveUrl20Modified);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.CVE_SCHEMA_1_2, cveUrl12Base);
|
|
|
|
|
Settings.setStringIfNotEmpty(Settings.KEYS.CVE_SCHEMA_2_0, cveUrl20Base);
|
|
|
|
|
Settings.setIntIfNotNull(Settings.KEYS.CVE_CHECK_VALID_FOR_HOURS, cveValidForHours);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.CVE_MODIFIED_12_URL, cveUrl12Modified);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.CVE_MODIFIED_20_URL, cveUrl20Modified);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.CVE_SCHEMA_1_2, cveUrl12Base);
|
|
|
|
|
settings.setStringIfNotEmpty(Settings.KEYS.CVE_SCHEMA_2_0, cveUrl20Base);
|
|
|
|
|
settings.setIntIfNotNull(Settings.KEYS.CVE_CHECK_VALID_FOR_HOURS, cveValidForHours);
|
|
|
|
|
|
|
|
|
|
artifactScopeExcluded = new ArtifactScopeExcluded(skipTestScope, skipProvidedScope, skipSystemScope, skipRuntimeScope);
|
|
|
|
|
artifactTypeExcluded = new ArtifactTypeExcluded(skipArtifactType);
|
|
|
|
|
@@ -1161,6 +1165,15 @@ public abstract class BaseDependencyCheckMojo extends AbstractMojo implements Ma
|
|
|
|
|
return artifactScopeExcluded;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns the configured settings.
|
|
|
|
|
*
|
|
|
|
|
* @return the configured settings
|
|
|
|
|
*/
|
|
|
|
|
protected Settings getSettings() {
|
|
|
|
|
return settings;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<editor-fold defaultstate="collapsed" desc="Methods to fail build or show summary">
|
|
|
|
|
/**
|
|
|
|
|
* Checks to see if a vulnerability has been identified with a CVSS score
|
|
|
|
|
|