From 90e18266aa3aa76a4b6a58b64c0555c20b7b6997 Mon Sep 17 00:00:00 2001 From: Jared Stehler Date: Tue, 14 Nov 2023 11:16:25 -0500 Subject: [PATCH] configure strict artifact descriptor policy with property --- .../aether/DefaultRepositorySystemSessionFactory.java | 7 +++++++ 1 file changed, 7 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..94f309a5d507 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,11 @@ 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());