Package org.tmatesoft.svn.core.auth

# Class BasicAuthenticationManager

java.lang.Object
org.tmatesoft.svn.core.auth.BasicAuthenticationManager

All Implemented Interfaces:
  `ISVNAuthenticationManager`, `ISVNProxyManager`, `ISVNProxyManagerEx`, `ISVNSSHHostVerifier`

public class BasicAuthenticationManager extends Object implements ISVNAuthenticationManager, ISVNProxyManagerEx, 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
Version:
  1.3
Author:
  TMate Software Ltd.
See Also:
  - `ISVNAuthenticationProvider`

## Field Summary

### Fields inherited from interface org.tmatesoft.svn.core.auth.ISVNAuthenticationManager

`PASSWORD, SSH, SSL, USERNAME`

## Constructor Summary

Constructors
Constructor
Description
`BasicAuthenticationManager(String userName, File keyFile, String passphrase, int portNumber)`
Deprecated.
Use `newInstance(String, File, char[], int)` method
`BasicAuthenticationManager(String userName, String password)`
Deprecated.
Use `newInstance(String, char[])` method
`BasicAuthenticationManager(SVNAuthentication[] authentications)`
Creates an auth manager given user credentials to use.

## Method Summary

Modifier and Type
Method
Description
`void`
`acknowledgeAuthentication(boolean accepted, String kind, String realm, SVNErrorMessage errorMessage, SVNAuthentication authentication)`
Does nothing.
`static void`
`acknowledgeAuthentication(boolean accepted, String kind, String realm, SVNErrorMessage errorMessage, SVNAuthentication authentication, SVNURL accessedURL, ISVNAuthenticationManager authManager)`
Utility method to acknowledge successful or failed authentication attempt
`void`
`acknowledgeProxyContext(boolean accepted, SVNErrorMessage errorMessage)`
Does nothing.
`void`
`acknowledgeTrustManager(TrustManager manager)`
Does nothing.
`void`
`dismissSensitiveData()`
Dismiss cached sensitive data (e.g. password) Calling this method clears and removes all credentials stored in this authentication manager.
`int`
`getConnectTimeout(SVNRepository repository)`
Returns connection timeout value.
`SVNAuthentication`
`getFirstAuthentication(String kind, String realm, SVNURL url)`
Returns the first user's authentication credentials.
`SVNAuthentication`
`getNextAuthentication(String kind, String realm, SVNURL url)`
Returns next user authentication credentials.
`String`
`getProxyHost()`
Returns the proxy host name.
`ISVNProxyManager`
`getProxyManager(SVNURL url)`
Returns itself as a proxy manager.
`String`
`getProxyPassword()`
Deprecated.
Use `getProxyPasswordValue()`
`char[]`
`getProxyPasswordValue()`
Returns the password to authenticate against the proxy server.
`int`
`getProxyPort()`
Returns the proxy port number.
`String`
`getProxyUserName()`
Returns the proxy user name.
`int`
`getReadTimeout(SVNRepository repository)`
Returns connection timeout value.
`TrustManager`
`getTrustManager(SVNURL url)`
Returns null.
`boolean`
`isAuthenticationForced()`
Tells whether authentication should be tried despite not being challenged from the server yet.
`static BasicAuthenticationManager`
`newInstance(String userName, char[] password)`
Creates an auth manager given a user credential - a username and password.
`static BasicAuthenticationManager`
`newInstance(String userName, File keyFile, char[] passphrase, int portNumber)`
Creates an auth manager given a user credential - a username and an ssh private key.
`static BasicAuthenticationManager`
`newInstance(SVNAuthentication[] credentials)`
Creates an auth manager given user credentials to use.
`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(String proxyHost, int proxyPort, String proxyUserName, char[] proxyPassword)`
Sets a proxy server context to this manager.
`void`
`setProxy(String proxyHost, int proxyPort, String proxyUserName, String proxyPassword)`
Deprecated.
`void`
`verifyHostKey(String hostName, int port, String keyAlgorithm, byte[] hostKey)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### BasicAuthenticationManager

public BasicAuthenticationManager(String userName, String password)
Deprecated.
Use `newInstance(String, char[])` method
Creates an auth manager given a user credential - a username and password.

Parameters:
  `userName` - a username
  `password` - a password

### BasicAuthenticationManager

public BasicAuthenticationManager(String userName, File keyFile, String passphrase, int portNumber)
Deprecated.
Use `newInstance(String, File, char[], int)` method
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 Details

### newInstance

public static BasicAuthenticationManager newInstance(String userName, char[] password)
Creates an auth manager given a user credential - a username and password.

Parameters:
  `userName` - a username
  `password` - a password
Since:
  1.8.9

### newInstance

public static BasicAuthenticationManager newInstance(String userName, File keyFile, char[] 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
Since:
  1.8.9

### newInstance

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

Parameters:
  `credentials` - user credentials
Since:
  1.8.9

### acknowledgeAuthentication

public static void acknowledgeAuthentication(boolean accepted, String kind, String realm, SVNErrorMessage errorMessage, SVNAuthentication authentication, SVNURL accessedURL, ISVNAuthenticationManager authManager) throws SVNException
Utility method to acknowledge successful or failed authentication attempt

Throws:
  `SVNException`

### setAuthentications

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

Parameters:
  `authentications` - user credentials

### setProxy

public void setProxy(String proxyHost, int proxyPort, String proxyUserName, String proxyPassword)
Deprecated.
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

### setProxy

public void setProxy(String proxyHost, int proxyPort, String proxyUserName, char[] 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(String kind, 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(String kind, 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 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, String kind, String realm, SVNErrorMessage errorMessage, SVNAuthentication authentication)
Does nothing.

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

### acknowledgeTrustManager

public void acknowledgeTrustManager(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 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 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 String getProxyPassword()
Deprecated.
Use `getProxyPasswordValue()`
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

### getProxyPasswordValue

public char[] getProxyPasswordValue()
Returns the password to authenticate against the proxy server.

Specified by:
  `getProxyPasswordValue` in interface `ISVNProxyManagerEx`
Returns:
  the proxy password argument value specified via the `setProxy(String, int, String, String)` method
Since:
  1.8.9

### 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(String hostName, int port, String keyAlgorithm, byte[] hostKey) throws SVNException

Specified by:
  `verifyHostKey` in interface `ISVNSSHHostVerifier`
Throws:
  `SVNException`

### dismissSensitiveData

public void dismissSensitiveData()
Dismiss cached sensitive data (e.g. password) Calling this method clears and removes all credentials stored in this authentication manager.

Since:
  1.8.9