# Interface Authenticator

All Known Implementing Classes:
  `AuthenticatorBase, BasicAuthenticator, DigestAuthenticator, FormAuthenticator, NonLoginAuthenticator, SpnegoAuthenticator, SSLAuthenticator`

public interface Authenticator
An Authenticator is a component (usually a Valve or Container) that provides some sort of authentication service.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`authenticate(Request request, HttpServletResponse response)`
Authenticate the user making this request, based on the login configuration of the `Context` with which this Authenticator is associated.
`void`
`login(String userName, String password, Request request)`
Logs in the specified user for the given request.
`void`
`logout(Request request)`
Logs out the user associated with the given request.

## Method Details

### authenticate

boolean authenticate(Request request, HttpServletResponse response) throws IOException
Authenticate the user making this request, based on the login configuration of the `Context` with which this Authenticator is associated.

Parameters:
  `request` - Request we are processing
  `response` - Response we are populating
Returns:
  `true` if any specified constraints have been satisfied, or `false` if one or more constraints were not satisfied (in which case an authentication challenge will have been written to the response).
Throws:
  `IOException` - if an input/output error occurs

### login

void login(String userName, String password, Request request) throws ServletException
Logs in the specified user for the given request.

Parameters:
  `userName` - the user name
  `password` - the password
  `request` - the request being processed
Throws:
  `ServletException` - if a login error occurs

### logout

void logout(Request request)
Logs out the user associated with the given request.

Parameters:
  `request` - the request being processed