diff --git a/dependency-check-gradle/src/main/groovy/com/tools/security/extension/DependencyCheckExtension.groovy b/dependency-check-gradle/src/main/groovy/com/tools/security/extension/DependencyCheckExtension.groovy index a0bc76dfe..072f15b4a 100644 --- a/dependency-check-gradle/src/main/groovy/com/tools/security/extension/DependencyCheckExtension.groovy +++ b/dependency-check-gradle/src/main/groovy/com/tools/security/extension/DependencyCheckExtension.groovy @@ -19,10 +19,7 @@ package com.tools.security.extension class DependencyCheckExtension { - String proxyServer - Integer proxyPort - String proxyUsername - String proxyPassword + ProxyExtension proxyExtension; String cveUrl20Modified String cveUrl12Modified diff --git a/dependency-check-gradle/src/main/groovy/com/tools/security/extension/ProxyExtension.groovy b/dependency-check-gradle/src/main/groovy/com/tools/security/extension/ProxyExtension.groovy new file mode 100644 index 000000000..97763ad76 --- /dev/null +++ b/dependency-check-gradle/src/main/groovy/com/tools/security/extension/ProxyExtension.groovy @@ -0,0 +1,26 @@ +/* + * This file is part of dependency-check-gradle. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Copyright (c) 2015 Wei Ma. All Rights Reserved. + */ + +package com.tools.security.extension + +class ProxyExtension { + String server + Integer port + String username + String password +} 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 fc9a4df3d..aec41a9f6 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 @@ -19,13 +19,15 @@ package com.tools.security.plugin import com.tools.security.extension.DependencyCheckExtension +import com.tools.security.extension.ProxyExtension import com.tools.security.tasks.DependencyCheckTask import org.gradle.api.Plugin import org.gradle.api.Project class DependencyCheckGradlePlugin implements Plugin { - private static final String EXTENSION_NAME = 'dependencyCheck' + private static final String ROOT_EXTENSION_NAME = 'dependencyCheck' private static final String TASK_NAME = 'dependencyCheck' + private static final String PROXY_EXTENSION_NAME = "proxy" @Override void apply(Project project) { @@ -34,7 +36,8 @@ class DependencyCheckGradlePlugin implements Plugin { } def initializeConfigurations(Project project) { - project.extensions.create(EXTENSION_NAME, DependencyCheckExtension) + project.extensions.create(ROOT_EXTENSION_NAME, DependencyCheckExtension) + project.dependencyCheck.extensions.create(PROXY_EXTENSION_NAME, ProxyExtension) } def registerTasks(Project project) { 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 6c869657c..83429af47 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 @@ -112,17 +112,17 @@ class DependencyCheckTask extends DefaultTask { def overrideProxySetting() { if (isProxySettingExist()) { - logger.lifecycle("Using proxy ${config.proxyServer}:${config.proxyPort}") + logger.lifecycle("Using proxy ${config.proxy.server}:${config.proxy.port}") - overrideStringBasedSettingWhenProvided(PROXY_SERVER, config.proxyServer) - overrideStringBasedSettingWhenProvided(PROXY_PORT, "${config.proxyPort}") - overrideStringBasedSettingWhenProvided(PROXY_USERNAME, config.proxyUsername) - overrideStringBasedSettingWhenProvided(PROXY_PASSWORD, config.proxyPassword) + overrideStringBasedSettingWhenProvided(PROXY_SERVER, config.proxy.server) + overrideStringBasedSettingWhenProvided(PROXY_PORT, "${config.proxy.port}") + overrideStringBasedSettingWhenProvided(PROXY_USERNAME, config.proxy.username) + overrideStringBasedSettingWhenProvided(PROXY_PASSWORD, config.proxy.password) } } def isProxySettingExist() { - config.proxyServer != null && config.proxyPort != null + config.proxy.server != null && config.proxy.port != null } def getAllDependencies(project) { diff --git a/dependency-check-gradle/src/test/groovy/com/tools/security/plugin/DependencyCheckGradlePluginSpec.groovy b/dependency-check-gradle/src/test/groovy/com/tools/security/plugin/DependencyCheckGradlePluginSpec.groovy index a75db628b..eed24762b 100644 --- a/dependency-check-gradle/src/test/groovy/com/tools/security/plugin/DependencyCheckGradlePluginSpec.groovy +++ b/dependency-check-gradle/src/test/groovy/com/tools/security/plugin/DependencyCheckGradlePluginSpec.groovy @@ -48,10 +48,10 @@ class DependencyCheckGradlePluginSpec extends PluginProjectSpec { expect: task.group == 'Dependency Check' task.description == 'Produce dependency security report.' - project.dependencyCheck.proxyServer == null - project.dependencyCheck.proxyPort == null - project.dependencyCheck.proxyUsername == null - project.dependencyCheck.proxyPassword == null + project.dependencyCheck.proxy.server == null + project.dependencyCheck.proxy.port == null + project.dependencyCheck.proxy.username == null + project.dependencyCheck.proxy.password == null project.dependencyCheck.cveUrl12Modified == null project.dependencyCheck.cveUrl20Modified == null project.dependencyCheck.cveStartYear == null @@ -64,10 +64,12 @@ class DependencyCheckGradlePluginSpec extends PluginProjectSpec { def 'tasks use correct values when extension is used'() { when: project.dependencyCheck { - proxyServer = '127.0.0.1' - proxyPort = 3128 - proxyUsername = 'proxyUsername' - proxyPassword = 'proxyPassword' + proxy { + server = '127.0.0.1' + port = 3128 + username = 'proxyUsername' + password = 'proxyPassword' + } cveUrl12Modified = 'cveUrl12Modified' cveUrl20Modified = 'cveUrl20Modified' cveStartYear = 2002 @@ -78,10 +80,10 @@ class DependencyCheckGradlePluginSpec extends PluginProjectSpec { } then: - project.dependencyCheck.proxyServer == '127.0.0.1' - project.dependencyCheck.proxyPort == 3128 - project.dependencyCheck.proxyUsername == 'proxyUsername' - project.dependencyCheck.proxyPassword == 'proxyPassword' + project.dependencyCheck.proxy.server == '127.0.0.1' + project.dependencyCheck.proxy.port == 3128 + project.dependencyCheck.proxy.username == 'proxyUsername' + project.dependencyCheck.proxy.password == 'proxyPassword' project.dependencyCheck.cveUrl12Modified == 'cveUrl12Modified' project.dependencyCheck.cveUrl20Modified == 'cveUrl20Modified' project.dependencyCheck.cveStartYear == 2002