org.tmatesoft.svn.core.auth
Class BasicAuthenticationManager

java.lang.Object
  extended by org.tmatesoft.svn.core.auth.BasicAuthenticationManager
All Implemented Interfaces:
ISVNAuthenticationManager, ISVNProxyManager, ISVNSSHHostVerifier

public class BasicAuthenticationManager
extends java.lang.Object
implements ISVNAuthenticationManager, ISVNProxyManager, ISVNSSHHostVerifier

The BasicAuthenticationManager is a simple implementation of ISVNAuthenticationManager for storing and providing credentials without using auth providers. A basic manager simply keeps the user credentials provided. Also this manager may store a single proxy server options context (for HHTP requests to go through a particular proxy server).

This manager does not use authentication providers (ISVNAuthenticationProvider) but only those credentials that was supplied to its constructor. Also this manager never caches credentials.

This manager is not used in SVNKit internals. You may use a default manager (how to get it read javadoc for ISVNAuthenticationManager), this basic manager or implement your own one.

Since:
1.2
See Also:
ISVNAuthenticationProvider

Field Summary
 
Fields inherited from interface org.tmatesoft.svn.core.auth.ISVNAuthenticationManager
PASSWORD, SSH, SSL, USERNAME
 
Constructor Summary
BasicAuthenticationManager(java.lang.String userName, java.io.File keyFile, java.lang.String passphrase, int portNumber)
          Creates an auth manager given a user credential - a username and an ssh private key.
BasicAuthenticationManager(java.lang.String userName, java.lang.String password)
          Creates an auth manager given a user credential - a username and password.
BasicAuthenticationManager(SVNAuthentication[] authentications)
          Creates an auth manager given user credentials to use.
 
Method Summary
 void acknowledgeAuthentication(boolean accepted, java.lang.String kind, java.lang.String realm, SVNErrorMessage errorMessage, SVNAuthentication authentication)
          Does nothing.
static void acknowledgeAuthentication(boolean accepted, java.lang.String kind, java.lang.String realm, SVNErrorMessage errorMessage, SVNAuthentication authentication, SVNURL accessedURL, ISVNAuthenticationManager authManager)
           
 void acknowledgeProxyContext(boolean accepted, SVNErrorMessage errorMessage)
          Does nothing.
 void acknowledgeTrustManager(javax.net.ssl.TrustManager manager)
          Does nothing.
 int getConnectTimeout(SVNRepository repository)
          Returns connection timeout value.
 SVNAuthentication getFirstAuthentication(java.lang.String kind, java.lang.String realm, SVNURL url)
          Returns the first user's authentication credentials.
 SVNAuthentication getNextAuthentication(java.lang.String kind, java.lang.String realm, SVNURL url)
          Returns next user authentication credentials.
 java.lang.String getProxyHost()
          Returns the proxy host name.
 ISVNProxyManager getProxyManager(SVNURL url)
          Returns itself as a proxy manager.
 java.lang.String getProxyPassword()
          Returns the password to authenticate against the proxy server.
 int getProxyPort()
          Returns the proxy port number.
 java.lang.String getProxyUserName()
          Returns the proxy user name.
 int getReadTimeout(SVNRepository repository)
          Returns connection timeout value.
 javax.net.ssl.TrustManager getTrustManager(SVNURL url)
          Returns null.
 boolean isAuthenticationForced()
          Tells whether authentication should be tried despite not being challenged from the server yet.
 void setAuthenticationForced(boolean forced)
          Sets whether authentication should be forced or not.
 void setAuthenticationProvider(ISVNAuthenticationProvider provider)
          Does nothing.
 void setAuthentications(SVNAuthentication[] authentications)
          Sets the given user credentials to this manager.
 void setProxy(java.lang.String proxyHost, int proxyPort, java.lang.String proxyUserName, java.lang.String proxyPassword)
          Sets a proxy server context to this manager.
 void verifyHostKey(java.lang.String hostName, int port, java.lang.String keyAlgorithm, byte[] hostKey)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BasicAuthenticationManager

