You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2009/05/01 06:34:43 UTC

svn commit: r770533 - in /maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury: MercuryAdaptor.java MercuryRepositorySystem.java

Author: ogusakov
Date: Fri May  1 04:34:43 2009
New Revision: 770533

URL: http://svn.apache.org/viewvc?rev=770533&view=rev
Log:
added server authentication configuration

Modified:
    maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
    maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java

Modified: maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java?rev=770533&r1=770532&r2=770533&view=diff
==============================================================================
--- maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java (original)
+++ maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java Fri May  1 04:34:43 2009
@@ -52,11 +52,13 @@
 import org.apache.maven.mercury.repository.local.map.ReactorStorage;
 import org.apache.maven.mercury.repository.local.map.StorageException;
 import org.apache.maven.mercury.repository.remote.m2.RemoteRepositoryM2;
+import org.apache.maven.mercury.transport.api.Credentials;
 import org.apache.maven.mercury.transport.api.Server;
 import org.apache.maven.mercury.util.Util;
 import org.apache.maven.repository.MavenArtifactMetadata;
 import org.apache.maven.repository.MetadataGraph;
 import org.apache.maven.repository.MetadataGraphNode;
+import org.apache.maven.repository.RepositorySystem;
 
 /**
  * @author Oleg Gusakov
@@ -99,7 +101,7 @@
         _reactorRepository = null;
     }
 
-    public static List<Repository> toMercuryRepos( ReactorArtifactRepository reactorRepository,
+    public static List<Repository> toMercuryRepos( Map<String, Credentials> credentials, ReactorArtifactRepository reactorRepository,
                                                    ArtifactRepository localRepository, List<?> remoteRepositories,
                                                    DependencyProcessor dependencyProcessor )
     {
@@ -165,6 +167,9 @@
             {
                 String url;
                 String id;
+                
+                String name = null;
+                String pass = null;
 
                 if ( ArtifactRepository.class.isAssignableFrom( o.getClass() ) )
                 {
@@ -177,7 +182,6 @@
                     org.apache.maven.model.Repository ar = (org.apache.maven.model.Repository) o;
                     url = ar.getUrl();
                     id = ar.getId();
-                    
                 }
                 else
                     throw new IllegalArgumentException( "found illegal class in the remote repository list - "
@@ -204,8 +208,14 @@
                 {
                     Server server;
                     try
-                    {
-                        server = new Server( id, new URL( url ) );
+                    {                       
+                        Credentials cred = credentials.get( id );
+                        
+                        if( cred != null )
+                            server = new Server( id, new URL( url ), false, false, cred );
+                        else
+                            server = new Server( id, new URL( url ) );
+                        
                     }
                     catch ( MalformedURLException e )
                     {

Modified: maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java?rev=770533&r1=770532&r2=770533&view=diff
==============================================================================
--- maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java (original)
+++ maven/components/branches/maven-3.0-mercury-763966/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java Fri May  1 04:34:43 2009
@@ -19,6 +19,8 @@
 
 package org.apache.maven.repository.mercury;
 
+import java.io.File;
+import java.io.IOException;
 import java.security.MessageDigest;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -45,6 +47,8 @@
 import org.apache.maven.mercury.plexus.PlexusMercury;
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.repository.api.RepositoryException;
+import org.apache.maven.mercury.transport.api.Credentials;
+import org.apache.maven.mercury.util.FileUtil;
 import org.apache.maven.mercury.util.Util;
 import org.apache.maven.repository.LegacyRepositorySystem;
 import org.apache.maven.repository.MetadataGraph;
@@ -91,6 +95,37 @@
     @Requirement
     private Logger _logger;
     
+    private Map<String, Credentials> _credentials = new HashMap<String, Credentials>(8);
+    
+    @Override
+    public void addAuthenticationInfo(   String repositoryId
+                                       , String username, String password
+                                       , String privateKey, String passphrase
+                                     )
+    {
+        super.addAuthenticationInfo( repositoryId, username, password, privateKey, passphrase );
+        
+        Credentials credentials = null;
+        
+        if( Util.isEmpty( privateKey ) )
+            credentials = new Credentials( username, password );
+        else
+        {
+            byte[] cert;
+            try
+            {
+                cert = FileUtil.readRawData( new File(privateKey) );
+            }
+            catch ( IOException e )
+            {
+                throw new IllegalArgumentException( e );
+            }
+            credentials = new Credentials( cert, username, passphrase );
+        }
+        
+        _credentials.put( repositoryId, credentials );
+    }
+    
     @Override
     public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
     {
@@ -105,7 +140,8 @@
         String requestKey = null;
 
         List<Repository> repos =
-            MercuryAdaptor.toMercuryRepos(   _reactorRepository
+            MercuryAdaptor.toMercuryRepos(  _credentials 
+                                           , _reactorRepository
                                            , request.getLocalRepository()
                                            , request.getRemoteRepostories()
                                            , _dependencyProcessor
@@ -531,8 +567,8 @@
             throw new IllegalArgumentException( LANG.getMessage( "null.request.artifact" ) );
 
         List<Repository> repos =
-            MercuryAdaptor.toMercuryRepos( 
-                                             _reactorRepository
+            MercuryAdaptor.toMercuryRepos( _credentials
+                                           , _reactorRepository
                                            , request.getLocalRepository()
                                            , request.getRemoteRepostories()
                                            , _dependencyProcessor