Authenticator (Java SE 22 & JDK 22)
Description: declaration: module: jdk.httpserver, package: com.sun.net.httpserver, class: Authenticator
Keywords: com.sun.net.httpserver.Authenticator class

Module jdk.httpserver
Package com.sun.net.httpserver

# Class Authenticator

java.lang.Object
com.sun.net.httpserver.Authenticator

Direct Known Subclasses:
  `BasicAuthenticator`

public abstract class Authenticator extends Object
Authenticator represents an implementation of an HTTP authentication mechanism. Sub-classes provide implementations of specific mechanisms such as Digest or Basic auth. Instances are invoked to provide verification of the authentication information provided in all incoming requests. Note. This implies that any caching of credentials or other authentication information must be done outside of this class.

Since:
  1.6

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Authenticator.Failure`
  Indicates an authentication failure.
  `static class`
  `Authenticator.Result`
  Base class for return type from `authenticate(HttpExchange)` method.
  `static class`
  `Authenticator.Retry`
  Indicates an authentication must be retried.
  `static class`
  `Authenticator.Success`
  Indicates an authentication has succeeded and the authenticated user principal can be acquired by calling `Authenticator.Success.getPrincipal()`.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `Authenticator()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract Authenticator.Result`
  `authenticate(HttpExchange exch)`
  Called to authenticate each incoming request.

  ### Methods declared in class java.lang.Object

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

- ## Constructor Details

  - ### Authenticator

    protected Authenticator()
    Constructor for subclasses to call.

- ## Method Details

  - ### authenticate

    public abstract Authenticator.Result authenticate(HttpExchange exch)
    Called to authenticate each incoming request. The implementation must return a `Authenticator.Failure`, `Authenticator.Success` or `Authenticator.Retry` object as appropriate:
    - `Failure` means the authentication has completed, but has failed due to invalid credentials.
    - `Success` means that the authentication has succeeded, and a `Principal` object representing the user can be retrieved by calling `Authenticator.Success.getPrincipal()`.
    - `Retry` means that another HTTP exchange is required. Any response headers needing to be sent back to the client are set in the given `HttpExchange`. The response code to be returned must be provided in the `Retry` object. `Retry` may occur multiple times.
    Parameters:
      `exch` - the `HttpExchange` upon which authenticate is called
    Returns:
      the result