# 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