add ability for user to customize proxy setting

Former-commit-id: 8b5093ccc75751bbea1415334bd5f4335bc5bbc6
This commit is contained in:
ma wei
2015-05-15 11:33:17 +08:00
parent 00f10771d9
commit 8ddf4a0e72
4 changed files with 55 additions and 13 deletions

View File

@@ -33,18 +33,18 @@ dependencies {
} }
group = 'com.tools.security' group = 'com.tools.security'
version = '0.0.2' version = '0.0.3'
//------------------------------- //-------------------------------
// Local debug use only // Local debug use only
// //
//uploadArchives { uploadArchives {
// repositories { repositories {
// mavenDeployer { mavenDeployer {
// repository(url: uri('../../../repo')) repository(url: uri('../../../repo'))
// } }
// } }
//} }
//------------------------------- //-------------------------------
// publish to Bintray // publish to Bintray

View File

@@ -0,0 +1,8 @@
package com.tools.security.extension
class DependencyCheckConfigurationExtension {
String proxyServer
Integer proxyPort
String proxyUsername = ""
String proxyPassword = ""
}

View File

@@ -1,15 +1,23 @@
package com.tools.security.plugin 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.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.slf4j.Logger
import org.slf4j.LoggerFactory
class DependencyCheckGradlePlugin implements Plugin<Project> { class DependencyCheckGradlePlugin implements Plugin<Project> {
@Override @Override
void apply(Project project) { 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) project.tasks.create("dependencyCheck", DependencyCheckTask)
} }
} }

View File

@@ -10,14 +10,16 @@ import org.owasp.dependencycheck.dependency.Dependency
import org.owasp.dependencycheck.reporting.ReportGenerator import org.owasp.dependencycheck.reporting.ReportGenerator
import org.owasp.dependencycheck.utils.Settings import org.owasp.dependencycheck.utils.Settings
import static org.owasp.dependencycheck.utils.Settings.setString
class DependencyCheckTask extends DefaultTask { class DependencyCheckTask extends DefaultTask {
def currentProjectName = project.getName() def currentProjectName = project.getName()
@TaskAction @TaskAction
def check() { def check() {
Settings.initialize() initializeSettings()
def engine = new Engine() def engine = initializeEngine()
verifyDependencies(engine) verifyDependencies(engine)
analyzeDependencies(engine) analyzeDependencies(engine)
@@ -25,6 +27,15 @@ class DependencyCheckTask extends DefaultTask {
generateReport(engine) generateReport(engine)
} }
private Engine initializeEngine() {
new Engine()
}
def initializeSettings() {
Settings.initialize()
overrideProxySetting()
}
def verifyDependencies(engine) { def verifyDependencies(engine) {
logger.lifecycle("Verifying dependencies for project ${currentProjectName}") logger.lifecycle("Verifying dependencies for project ${currentProjectName}")
getAllDependencies(project).each { engine.scan(it) } getAllDependencies(project).each { engine.scan(it) }
@@ -50,6 +61,21 @@ class DependencyCheckTask extends DefaultTask {
reportGenerator.generateReports("./reports/${currentProjectName}", ReportGenerator.Format.ALL) 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) { def getAllDependencies(project) {
return project.getConfigurations().collect { Configuration configuration -> return project.getConfigurations().collect { Configuration configuration ->
configuration.getResolvedConfiguration().getResolvedArtifacts().collect { ResolvedArtifact artifact -> configuration.getResolvedConfiguration().getResolvedArtifacts().collect { ResolvedArtifact artifact ->