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

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
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<Project> {
@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)
}
}

View File

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