org.apache.hc.client5.http.impl.auth

## Class HttpAuthenticator

- java.lang.Object
- - org.apache.hc.client5.http.impl.auth.HttpAuthenticator

    @Contract(threading=STATELESS)
    public final class HttpAuthenticator
    extends Object

Utility class that implements commons aspects of the client side HTTP authentication.

Please note that since version 5.2 this class no longer updated the authentication cache bound to the execution context.

Since:
  4.3

### Constructor Summary

Constructors
Constructor and Description
`HttpAuthenticator()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addAuthResponse(HttpHost host, ChallengeType challengeType, HttpRequest request, AuthExchange authExchange, HttpContext context)` Generates a response to the authentication challenge based on the actual `AuthExchange` state and adds it to the given `HttpRequest` message .
`boolean` `isChallenged(HttpHost host, ChallengeType challengeType, HttpResponse response, AuthExchange authExchange, HttpContext context)` Determines whether the given response represents an authentication challenge.
`boolean` `updateAuthState(HttpHost host, ChallengeType challengeType, HttpResponse response, AuthenticationStrategy authStrategy, AuthExchange authExchange, HttpContext context)` Updates the `AuthExchange` state based on the challenge presented in the response message using the given `AuthenticationStrategy`.

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### HttpAuthenticator

    public HttpAuthenticator()

### Method Detail

#### isChallenged

    public boolean isChallenged(HttpHost host,
                                ChallengeType challengeType,
                                HttpResponse response,
                                AuthExchange authExchange,
                                HttpContext context)

Determines whether the given response represents an authentication challenge.

Parameters:
  `host` - the hostname of the opposite endpoint.
  `challengeType` - the challenge type (target or proxy).
  `response` - the response message head.
  `authExchange` - the current authentication exchange state.
  `context` - the current execution context.
Returns:
  `true` if the response message represents an authentication challenge, `false` otherwise.

#### updateAuthState

    public boolean updateAuthState(HttpHost host,
                                   ChallengeType challengeType,
                                   HttpResponse response,
                                   AuthenticationStrategy authStrategy,
                                   AuthExchange authExchange,
                                   HttpContext context)

Updates the `AuthExchange` state based on the challenge presented in the response message using the given `AuthenticationStrategy`.

Parameters:
  `host` - the hostname of the opposite endpoint.
  `challengeType` - the challenge type (target or proxy).
  `response` - the response message head.
  `authStrategy` - the authentication strategy.
  `authExchange` - the current authentication exchange state.
  `context` - the current execution context.
Returns:
  `true` if the authentication state has been updated, `false` if unchanged.

#### addAuthResponse

    public void addAuthResponse(HttpHost host,
                                ChallengeType challengeType,
                                HttpRequest request,
                                AuthExchange authExchange,
                                HttpContext context)

Generates a response to the authentication challenge based on the actual `AuthExchange` state and adds it to the given `HttpRequest` message .

Parameters:
  `host` - the hostname of the opposite endpoint.
  `challengeType` - the challenge type (target or proxy).
  `request` - the request message head.
  `authExchange` - the current authentication exchange state.
  `context` - the current execution context.