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 java.lang.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 and Description
    `BasicAuthenticationManager(java.lang.String userName, java.io.File keyFile, java.lang.String passphrase, int portNumber)` Deprecated. Use `newInstance(String, File, char[], int)` method
    `BasicAuthenticationManager(java.lang.String userName, java.lang.String password)` Deprecated. Use `newInstance(String, char[])` method
    `BasicAuthenticationManager(SVNAuthentication[] authentications)` Creates an auth manager given user credentials to use.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)` Utility method to acknowledge successful or failed authentication attempt
    `void` | `acknowledgeProxyContext(boolean accepted, SVNErrorMessage errorMessage)` Does nothing.
    `void` | `acknowledgeTrustManager(javax.net.ssl.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(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()` Deprecated. Use `getProxyPasswordValue()`
    `char[]` | `getProxyPasswordValue()` 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.
    `static BasicAuthenticationManager` | `newInstance(java.lang.String userName, char[] password)` Creates an auth manager given a user credential - a username and password.
    `static BasicAuthenticationManager` | `newInstance(java.lang.String userName, java.io.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(java.lang.String proxyHost, int proxyPort, java.lang.String proxyUserName, char[] proxyPassword)` Sets a proxy server context to this manager.
    `void` | `setProxy(java.lang.String proxyHost, int proxyPort, java.lang.String proxyUserName, java.lang.String proxyPassword)` Deprecated.
    `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)

      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(java.lang.String userName,
                                    java.io.File keyFile,
                                    java.lang.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 Detail

    - #### newInstance

          public static BasicAuthenticationManager newInstance(java.lang.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(java.lang.String userName,
                                               java.io.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,
                                       java.lang.String kind,
                                       java.lang.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(java.lang.String proxyHost,
                      int proxyPort,
                      java.lang.String proxyUserName,
                      java.lang.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(java.lang.String proxyHost,
                      int proxyPort,
                      java.lang.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(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()

      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(java.lang.String hostName,
                           int port,
                           java.lang.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