mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-03-20 00:04:27 +01:00
add gradle task, utilize dependency-check-core functions to check dependency vulnerabilities
Former-commit-id: bef42df0ed3869fbceb4fe3ec459228031554439
This commit is contained in:
@@ -3,12 +3,16 @@ apply plugin: 'groovy'
|
|||||||
apply plugin: 'maven'
|
apply plugin: 'maven'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile localGroovy()
|
compile(
|
||||||
compile gradleApi()
|
localGroovy(),
|
||||||
|
gradleApi(),
|
||||||
|
'org.owasp:dependency-check-core:1.2.10',
|
||||||
|
'org.owasp:dependency-check-utils:1.2.10'
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
group = 'com.tools.security'
|
group = 'com.tools.security'
|
||||||
@@ -17,7 +21,7 @@ version = '0.0.1'
|
|||||||
uploadArchives {
|
uploadArchives {
|
||||||
repositories {
|
repositories {
|
||||||
mavenDeployer {
|
mavenDeployer {
|
||||||
repository(url: uri('../repo'))
|
repository(url: uri('../../../repo'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tools.security.plugin;
|
package com.tools.security.plugin
|
||||||
|
|
||||||
|
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.Logger
|
||||||
@@ -11,6 +12,6 @@ class DependencyCheckGradlePlugin implements Plugin<Project> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
void apply(Project project) {
|
void apply(Project project) {
|
||||||
|
project.tasks.create("dependencyCheck", DependencyCheckTask)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package com.tools.security.tasks
|
||||||
|
|
||||||
|
import org.gradle.api.DefaultTask
|
||||||
|
import org.gradle.api.artifacts.Configuration
|
||||||
|
import org.gradle.api.artifacts.ResolvedArtifact
|
||||||
|
import org.gradle.api.tasks.TaskAction
|
||||||
|
import org.owasp.dependencycheck.Engine
|
||||||
|
import org.owasp.dependencycheck.data.nvdcve.CveDB
|
||||||
|
import org.owasp.dependencycheck.dependency.Dependency
|
||||||
|
import org.owasp.dependencycheck.reporting.ReportGenerator
|
||||||
|
import org.owasp.dependencycheck.utils.Settings
|
||||||
|
|
||||||
|
class DependencyCheckTask extends DefaultTask {
|
||||||
|
|
||||||
|
@TaskAction
|
||||||
|
def check() {
|
||||||
|
Settings.initialize()
|
||||||
|
def engine = new Engine()
|
||||||
|
|
||||||
|
verifyDependencies(engine)
|
||||||
|
analyzeDependencies(engine)
|
||||||
|
retrieveVulnerabilities(engine)
|
||||||
|
generateReport(engine)
|
||||||
|
}
|
||||||
|
|
||||||
|
def verifyDependencies(engine) {
|
||||||
|
logger.lifecycle("Verifying dependencies")
|
||||||
|
getAllDependencies(project).each { engine.scan(it) }
|
||||||
|
}
|
||||||
|
|
||||||
|
def analyzeDependencies(Engine engine) {
|
||||||
|
logger.lifecycle("Checking for updates and analyzing vulnerabilities for dependencies")
|
||||||
|
engine.analyzeDependencies()
|
||||||
|
}
|
||||||
|
|
||||||
|
def retrieveVulnerabilities(Engine engine) {
|
||||||
|
def vulnerabilities = engine.getDependencies().collect { Dependency dependency ->
|
||||||
|
dependency.getVulnerabilities()
|
||||||
|
}.flatten()
|
||||||
|
|
||||||
|
logger.lifecycle("Found ${vulnerabilities.size()} vulnerabilities")
|
||||||
|
}
|
||||||
|
|
||||||
|
def generateReport(Engine engine) {
|
||||||
|
logger.lifecycle("Generating report")
|
||||||
|
def reportGenerator = new ReportGenerator(project.getName(), engine.dependencies, engine.analyzers,
|
||||||
|
new CveDB().databaseProperties)
|
||||||
|
reportGenerator.generateReports("./reports", ReportGenerator.Format.ALL)
|
||||||
|
}
|
||||||
|
|
||||||
|
def getAllDependencies(project) {
|
||||||
|
return project.getConfigurations().collect { Configuration configuration ->
|
||||||
|
configuration.getResolvedConfiguration().getResolvedArtifacts().collect { ResolvedArtifact artifact ->
|
||||||
|
artifact.getFile()
|
||||||
|
}
|
||||||
|
}.flatten();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
implementation-class=com.tools.security.plugin.DependencyCheckGradlePlugin
|
||||||
@@ -1 +0,0 @@
|
|||||||
implementation-class=com.tools.security.gradle.DependencyCheckGradlePlugin
|
|
||||||
Reference in New Issue
Block a user