public BasicAuthenticationManager(java.lang.String userName,
                                  java.lang.String password)
Creates an auth manager given a user credential - a username and password.

Parameters:
userName - a username
password - a password

BasicAuthenticationManager

public BasicAuthenticationManager(java.lang.String userName,
                                  java.io.File keyFile,
                                  java.lang.String passphrase,
                                  int portNumber)
Creates an auth manager given a user credential - a username and an ssh private key.

Parameters:
userName - a username
keyFile - a private key file
passphrase - a password to the private key
portNumber - a port number over which an ssh tunnel is established

BasicAuthenticationManager

public BasicAuthenticationManager(SVNAuthentication[] authentications)
Creates an auth manager given user credentials to use.

Parameters:
authentications - user credentials
Method Detail

acknowledgeAuthentication

public static void acknowledgeAuthentication(boolean accepted,
                                             java.lang.String kind,
                                             java.lang.String realm,
                                             SVNErrorMessage errorMessage,
                                             SVNAuthentication authentication,
                                             SVNURL accessedURL,
                                             ISVNAuthenticationManager authManager)
                                      throws SVNException
Throws:
SVNException

setAuthentications

public void setAuthentications(SVNAuthentication[] authentications)
Sets the given user credentials to this manager.

Parameters:
authentications - user credentials

setProxy

public void setProxy(java.lang.String proxyHost,
                     int proxyPort,
                     java.lang.String proxyUserName,
                     java.lang.String proxyPassword)
Sets a proxy server context to this manager.

Parameters:
proxyHost - a proxy server hostname
proxyPort - a proxy server port
proxyUserName - a username to supply to a proxy machine
proxyPassword - a password to supply to a proxy machine

getFirstAuthentication

public SVNAuthentication getFirstAuthentication(java.lang.String kind,
                                                java.lang.String realm,
                                                SVNURL url)
                                         throws SVNException
Returns the first user's authentication credentials.

Specified by:
getFirstAuthentication in interface ISVNAuthenticationManager
Parameters:
kind - credentials kind; valid kinds are ISVNAuthenticationManager.SSH, ISVNAuthenticationManager.PASSWORD, ISVNAuthenticationManager.USERNAME, ISVNAuthenticationManager.SSL, ISVNAuthenticationManager.USERNAME
realm - authentication realm
url - repository url
Returns:
first user's credentials
Throws:
SVNException - exception with SVNErrorCode.RA_NOT_AUTHORIZED error code - in case of invalid kind

getNextAuthentication

public SVNAuthentication getNextAuthentication(java.lang.String kind,
                                               java.lang.String realm,
                                               SVNURL url)
                                        throws SVNException
Returns next user authentication credentials. This method is called whenever the first credentials returned by getFirstAuthentication(String, String, SVNURL) failed to authenticate the user.

Specified by:
getNextAuthentication in interface ISVNAuthenticationManager
Parameters:
kind - credentials kind; valid kinds are ISVNAuthenticationManager.SSH, ISVNAuthenticationManager.PASSWORD, ISVNAuthenticationManager.USERNAME, ISVNAuthenticationManager.SSL, ISVNAuthenticationManager.USERNAME
realm - authentication realm
url - repository url
Returns:
next user's authentication credentials
Throws:
SVNException - exception with SVNErrorCode.RA_NOT_AUTHORIZED error code - in case of invalid kind

setAuthenticationProvider

public void setAuthenticationProvider(ISVNAuthenticationProvider provider)
Does nothing.

Specified by:
setAuthenticationProvider in interface ISVNAuthenticationManager
Parameters:
provider -

getProxyManager

public ISVNProxyManager getProxyManager(SVNURL url)
                                 throws SVNException
Returns itself as a proxy manager.

