You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by br...@apache.org on 2005/04/22 09:52:04 UTC
svn commit: r164187 -
/maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon
/maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/repository
/maven/wagon/trunk/wagon-provider-api/src/test/java/org/apache/maven/wagon/repository
/maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon
/maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp
/maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http
/maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext
/maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh
Author: brett
Date: Fri Apr 22 00:52:02 2005
New Revision: 164187
URL: http://svn.apache.org/viewcvs?rev=164187&view=rev
Log:
decouple authentication from repository
Modified:
maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java
maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/Wagon.java
maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/repository/Repository.java
maven/wagon/trunk/wagon-provider-api/src/test/java/org/apache/maven/wagon/repository/RepositoryTest.java
maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java
maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/ScpWagon.java
Modified: maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java (original)
+++ maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java Fri Apr 22 00:52:02 2005
@@ -17,6 +17,7 @@
*/
import org.apache.maven.wagon.authentication.AuthenticationException;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
import org.apache.maven.wagon.events.SessionEvent;
import org.apache.maven.wagon.events.SessionEventSupport;
import org.apache.maven.wagon.events.SessionListener;
@@ -56,6 +57,8 @@
protected ProxyInfo proxyInfo = null;
+ protected AuthenticationInfo authenticationInfo = null;
+
// ----------------------------------------------------------------------
// Repository
// ----------------------------------------------------------------------
@@ -72,18 +75,47 @@
public void connect( Repository repository )
throws ConnectionException, AuthenticationException
{
- connect( repository, null );
+ connect( repository, null, null );
}
public void connect( Repository repository, ProxyInfo proxyInfo )
throws ConnectionException, AuthenticationException
{
+ connect( repository, null, proxyInfo );
+ }
+
+ public void connect( Repository repository, AuthenticationInfo authenticationInfo )
+ throws ConnectionException, AuthenticationException
+ {
+ connect( repository, authenticationInfo, null );
+ }
+
+ public void connect( Repository repository, AuthenticationInfo authenticationInfo, ProxyInfo proxyInfo )
+ throws ConnectionException, AuthenticationException
+ {
if ( repository == null )
{
throw new IllegalStateException( "The repository specified cannot be null." );
}
this.repository = repository;
+
+ if ( authenticationInfo == null )
+ {
+ // Get user/pass that were encoded in the URL.
+ if ( repository.getUsername() != null )
+ {
+ authenticationInfo = new AuthenticationInfo();
+ authenticationInfo.setUserName( repository.getUsername() );
+ if ( repository.getPassword() != null )
+ {
+ authenticationInfo.setPassword( repository.getPassword() );
+ }
+ }
+ }
+
+ // TODO: Do these needs to be fields, or are they only used in openConnection()?
+ this.authenticationInfo = authenticationInfo;
this.proxyInfo = proxyInfo;
fireSessionOpening();
Modified: maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/Wagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/Wagon.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/Wagon.java (original)
+++ maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/Wagon.java Fri Apr 22 00:52:02 2005
@@ -17,6 +17,7 @@
*/
import org.apache.maven.wagon.authentication.AuthenticationException;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
import org.apache.maven.wagon.authorization.AuthorizationException;
import org.apache.maven.wagon.events.SessionListener;
import org.apache.maven.wagon.events.TransferListener;
@@ -79,6 +80,12 @@
throws ConnectionException, AuthenticationException;
void connect( Repository source, ProxyInfo proxyInfo )
+ throws ConnectionException, AuthenticationException;
+
+ void connect( Repository source, AuthenticationInfo authenticationInfo )
+ throws ConnectionException, AuthenticationException;
+
+ void connect( Repository source, AuthenticationInfo authenticationInfo, ProxyInfo proxyInfo )
throws ConnectionException, AuthenticationException;
void openConnection()
Modified: maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/repository/Repository.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/repository/Repository.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/repository/Repository.java (original)
+++ maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/repository/Repository.java Fri Apr 22 00:52:02 2005
@@ -51,14 +51,16 @@
private RepositoryPermissions permissions;
- private AuthenticationInfo authenticationInfo;
-
/**
* Properties influencing wagon behaviour
* which are very specific to particular wagon.
*/
private Properties parameters = new Properties();
+ // Username/password are sometimes encoded in the URL
+ private String username = null;
+
+ private String password = null;
public Repository()
{
@@ -72,15 +74,6 @@
setUrl( url );
}
- public Repository( String id, String url, AuthenticationInfo authenticationInfo )
- {
- setId( id );
-
- setUrl( url );
-
- this.authenticationInfo = authenticationInfo;
- }
-
public String getId()
{
return id;
@@ -92,16 +85,6 @@
}
- public AuthenticationInfo getAuthenticationInfo()
- {
- return authenticationInfo;
- }
-
- public void setAuthenticationInfo( AuthenticationInfo authenticationInfo )
- {
- this.authenticationInfo = authenticationInfo;
- }
-
public String getBasedir()
{
return basedir;
@@ -144,30 +127,23 @@
this.basedir = PathUtils.basedir( url );
String username = PathUtils.user( url );
+ this.username = username;
if ( username != null )
{
- if ( authenticationInfo == null )
- {
- authenticationInfo = new AuthenticationInfo();
- }
- authenticationInfo.setUserName( username );
-
String password = PathUtils.password( url );
- String userInfo = username;
-
if ( password != null )
{
- authenticationInfo.setPassword( password );
+ this.password = password;
- userInfo += ":" + password;
+ username += ":" + password;
}
- userInfo += "@";
+ username += "@";
- int index = url.indexOf( userInfo );
- this.url = url.substring( 0, index ) + url.substring( index + userInfo.length() );
+ int index = url.indexOf( username );
+ this.url = url.substring( 0, index ) + url.substring( index + username.length() );
}
}
@@ -263,6 +239,16 @@
public int hashCode()
{
return getId().hashCode();
+ }
+
+ public String getUsername()
+ {
+ return username;
+ }
+
+ public String getPassword()
+ {
+ return password;
}
}
Modified: maven/wagon/trunk/wagon-provider-api/src/test/java/org/apache/maven/wagon/repository/RepositoryTest.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-provider-api/src/test/java/org/apache/maven/wagon/repository/RepositoryTest.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-api/src/test/java/org/apache/maven/wagon/repository/RepositoryTest.java (original)
+++ maven/wagon/trunk/wagon-provider-api/src/test/java/org/apache/maven/wagon/repository/RepositoryTest.java Fri Apr 22 00:52:02 2005
@@ -49,10 +49,6 @@
{
Repository repository = new Repository();
- repository.setAuthenticationInfo( new AuthenticationInfo() );
-
- assertNotNull( repository.getAuthenticationInfo() );
-
repository.setBasedir( "directory" );
assertEquals( "directory", repository.getBasedir() );
Modified: maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java (original)
+++ maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java Fri Apr 22 00:52:02 2005
@@ -96,8 +96,6 @@
testRepository.setUrl( getTestRepositoryUrl() );
- testRepository.setAuthenticationInfo( getAuthInfo() );
-
testRepository.setPermissions( getPermissions() );
// ----------------------------------------------------------------------
@@ -205,7 +203,7 @@
wagon.addTransferListener( checksumObserver );
- wagon.connect( testRepository );
+ wagon.connect( testRepository, getAuthInfo() );
sourceFile = new File( FileTestUtils.getTestOutputDir(), "test-resource.txt" );
FileUtils.fileWrite( sourceFile.getAbsolutePath(), "test-resource.txt\n" );
@@ -226,7 +224,7 @@
wagon.addTransferListener( checksumObserver );
- wagon.connect( testRepository );
+ wagon.connect( testRepository, getAuthInfo() );
destFile = FileTestUtils.createUniqueFile( getName(), getName() );
Modified: maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java Fri Apr 22 00:52:02 2005
@@ -31,7 +31,6 @@
import org.apache.maven.wagon.TransferFailedException;
import org.apache.maven.wagon.WagonConstants;
import org.apache.maven.wagon.authentication.AuthenticationException;
-import org.apache.maven.wagon.authentication.AuthenticationInfo;
import org.apache.maven.wagon.repository.RepositoryPermissions;
import org.apache.maven.wagon.resource.Resource;
@@ -48,16 +47,14 @@
public void openConnection()
throws ConnectionException, AuthenticationException
{
- AuthenticationInfo authInfo = getRepository().getAuthenticationInfo();
-
- if ( authInfo == null )
+ if ( authenticationInfo == null )
{
throw new IllegalArgumentException( "Authentication Credentials cannot be null for FTP protocol" );
}
- String username = authInfo.getUserName();
+ String username = authenticationInfo.getUserName();
- String password = authInfo.getPassword();
+ String password = authenticationInfo.getPassword();
String host = getRepository().getHost();
Modified: maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java Fri Apr 22 00:52:02 2005
@@ -69,17 +69,15 @@
{
client = new HttpClient( new MultiThreadedHttpConnectionManager() );
- final AuthenticationInfo authInfo = getRepository().getAuthenticationInfo();
-
String username = null;
String password = null;
- if ( authInfo != null )
+ if ( authenticationInfo != null )
{
- username = authInfo.getUserName();
+ username = authenticationInfo.getUserName();
- password = authInfo.getPassword();
+ password = authenticationInfo.getPassword();
}
String host = getRepository().getHost();
Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java Fri Apr 22 00:52:02 2005
@@ -87,9 +87,7 @@
public void openConnection()
throws AuthenticationException
{
- final AuthenticationInfo authInfo = getRepository().getAuthenticationInfo();
-
- if ( authInfo == null )
+ if ( authenticationInfo == null )
{
throw new IllegalArgumentException( "Authentication Credentials cannot be null for SSH protocol" );
}
@@ -102,13 +100,13 @@
}
// If user don't define a password, he want to use a private key
- if ( authInfo.getPassword() == null )
+ if ( authenticationInfo.getPassword() == null )
{
File privateKey;
- if ( authInfo.getPrivateKey() != null )
+ if ( authenticationInfo.getPrivateKey() != null )
{
- privateKey = new File( authInfo.getPrivateKey() );
+ privateKey = new File( authenticationInfo.getPrivateKey() );
}
else
{
@@ -117,9 +115,9 @@
if ( privateKey.exists() )
{
- if ( authInfo.getPassphrase() == null )
+ if ( authenticationInfo.getPassphrase() == null )
{
- authInfo.setPassphrase( "" );
+ authenticationInfo.setPassphrase( "" );
}
fireSessionDebug( "Using private key: " + privateKey );
@@ -172,8 +170,6 @@
public void executeCommand( String command )
throws TransferFailedException
{
- AuthenticationInfo authenticationInfo = getRepository().getAuthenticationInfo();
-
Commandline cl = new Commandline();
cl.setExecutable( sshExecutable );
@@ -202,8 +198,6 @@
private void executeScpCommand( File localFile, String remoteFile, boolean put )
throws TransferFailedException
{
- AuthenticationInfo authenticationInfo = getRepository().getAuthenticationInfo();
-
Commandline cl = new Commandline();
cl.setWorkingDirectory( localFile.getParentFile().getAbsolutePath() );
Modified: maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/ScpWagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/ScpWagon.java?rev=164187&r1=164186&r2=164187&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/ScpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/ScpWagon.java Fri Apr 22 00:52:02 2005
@@ -77,9 +77,7 @@
{
try
{
- final AuthenticationInfo authInfo = getRepository().getAuthenticationInfo();
-
- if ( authInfo == null )
+ if ( authenticationInfo == null )
{
throw new IllegalArgumentException( "Authentication Credentials cannot be null for SSH protocol" );
}
@@ -95,16 +93,16 @@
String host = getRepository().getHost();
- session = jsch.getSession( authInfo.getUserName(), host, port );
+ session = jsch.getSession( authenticationInfo.getUserName(), host, port );
// If user don't define a password, he want to use a private key
- if ( authInfo.getPassword() == null )
+ if ( authenticationInfo.getPassword() == null )
{
File privateKey;
- if ( authInfo.getPrivateKey() != null )
+ if ( authenticationInfo.getPrivateKey() != null )
{
- privateKey = new File( authInfo.getPrivateKey() );
+ privateKey = new File( authenticationInfo.getPrivateKey() );
}
else
{
@@ -113,14 +111,14 @@
if ( privateKey.exists() )
{
- if ( authInfo.getPassphrase() == null )
+ if ( authenticationInfo.getPassphrase() == null )
{
- authInfo.setPassphrase( "" );
+ authenticationInfo.setPassphrase( "" );
}
fireSessionDebug( "Using private key: " + privateKey );
- jsch.addIdentity( privateKey.getAbsolutePath(), authInfo.getPassphrase() );
+ jsch.addIdentity( privateKey.getAbsolutePath(), authenticationInfo.getPassphrase() );
}
else
{
@@ -153,7 +151,7 @@
}
// username and password will be given via UserInfo interface.
- UserInfo ui = new WagonUserInfo( authInfo );
+ UserInfo ui = new WagonUserInfo( authenticationInfo );
session.setUserInfo( ui );
---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-cvs-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-cvs-help@maven.apache.org