You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/11/20 15:40:42 UTC

svn commit: r882580 - in /maven/maven-3/trunk: maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java

Author: bentmann
Date: Fri Nov 20 14:40:42 2009
New Revision: 882580

URL: http://svn.apache.org/viewvc?rev=882580&view=rev
Log:
[MNG-4459] [regression] Effective settings as visible to plugins contain plain text passwords

Modified:
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java

Modified: maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java?rev=882580&r1=882579&r2=882580&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java (original)
+++ maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java Fri Nov 20 14:40:42 2009
@@ -55,10 +55,16 @@
 import org.apache.maven.repository.ArtifactTransferFailedException;
 import org.apache.maven.settings.Mirror;
 import org.apache.maven.settings.Server;
+import org.apache.maven.settings.building.SettingsProblem;
+import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest;
+import org.apache.maven.settings.crypto.SettingsDecrypter;
+import org.apache.maven.settings.crypto.SettingsDecryptionRequest;
+import org.apache.maven.settings.crypto.SettingsDecryptionResult;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -68,6 +74,10 @@
 public class LegacyRepositorySystem
     implements RepositorySystem
 {
+
+    @Requirement
+    private Logger logger;
+
     @Requirement
     private ArtifactFactory artifactFactory;
 
@@ -89,6 +99,9 @@
     @Requirement
     private MirrorSelector mirrorSelector;
 
+    @Requirement
+    private SettingsDecrypter settingsDecrypter;
+
     public Artifact createArtifact( String groupId, String artifactId, String version, String scope, String type )
     {
         return artifactFactory.createArtifact( groupId, artifactId, version, scope, type );
@@ -509,6 +522,18 @@
 
                 if ( server != null )
                 {
+                    SettingsDecryptionRequest request = new DefaultSettingsDecryptionRequest( server );
+                    SettingsDecryptionResult result = settingsDecrypter.decrypt( request );
+                    server = result.getServer();
+
+                    if ( logger.isDebugEnabled() )
+                    {
+                        for ( SettingsProblem problem : result.getProblems() )
+                        {
+                            logger.debug( problem.getMessage(), problem.getException() );
+                        }
+                    }
+
                     Authentication authentication = new Authentication( server.getUsername(), server.getPassword() );
 
                     repository.setAuthentication( authentication );
@@ -548,6 +573,18 @@
 
                 if ( proxy != null )
                 {
+                    SettingsDecryptionRequest request = new DefaultSettingsDecryptionRequest( proxy );
+                    SettingsDecryptionResult result = settingsDecrypter.decrypt( request );
+                    proxy = result.getProxy();
+
+                    if ( logger.isDebugEnabled() )
+                    {
+                        for ( SettingsProblem problem : result.getProblems() )
+                        {
+                            logger.debug( problem.getMessage(), problem.getException() );
+                        }
+                    }
+
                     Proxy p = new Proxy();
                     p.setHost( proxy.getHost() );
                     p.setProtocol( proxy.getProtocol() );

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java?rev=882580&r1=882579&r2=882580&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java Fri Nov 20 14:40:42 2009
@@ -20,7 +20,6 @@
  */
 
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -35,10 +34,7 @@
 import org.apache.maven.settings.SettingsUtils;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
-import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
-import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;
 
 @Component(role = MavenExecutionRequestPopulator.class)
 public class DefaultMavenExecutionRequestPopulator
@@ -46,14 +42,8 @@
 {
 
     @Requirement
-    private Logger logger;
-
-    @Requirement
     private RepositorySystem repositorySystem;
 
-    @Requirement( hint = "maven" )
-    private SecDispatcher securityDispatcher;
-
     public MavenExecutionRequest populateFromSettings( MavenExecutionRequest request, Settings settings )
         throws MavenExecutionRequestPopulationException
     {
@@ -74,10 +64,6 @@
         {
             server = server.clone();
 
-            String password = decrypt( server.getPassword(), "password for server " + server.getId() );
-
-            server.setPassword( password );
-
             request.addServer( server );
         }
 
@@ -102,10 +88,6 @@
 
             proxy = proxy.clone();
 
-            String password = decrypt( proxy.getPassword(), "password for proxy " + proxy.getId() );
-
-            proxy.setPassword( password );
-
             request.addProxy( proxy );
         }
 
@@ -134,35 +116,6 @@
         return request;
     }
 
-    private String decrypt( String encrypted, String source )
-    {
-        try
-        {
-            return securityDispatcher.decrypt( encrypted );
-        }
-        catch ( SecDispatcherException e )
-        {
-            logger.warn( "Not decrypting " + source + " due to exception in security handler: " + e.getMessage() );
-
-            Throwable cause = e;
-
-            while ( cause.getCause() != null )
-            {
-                cause = cause.getCause();
-            }
-
-            if ( cause instanceof FileNotFoundException )
-            {
-                logger.warn( "Ensure that you have configured your master password file (and relocation if appropriate)." );
-                logger.warn( "See the installation instructions for details." );
-            }
-
-            logger.debug( "Full stack trace follows", e );
-
-            return encrypted;
-        }
-    }
-
     private void populateDefaultPluginGroups( MavenExecutionRequest request )
     {
         request.addPluginGroup( "org.apache.maven.plugins" );