# 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.

Author:
  Craig R. McClanahan

- ## 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)`
  `void`
  `logout(Request 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 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
    Throws:
      `ServletException`

  - ### logout

    void logout(Request request)