diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java index 30048e8409..2bce066f25 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java @@ -24,6 +24,7 @@ import java.io.File; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Properties; @@ -39,10 +40,10 @@ public MavenITmng0553SettingsAuthzEncryptionTest() /** * Test that the encrypted auth infos given in the settings.xml are decrypted. */ - public void testit0553() + public void testitBasic() throws Exception { - File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0553" ); + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0553/test-1" ); Verifier verifier = new Verifier( testDir.getAbsolutePath() ); verifier.setAutoclean( false ); @@ -61,4 +62,41 @@ public void testit0553() assertEquals( "testtest", props.getProperty( "test.password" ) ); } + /** + * Test that the encrypted auth infos given in the settings.xml are decrypted when the master password resides + * in an external file. + */ + /* FIXME: Outstanding bugs in plexus-sec-dispatcher prevent this from passing + public void testitRelocation() + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0553/test-2" ); + + Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + verifier.setAutoclean( false ); + verifier.deleteDirectory( "target" ); + + // NOTE: The upper-case scheme name is essential part of the test + String secUrl = "FILE://" + new File( testDir, "relocated-settings-security.xml" ).toURI().getRawPath(); + Properties filterProps = new Properties(); + filterProps.setProperty( "@relocation@", secUrl ); + // NOTE: The tilde ~ in the file name is essential part of the test + verifier.filterFile( "security-template.xml", "settings~security.xml", "UTF-8", filterProps ); + + List cliOptions = new ArrayList(); + cliOptions.add( "--settings" ); + cliOptions.add( "settings.xml" ); + verifier.getSystemProperties().setProperty( "maven.sec.path", "settings~security.xml" ); + verifier.setCliOptions( cliOptions ); + // NOTE: The selection of the Turkish language for the JVM locale is essential part of the test + verifier.executeGoal( "validate", Collections.singletonMap( "MAVEN_OPTS", "-Duser.language=tr" ) ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + Properties props = verifier.loadProperties( "target/auth.properties" ); + assertEquals( "testuser", props.getProperty( "test.username" ) ); + assertEquals( "testtest", props.getProperty( "test.password" ) ); + } + //*/ + } diff --git a/its/core-it-suite/src/test/resources/mng-0553/pom.xml b/its/core-it-suite/src/test/resources/mng-0553/test-1/pom.xml similarity index 100% rename from its/core-it-suite/src/test/resources/mng-0553/pom.xml rename to its/core-it-suite/src/test/resources/mng-0553/test-1/pom.xml diff --git a/its/core-it-suite/src/test/resources/mng-0553/settings-security.xml b/its/core-it-suite/src/test/resources/mng-0553/test-1/settings-security.xml similarity index 100% rename from its/core-it-suite/src/test/resources/mng-0553/settings-security.xml rename to its/core-it-suite/src/test/resources/mng-0553/test-1/settings-security.xml diff --git a/its/core-it-suite/src/test/resources/mng-0553/settings.xml b/its/core-it-suite/src/test/resources/mng-0553/test-1/settings.xml similarity index 100% rename from its/core-it-suite/src/test/resources/mng-0553/settings.xml rename to its/core-it-suite/src/test/resources/mng-0553/test-1/settings.xml diff --git a/its/core-it-suite/src/test/resources/mng-0553/test-2/pom.xml b/its/core-it-suite/src/test/resources/mng-0553/test-2/pom.xml new file mode 100644 index 0000000000..44a2b8a052 --- /dev/null +++ b/its/core-it-suite/src/test/resources/mng-0553/test-2/pom.xml @@ -0,0 +1,61 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng0553 + test + 1.0-SNAPSHOT + jar + + test + + Test that the auth infos given in the settings.xml are pushed into the wagon manager and are available + to other components/plugins. + + + + + + org.apache.maven.its.plugins + maven-it-plugin-uses-wagon + 2.1-SNAPSHOT + + target/auth.properties + + test + + + + + test + validate + + dump-auth + + + + + + + diff --git a/its/core-it-suite/src/test/resources/mng-0553/test-2/relocated-settings-security.xml b/its/core-it-suite/src/test/resources/mng-0553/test-2/relocated-settings-security.xml new file mode 100644 index 0000000000..df3ba1491c --- /dev/null +++ b/its/core-it-suite/src/test/resources/mng-0553/test-2/relocated-settings-security.xml @@ -0,0 +1,4 @@ + + + {jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=} + diff --git a/its/core-it-suite/src/test/resources/mng-0553/test-2/security-template.xml b/its/core-it-suite/src/test/resources/mng-0553/test-2/security-template.xml new file mode 100644 index 0000000000..12a46cec32 --- /dev/null +++ b/its/core-it-suite/src/test/resources/mng-0553/test-2/security-template.xml @@ -0,0 +1,4 @@ + + + @relocation@ + diff --git a/its/core-it-suite/src/test/resources/mng-0553/test-2/settings.xml b/its/core-it-suite/src/test/resources/mng-0553/test-2/settings.xml new file mode 100644 index 0000000000..572e5b856d --- /dev/null +++ b/its/core-it-suite/src/test/resources/mng-0553/test-2/settings.xml @@ -0,0 +1,30 @@ + + + + + + + + test + testuser + {8+qG0C/CnRsH+45rqY50rWb1cMILU4zu9K/sZ8omYzs=} + + +