# 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

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 Details

### Authenticator

public Authenticator()

## Method Details

### 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 username
  `userPassword` - The user password
  `userRealm` - The realm for which the provided username 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`