org.apache.hc.client5.http.auth

## Class AuthExchange

- java.lang.Object
- - org.apache.hc.client5.http.auth.AuthExchange

    @NotThreadSafe
    public class AuthExchange
    extends Object

This class represents the actual state of authentication handshake including the current `AuthScheme` used for request authorization as well as a collection of backup authentication options if available.

Since:
  4.5

### Nested Class Summary

Nested Classes
`static class` `AuthExchange.State`

### Constructor Summary

Constructors
Constructor and Description
`AuthExchange()`

### Method Summary

Methods
`Queue<AuthScheme>` `getAuthOptions()` Returns available auth options.
`AuthScheme` `getAuthScheme()` Returns actual `AuthScheme`.
`AuthExchange.State` `getState()`
`void` `reset()`
`void` `select(AuthScheme authScheme)` Resets the auth state with `AuthScheme` and clears auth options.
`void` `setOptions(Queue<AuthScheme> authOptions)` Updates the auth state with a queue of auth options.
`void` `setState(AuthExchange.State state)`
`String` `toString()`

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

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

### Constructor Detail

#### AuthExchange

    public AuthExchange()

### Method Detail

#### reset

    public void reset()

#### getState

    public AuthExchange.State getState()

#### setState

    public void setState(AuthExchange.State state)

#### getAuthScheme

    public AuthScheme getAuthScheme()

Returns actual `AuthScheme`. May be null.

#### select

    public void select(AuthScheme authScheme)

Resets the auth state with `AuthScheme` and clears auth options.

Parameters:
  `authScheme` - auth scheme. May not be null.

#### getAuthOptions

    public Queue<AuthScheme> getAuthOptions()

Returns available auth options. May be null.

#### setOptions

    public void setOptions(Queue<AuthScheme> authOptions)

Updates the auth state with a queue of auth options.

Parameters:
  `authOptions` - a queue of auth options. May not be null or empty.

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`