diff --git a/src/main/java/org/codehaus/plexus/components/secdispatcher/internal/DefaultSecDispatcher.java b/src/main/java/org/codehaus/plexus/components/secdispatcher/internal/DefaultSecDispatcher.java index 8cf5668..b0b692b 100644 --- a/src/main/java/org/codehaus/plexus/components/secdispatcher/internal/DefaultSecDispatcher.java +++ b/src/main/java/org/codehaus/plexus/components/secdispatcher/internal/DefaultSecDispatcher.java @@ -133,7 +133,7 @@ public String encrypt(String str, Map attr) throws SecDispatcher @Override public String decrypt(String str) throws SecDispatcherException, IOException { - if (!isEncryptedString(str)) return str; + if (!isAnyEncryptedString(str)) return str; String bare = unDecorate(str); Map attr = requireNonNull(stripAttributes(bare)); if (isLegacyEncryptedString(str)) { diff --git a/src/test/java/org/codehaus/plexus/components/secdispatcher/internal/DefaultSecDispatcherTest.java b/src/test/java/org/codehaus/plexus/components/secdispatcher/internal/DefaultSecDispatcherTest.java index c520b4e..8e27148 100644 --- a/src/test/java/org/codehaus/plexus/components/secdispatcher/internal/DefaultSecDispatcherTest.java +++ b/src/test/java/org/codehaus/plexus/components/secdispatcher/internal/DefaultSecDispatcherTest.java @@ -32,6 +32,8 @@ import org.codehaus.plexus.components.secdispatcher.model.SettingsSecurity; import org.codehaus.plexus.components.secdispatcher.model.io.stax.SecurityConfigurationStaxWriter; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -172,4 +174,23 @@ protected DefaultSecDispatcher construct() { new LegacyDispatcher()), CONFIG_PATH); } + + /** + * Test values created with Maven 3.9.9. + *

+ * master password: "masterpassword" + * password: "password" + */ + @ParameterizedTest + @ValueSource( + strings = { + "src/test/legacy/legacy-settings-security-1.xml", + "src/test/legacy/legacy-settings-security-2.xml" + }) + void legacy(String xml) throws Exception { + System.setProperty("settings.security", xml); + SecDispatcher secDispatcher = construct(); + String cleartext = secDispatcher.decrypt("{L6L/HbmrY+cH+sNkphnq3fguYepTpM04WlIXb8nB1pk=}"); + assertEquals("password", cleartext); + } }