io.undertow.security.impl

## Class CachedAuthenticatedSessionMechanism

- java.lang.Object
- - io.undertow.security.impl.CachedAuthenticatedSessionMechanism

All Implemented Interfaces:
  AuthenticationMechanism

    public class CachedAuthenticatedSessionMechanism
    extends Object
    implements AuthenticationMechanism

An `AuthenticationMechanism` which uses any cached `AuthenticatedSessionManager.AuthenticatedSession`s.

Author:
  Darran Lofthouse

### Nested Class Summary

### Nested classes/interfaces inherited from interface io.undertow.security.api.AuthenticationMechanism

`AuthenticationMechanism.AuthenticationMechanismOutcome, AuthenticationMechanism.ChallengeResult`

### Constructor Summary

Constructors
Constructor and Description
`CachedAuthenticatedSessionMechanism()`
`CachedAuthenticatedSessionMechanism(IdentityManager identityManager)`

### Method Summary

All Methods Instance Methods Concrete Methods
`AuthenticationMechanism.AuthenticationMechanismOutcome` `authenticate(HttpServerExchange exchange, SecurityContext securityContext)` Perform authentication of the request.
`AuthenticationMechanism.AuthenticationMechanismOutcome` `runCached(HttpServerExchange exchange, SecurityContext securityContext, AuthenticatedSessionManager sessionManager)`
`AuthenticationMechanism.ChallengeResult` `sendChallenge(HttpServerExchange exchange, SecurityContext securityContext)` Send an authentication challenge to the remote client.

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

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

### Constructor Detail

#### CachedAuthenticatedSessionMechanism

    public CachedAuthenticatedSessionMechanism()

#### CachedAuthenticatedSessionMechanism

    public CachedAuthenticatedSessionMechanism(IdentityManager identityManager)

### Method Detail

#### authenticate

    public AuthenticationMechanism.AuthenticationMechanismOutcome authenticate(HttpServerExchange exchange,
                                                                               SecurityContext securityContext)

Description copied from interface: `AuthenticationMechanism`
Perform authentication of the request. Any potentially blocking work should be performed in the handoff executor provided

Specified by:
  `authenticate` in interface `AuthenticationMechanism`
Parameters:
  `exchange` - The exchange
Returns:

#### runCached

    public AuthenticationMechanism.AuthenticationMechanismOutcome runCached(HttpServerExchange exchange,
                                                                            SecurityContext securityContext,
                                                                            AuthenticatedSessionManager sessionManager)

#### sendChallenge

    public AuthenticationMechanism.ChallengeResult sendChallenge(HttpServerExchange exchange,
                                                                 SecurityContext securityContext)

Description copied from interface: `AuthenticationMechanism`
Send an authentication challenge to the remote client.

The individual mechanisms should update the response headers and body of the message as appropriate however they should not set the response code, instead that should be indicated in the `AuthenticationMechanism.ChallengeResult` and the most appropriate overall response code will be selected. This method should not return `null`.

Specified by:
  `sendChallenge` in interface `AuthenticationMechanism`
Parameters:
  `exchange` - The exchange
  `securityContext` - The security context
Returns:
  A `AuthenticationMechanism.ChallengeResult` indicating if a challenge was sent and the desired response code.