[ https://issues.apache.org/jira/browse/MNG-8180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17865068#comment-17865068 ]
ASF GitHub Bot commented on MNG-8180: ------------------------------------- cstamas commented on code in PR #1611: URL: https://github.com/apache/maven/pull/1611#discussion_r1674024201 ########## maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/PluginsMetadataGenerator.java: ########## @@ -135,14 +136,34 @@ private PluginInfo extractPluginInfo(Artifact artifact) { String artifactId = root.getChild("artifactId").getValue(); String goalPrefix = root.getChild("goalPrefix").getValue(); String name = root.getChild("name").getValue(); - return new PluginInfo(groupId, artifactId, goalPrefix, name); + // sanity check: plugin descriptor extracted from artifact must have same GA + if (Objects.equals(artifact.getGroupId(), groupId) + && Objects.equals(artifact.getArtifactId(), artifactId)) { + return new PluginInfo(groupId, artifactId, goalPrefix, name); + } else { + throw new InvalidArtifactPluginMetadataException( + "Artifact " + artifact.getGroupId() + ":" + + artifact.getArtifactId() + + " JAR (to be installed/deployed) contains Maven Plugin metadata for plugin " + + groupId + ":" + artifactId + "; coordinates are conflicting. " + + "Most probably your JAR contains rogue Maven Plugin metadata, " + + "possible causes may be: shaded in Maven Plugin or some rogue resource)"); + } } } + } catch (RuntimeException e) { Review Comment: As other catch below catches all? > Resolver will blindly assume it is deploying a plugin by presence of > META-INF/maven/plugins.xml in JAR > ------------------------------------------------------------------------------------------------------ > > Key: MNG-8180 > URL: https://issues.apache.org/jira/browse/MNG-8180 > Project: Maven > Issue Type: Bug > Components: Artifacts and Repositories > Affects Versions: 3.9.0, 3.9.1, 3.9.2, 3.9.3, 3.9.4, 3.9.5, 3.9.6, 3.9.7, > 3.9.8 > Reporter: Tamas Cservenak > Assignee: Tamas Cservenak > Priority: Major > Fix For: 3.9.9, 4.0.0-beta-4 > > > Resolver will generate plugin metadata based on contents of > META-INF/maven/plugins.xml file, that for example in case of shaded JAR may > be totally off. > Circumvention: exclude this file from JAR. > All Maven 3.9.x and 4.x are affected. > Solution: the Artifact (checked for: has no classifier and is backed by JAR, > the requirements for maven-plugin JAR) and the embedded plugin metadata MUST > BE aligned (artifact GA == metadata GA). In this case all is happening as > before, happy path. In case of artifact GA != metadata GA we HARD FAIL the > build, as deploying "formally adhering to maven plugin JAR with rogue > metadata" may be very misleading. Most probably the origin of "rogue" plugin > metadata is by shading (like in case of Tika), or by some other rogue > resource, or even someone "reinventing" the plugin metadata for some other > purposes. Maven should simply prevent install/deploy of artifacts like these, > and users should fix the artifact (in case of shading, exclude that resource, > in other cases figure out from where it comes and eliminate it). > More context: in Maven3 this is most we can do, as repository metadata > generation happens in maven-resolver-provider module that does not and cannot > depend on maven-core (is "pure" resolver), hence notion of packaging, > project, build etc is not available. In Maven4 with new API we MAY do > something more later. The two PRs against 3.9.x and 4.0.0 are currently > identical. -- This message was sent by Atlassian Jira (v8.20.10#820010)