From 8ddf4a0e720682d2a2a9c061d06c1383d931ffe4 Mon Sep 17 00:00:00 2001 From: ma wei Date: Fri, 15 May 2015 11:33:17 +0800 Subject: [PATCH] add ability for user to customize proxy setting Former-commit-id: 8b5093ccc75751bbea1415334bd5f4335bc5bbc6 --- dependency-check-gradle/build.gradle | 16 +++++----- ...pendencyCheckConfigurationExtension.groovy | 8 +++++ .../plugin/DependencyCheckGradlePlugin.groovy | 14 +++++++-- .../security/tasks/DependencyCheckTask.groovy | 30 +++++++++++++++++-- 4 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 dependency-check-gradle/src/main/groovy/com/tools/security/extension/DependencyCheckConfigurationExtension.groovy diff --git a/dependency-check-gradle/build.gradle b/dependency-check-gradle/build.gradle index 4f9405f73..0b254abd8 100644 --- a/dependency-check-gradle/build.gradle +++ b/dependency-check-gradle/build.gradle @@ -33,18 +33,18 @@ dependencies { } group = 'com.tools.security' -version = '0.0.2' +version = '0.0.3' //------------------------------- // Local debug use only // -//uploadArchives { -// repositories { -// mavenDeployer { -// repository(url: uri('../../../repo')) -// } -// } -//} +uploadArchives { + repositories { + mavenDeployer { + repository(url: uri('../../../repo')) + } + } +} //------------------------------- // publish to Bintray diff --git a/dependency-check-gradle/src/main/groovy/com/tools/security/extension/DependencyCheckConfigurationExtension.groovy b/dependency-check-gradle/src/main/groovy/com/tools/security/extension/DependencyCheckConfigurationExtension.groovy new file mode 100644 index 000000000..c28207b37 --- /dev/null +++ b/dependency-check-gradle/src/main/groovy/com/tools/security/extension/DependencyCheckConfigurationExtension.groovy @@ -0,0 +1,8 @@ +package com.tools.security.extension + +class DependencyCheckConfigurationExtension { + String proxyServer + Integer proxyPort + String proxyUsername = "" + String proxyPassword = "" +} diff --git a/dependency-check-gradle/src/main/groovy/com/tools/security/plugin/DependencyCheckGradlePlugin.groovy b/dependency-check-gradle/src/main/groovy/com/tools/security/plugin/DependencyCheckGradlePlugin.groovy index f1f5dc901..b3c51b4f4 100644 --- a/dependency-check-gradle/src/main/groovy/com/tools/security/plugin/DependencyCheckGradlePlugin.groovy +++ b/dependency-check-gradle/src/main/groovy/com/tools/security/plugin/DependencyCheckGradlePlugin.groovy @@ -1,15 +1,23 @@ package com.tools.security.plugin -import com.tools.security.tasks.DependencyCheckTask; +import com.tools.security.extension.DependencyCheckConfigurationExtension +import com.tools.security.tasks.DependencyCheckTask import org.gradle.api.Plugin import org.gradle.api.Project -import org.slf4j.Logger -import org.slf4j.LoggerFactory class DependencyCheckGradlePlugin implements Plugin { @Override void apply(Project project) { + initializeConfigurations(project) + registerTasks(project) + } + + def initializeConfigurations(Project project) { + project.extensions.create("dependencyCheck", DependencyCheckConfigurationExtension) + } + + def registerTasks(Project project) { project.tasks.create("dependencyCheck", DependencyCheckTask) } } \ No newline at end of file diff --git a/dependency-check-gradle/src/main/groovy/com/tools/security/tasks/DependencyCheckTask.groovy b/dependency-check-gradle/src/main/groovy/com/tools/security/tasks/DependencyCheckTask.groovy index 277985ea0..662e0e085 100644 --- a/dependency-check-gradle/src/main/groovy/com/tools/security/tasks/DependencyCheckTask.groovy +++ b/dependency-check-gradle/src/main/groovy/com/tools/security/tasks/DependencyCheckTask.groovy @@ -10,14 +10,16 @@ import org.owasp.dependencycheck.dependency.Dependency import org.owasp.dependencycheck.reporting.ReportGenerator import org.owasp.dependencycheck.utils.Settings +import static org.owasp.dependencycheck.utils.Settings.setString + class DependencyCheckTask extends DefaultTask { def currentProjectName = project.getName() @TaskAction def check() { - Settings.initialize() - def engine = new Engine() + initializeSettings() + def engine = initializeEngine() verifyDependencies(engine) analyzeDependencies(engine) @@ -25,6 +27,15 @@ class DependencyCheckTask extends DefaultTask { generateReport(engine) } + private Engine initializeEngine() { + new Engine() + } + + def initializeSettings() { + Settings.initialize() + overrideProxySetting() + } + def verifyDependencies(engine) { logger.lifecycle("Verifying dependencies for project ${currentProjectName}") getAllDependencies(project).each { engine.scan(it) } @@ -50,6 +61,21 @@ class DependencyCheckTask extends DefaultTask { reportGenerator.generateReports("./reports/${currentProjectName}", ReportGenerator.Format.ALL) } + def overrideProxySetting() { + if (isProxySettingExist()) { + logger.lifecycle("Using proxy ${project.dependencyCheck.proxyServer}:${project.dependencyCheck.proxyPort}") + + setString(Settings.KEYS.PROXY_SERVER, project.dependencyCheck.proxyServer) + setString(Settings.KEYS.PROXY_PORT, "${project.dependencyCheck.proxyPort}") + setString(Settings.KEYS.PROXY_USERNAME, project.dependencyCheck.proxyUsername) + setString(Settings.KEYS.PROXY_PASSWORD, project.dependencyCheck.proxyPassword) + } + } + + def isProxySettingExist() { + project.dependencyCheck.proxyServer != null && project.dependencyCheck.proxyPort != null + } + def getAllDependencies(project) { return project.getConfigurations().collect { Configuration configuration -> configuration.getResolvedConfiguration().getResolvedArtifacts().collect { ResolvedArtifact artifact ->