This is an automated email from the ASF dual-hosted git repository. slachiewicz pushed a commit to branch agent/pr308-on-master in repository https://gitbox.apache.org/repos/asf/maven-remote-resources-plugin.git
commit 46214aec9d766a7c73d8ac690f98d425addf8747 Author: Efe Gökdemir <[email protected]> AuthorDate: Sat Oct 10 00:38:58 2026 +0300 Use specific remote resource path errors --- .../resources/remote/AbstractProcessRemoteResourcesMojo.java | 10 ++++++---- .../maven/plugin/resources/remote/RemoteResourcesMojoTest.java | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java b/src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java index 28745dd..b4de47a 100644 --- a/src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java +++ b/src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java @@ -121,8 +121,10 @@ import org.eclipse.aether.util.artifact.JavaScopes; */ public abstract class AbstractProcessRemoteResourcesMojo extends AbstractMojo { private static final String TEMPLATE_SUFFIX = ".vm"; - private static final String INVALID_REMOTE_RESOURCE_PATH_MESSAGE = - "Remote resource path must be relative and within the output directory: "; + private static final String ABSOLUTE_REMOTE_RESOURCE_PATH_MESSAGE = + "Absolute remote resource paths are not allowed: "; + private static final String REMOTE_RESOURCE_OUTSIDE_OUTPUT_DIRECTORY_MESSAGE = + "Remote resource path must remain within the output directory: "; /** * <p> @@ -1042,12 +1044,12 @@ public abstract class AbstractProcessRemoteResourcesMojo extends AbstractMojo { private static File resolveOutputFile(File outputDirectory, File canonicalOutputDirectory, String resourceName) throws IOException, MojoExecutionException { if (new File(resourceName).isAbsolute()) { - throw new MojoExecutionException(INVALID_REMOTE_RESOURCE_PATH_MESSAGE + resourceName); + throw new MojoExecutionException(ABSOLUTE_REMOTE_RESOURCE_PATH_MESSAGE + resourceName); } File outputFile = new File(outputDirectory, resourceName).getCanonicalFile(); if (outputFile.equals(canonicalOutputDirectory) || !outputFile.toPath().startsWith(canonicalOutputDirectory.toPath())) { - throw new MojoExecutionException(INVALID_REMOTE_RESOURCE_PATH_MESSAGE + resourceName); + throw new MojoExecutionException(REMOTE_RESOURCE_OUTSIDE_OUTPUT_DIRECTORY_MESSAGE + resourceName); } return outputFile; } diff --git a/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java b/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java index 578bd51..b8f605e 100644 --- a/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java +++ b/src/test/java/org/apache/maven/plugin/resources/remote/RemoteResourcesMojoTest.java @@ -96,7 +96,7 @@ public class RemoteResourcesMojoTest extends AbstractMojoTestCase { AbstractProcessRemoteResourcesMojo.resolveOutputFile(outputDirectory, "../outside.txt"); fail("expected a resource outside the output directory to be rejected"); } catch (MojoExecutionException e) { - assertTrue(e.getMessage().contains("must be relative and within the output directory")); + assertTrue(e.getMessage().contains("must remain within the output directory")); } try { @@ -104,7 +104,7 @@ public class RemoteResourcesMojoTest extends AbstractMojoTestCase { outputDirectory, new File(outputDirectory.getParentFile(), "absolute.txt").getAbsolutePath()); fail("expected an absolute resource path outside the output directory to be rejected"); } catch (MojoExecutionException e) { - assertTrue(e.getMessage().contains("must be relative and within the output directory")); + assertTrue(e.getMessage().contains("Absolute remote resource paths are not allowed")); } File outputFile = AbstractProcessRemoteResourcesMojo.resolveOutputFile(outputDirectory, "nested/resource.txt");