Specified by:
getProxyManager in interface ISVNAuthenticationManager
Parameters:
url - a repository location that will be accessed over the proxy server for which a manager is needed
Returns:
a proxy manager
Throws:
SVNException

getTrustManager

public javax.net.ssl.TrustManager getTrustManager(SVNURL url)
                                           throws SVNException
Returns null.

Specified by:
getTrustManager in interface ISVNAuthenticationManager
Parameters:
url - repository url
Returns:
null
Throws:
SVNException
Since:
1.2.0

acknowledgeAuthentication

public void acknowledgeAuthentication(boolean accepted,
                                      java.lang.String kind,
                                      java.lang.String realm,
                                      SVNErrorMessage errorMessage,
                                      SVNAuthentication authentication)
Does nothing.

Specified by:
acknowledgeAuthentication in interface ISVNAuthenticationManager
Parameters:
accepted -
kind -
realm -
errorMessage -
authentication -

acknowledgeTrustManager

public void acknowledgeTrustManager(javax.net.ssl.TrustManager manager)
Does nothing.

Specified by:
acknowledgeTrustManager in interface ISVNAuthenticationManager
Parameters:
manager -
Since:
1.2.0

isAuthenticationForced

public boolean isAuthenticationForced()
Tells whether authentication should be tried despite not being challenged from the server yet.

By default the return value is always false until this behavior is changed via a call to setAuthenticationForced(boolean).

Specified by:
isAuthenticationForced in interface ISVNAuthenticationManager
Returns:
authentication force flag

setAuthenticationForced

public void setAuthenticationForced(boolean forced)
Sets whether authentication should be forced or not.

Parameters:
forced - authentication force flag
See Also:
isAuthenticationForced()

getProxyHost

public java.lang.String getProxyHost()
Returns the proxy host name.

Specified by:
getProxyHost in interface ISVNProxyManager
Returns:
the proxy host argument value specified via the setProxy(String, int, String, String) method

getProxyPort

public int getProxyPort()
Returns the proxy port number.

Specified by:
getProxyPort in interface ISVNProxyManager
Returns:
the proxy port argument value specified via the setProxy(String, int, String, String) method

getProxyUserName

public java.lang.String getProxyUserName()
Returns the proxy user name.

Specified by:
getProxyUserName in interface ISVNProxyManager
Returns:
the proxy user name argument value specified via the setProxy(String, int, String, String) method

getProxyPassword

public java.lang.String getProxyPassword()
Returns the password to authenticate against the proxy server.

Specified by:
getProxyPassword in interface ISVNProxyManager
Returns:
the proxy password argument value specified via the setProxy(String, int, String, String) method

acknowledgeProxyContext

public void acknowledgeProxyContext(boolean accepted,
                                    SVNErrorMessage errorMessage)
Does nothing.

Specified by:
acknowledgeProxyContext in interface ISVNProxyManager
Parameters:
accepted -
errorMessage -

getReadTimeout

public int getReadTimeout(SVNRepository repository)
Returns connection timeout value.

This implementation returns a read timeout value equal to 3600 seconds for http or https access operations. If repository uses a different access protocol, the return value will be 0.

Specified by:
getReadTimeout in interface ISVNAuthenticationManager
Parameters:
repository - repository access object
Returns:
read timeout value in milliseconds
Since:
1.2.0

getConnectTimeout

public int getConnectTimeout(SVNRepository repository)
Returns connection timeout value.

This implementation returns a connection timeout value equal to 60 seconds for http or https access operations. If repository uses a different access protocol, the return value will be 0.

Specified by:
getConnectTimeout in interface ISVNAuthenticationManager
Parameters:
repository - repository access object
Returns:
connection timeout value in milliseconds
Since:
1.2.0

verifyHostKey

public void verifyHostKey(java.lang.String hostName,
                          int port,
                          java.lang.String keyAlgorithm,
                          byte[] hostKey)
                   throws SVNException
Specified by:
verifyHostKey in interface ISVNSSHHostVerifier
Throws:
SVNException