From 75c76c26c11a04f33b0b45a833fe2dc96baa69dc Mon Sep 17 00:00:00 2001 From: Jared Stehler Date: Tue, 14 Nov 2023 11:25:25 -0500 Subject: [PATCH] [MNG-7933] configure strict artifact descriptor policy via property --- .../aether/DefaultRepositorySystemSessionFactory.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java index a0e29f1d818f..c9aafd9ad047 100644 --- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java +++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java @@ -56,6 +56,7 @@ import org.eclipse.aether.repository.LocalRepositoryManager; import org.eclipse.aether.repository.RepositoryPolicy; import org.eclipse.aether.repository.WorkspaceReader; +import org.eclipse.aether.resolution.ArtifactDescriptorPolicy; import org.eclipse.aether.resolution.ResolutionErrorPolicy; import org.eclipse.aether.util.ConfigUtils; import org.eclipse.aether.util.listener.ChainedRepositoryListener; @@ -64,6 +65,7 @@ import org.eclipse.aether.util.repository.DefaultAuthenticationSelector; import org.eclipse.aether.util.repository.DefaultMirrorSelector; import org.eclipse.aether.util.repository.DefaultProxySelector; +import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy; import org.eclipse.aether.util.repository.SimpleResolutionErrorPolicy; import org.eclipse.sisu.Nullable; import org.slf4j.Logger; @@ -373,6 +375,12 @@ public DefaultRepositorySystemSession newRepositorySession(MavenExecutionRequest session.getRepositoryListener(), new ReverseTreeRepositoryListener())); } + boolean strictDescriptorPolicy = + ConfigUtils.getBoolean(session, false, "aether.artifactDescriptorPolicy.strict"); + if (strictDescriptorPolicy) { + session.setArtifactDescriptorPolicy(new SimpleArtifactDescriptorPolicy(ArtifactDescriptorPolicy.STRICT)); + } + mavenRepositorySystem.injectMirror(request.getRemoteRepositories(), request.getMirrors()); mavenRepositorySystem.injectProxy(session, request.getRemoteRepositories()); mavenRepositorySystem.injectAuthentication(session, request.getRemoteRepositories());