Package org.apache.tomcat.websocket

## Class Authenticator

- java.lang.Object
- - org.apache.tomcat.websocket.Authenticator

- Direct Known Subclasses:
    `BasicAuthenticator`, `DigestAuthenticator`

      public abstract class Authenticator
      extends Object

  Base class for the authentication methods used by the WebSocket client.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Authenticator()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract String` | `getAuthorization​(String requestUri, String authenticateHeader, String userName, String userPassword, String userRealm)` | Generate the authorization header value that will be sent to the server.
    `abstract String` | `getSchemeName()` | Get the authentication method.
    `Map<String,​String>` | `parseAuthenticateHeader​(String authenticateHeader)` | Utility method to parse the authentication header.
    `protected void` | `validatePassword​(String password)` |
    `protected void` | `validateRealm​(String userRealm, String serverRealm)` |
    `protected void` | `validateUsername​(String userName)` |

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

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

- - ### Constructor Detail

    - #### Authenticator

          public Authenticator()

  - ### Method Detail

    - #### getAuthorization

          public abstract String getAuthorization​(String requestUri,
                                                  String authenticateHeader,
                                                  String userName,
                                                  String userPassword,
                                                  String userRealm)
                                           throws AuthenticationException

      Generate the authorization header value that will be sent to the server.
      Parameters:
        `requestUri` - The request URI
        `authenticateHeader` - The server authentication header received
        `userName` - The user name
        `userPassword` - The user password
        `userRealm` - The realm for which the provided user name and password are valid. `null` to indicate all realms.
      Returns:
        The generated authorization header value
      Throws:
        `AuthenticationException` - When an error occurs

    - #### getSchemeName

          public abstract String getSchemeName()

      Get the authentication method.
      Returns:
        the authentication scheme

    - #### parseAuthenticateHeader

          public Map<String,​String> parseAuthenticateHeader​(String authenticateHeader)

      Utility method to parse the authentication header.
      Parameters:
        `authenticateHeader` - The server authenticate header received
      Returns:
        a map of authentication parameter names and values

    - #### validateUsername

          protected void validateUsername​(String userName)
                                   throws AuthenticationException

      Throws:
        `AuthenticationException`

    - #### validatePassword

          protected void validatePassword​(String password)
                                   throws AuthenticationException

      Throws:
        `AuthenticationException`

    - #### validateRealm

          protected void validateRealm​(String userRealm,
                                       String serverRealm)
                                throws AuthenticationException

      Throws:
        `AuthenticationException`