Skip to content

feat: Scan Maven Plugins#5001

Merged
jeremylong merged 26 commits intomainfrom
plugins
Jan 11, 2023
Merged

feat: Scan Maven Plugins#5001
jeremylong merged 26 commits intomainfrom
plugins

Conversation

@jeremylong
Copy link
Copy Markdown
Collaborator

Fixes Issue #4035

Adds the ability to scan the plugins of a Maven project (via the org.owasp:dependency-check-maven plugin - not the CLI).

  • Introduced includedBy to the HTML, XML, and JSON reports when scanning with the Maven Plugin. includedBy is the root of the dependency tree (i.e. if a transitive dependency is scanned, the includedBy will be a direct dependency). Note that when using the maven plugin includedBy will be added even when plugins are not scanned.

@boring-cyborg boring-cyborg Bot added core changes to core maven changes to the maven plugin tests test cases labels Oct 29, 2022
@jeremylong jeremylong requested a review from aikebah October 29, 2022 11:36
@jeremylong jeremylong added this to the 8.0.0 milestone Oct 29, 2022
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
@jeremylong
Copy link
Copy Markdown
Collaborator Author

@mprins thanks for the suggestion!

Comment thread core/src/main/resources/schema/dependency-check.2.5.xsd
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
@jeremylong jeremylong changed the title Scan Maven Plugins feat: Scan Maven Plugins Nov 19, 2022
Copy link
Copy Markdown
Collaborator

@aikebah aikebah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@boring-cyborg boring-cyborg Bot added ant changes to ant cli changes to the cli utils changes to utils labels Jan 7, 2023
@jeremylong jeremylong requested a review from aikebah January 9, 2023 12:44
@jeremylong
Copy link
Copy Markdown
Collaborator Author

@aikebah I think I'm good with the 8.0.0 PRs now. Planning on spending this week integrating the 8.0.0 PRs and testing so we can finally get these released. Please let me know if you see any additional issues/concerns.

Copy link
Copy Markdown
Collaborator

@aikebah aikebah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See review, think we should stay on the safe side with internal Maven vars.... with that integrated all looks good to me

Comment thread maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java Outdated
@jeremylong jeremylong requested a review from aikebah January 10, 2023 22:36
@aikebah
Copy link
Copy Markdown
Collaborator

aikebah commented Jan 10, 2023

@jeremylong I'll leave the merge-sequence decision up to you.... my gut feel would be first the Known exploited and then the maven plugin would be the easiest to resolve any emerging merge conflicts

@jeremylong jeremylong merged commit da733c4 into main Jan 11, 2023
@pitprok
Copy link
Copy Markdown

pitprok commented Jan 23, 2023

Based on this dependency-check-sonar-plugin#748 includedBy broke the parsing of the reports.

[INFO] 17:06:11.358 Using JSON-Reportparser
[WARNING] 17:06:11.651 JSON-Analysis aborted
[DEBUG] 17:06:11.653 Problem with JSON-Report-Mapping
org.sonar.dependencycheck.parser.ReportParserException: Problem with JSON-Report-Mapping
	at org.sonar.dependencycheck.parser.JsonReportParserHelper.parse(JsonReportParserHelper.java:44)
	at org.sonar.dependencycheck.DependencyCheckSensor.parseAnalysis(DependencyCheckSensor.java:71)
	at org.sonar.dependencycheck.DependencyCheckSensor.execute(DependencyCheckSensor.java:150)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
	at org.sonar.scanner.sensor.ProjectSensorsExecutor.execute(ProjectSensorsExecutor.java:49)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:360)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:150)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at com.sun.proxy.$Proxy45.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
	at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:65)
	at org.sonarsource.scanner.maven.SonarQubeMojo.execute(SonarQubeMojo.java:108)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "includedBy" (class org.sonar.dependencycheck.parser.element.Dependency), not marked as ignorable (9 known properties: "filePath", "evidenceCollected", "sha1", "fileName", "vulnerabilities", "vulnerabilityIds", "packages", "md5", "identifiers"])
 at [Source: (sun.nio.ch.ChannelInputStream); line: 1, column: 6225] (through reference chain: org.sonar.dependencycheck.parser.element.Analysis["dependencies"]->java.util.ArrayList[0]->org.sonar.dependencycheck.parser.element.Dependency["includedBy"])
	at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
	at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:855)
	at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1212)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1604)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperties(BeanDeserializerBase.java:1554)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:511)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1322)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:331)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:164)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:290)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:249)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:542)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:535)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:419)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1322)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:331)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:164)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4526)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3505)
	at org.sonar.dependencycheck.parser.JsonReportParserHelper.parse(JsonReportParserHelper.java:40)
	... 45 common frames omitted

Is there a way to disable that field or do we have to wait for it to be fixed?

@jeremylong jeremylong deleted the plugins branch February 27, 2023 13:38
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Dec 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

ant changes to ant cli changes to the cli core changes to core documentation site documentation maven changes to the maven plugin tests test cases utils changes to utils

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants