Top Description Fields Constructors Methods
jakarta.security.enterprise

public final Enum AuthenticationStatus

extends Enum<AuthenticationStatus>
Class Inheritance
Imports
jakarta.servlet.http.HttpServletRequest, jakarta.security.enterprise.authentication.mechanism.http.HttpAuthenticationMechanism

The AuthenticationStatus is used as a return value by primarily the HttpAuthenticationMechanism to indicate the result (status) of the authentication process.

For the result from HttpAuthenticationMechanism#validateRequest(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext) an AuthenticationStatus must be transformed by the Jakarta EE server into the corresponding Jakarta Authentication AuthStatus according to the following rules:

After the transformation as outlined above the transformed result has to be processed by the Jakarta EE server as specified by the Servlet Container Profile of the Jakarta Authentication spec.

Implementation Note

while the Jakarta Authentication Servlet Container Profile is the authoritative source on how to process the AuthStatus.SUCCESS result and this specification puts no constraints of any kind on that, the expectation is that Jakarta EE servers in practice will mainly look at the result being AuthStatus.SUCCESS or not AuthStatus.SUCCESS. Simply said, if the result is AuthStatus.SUCCESS the authenticated identity (if any) must be set (established) for the current HTTP request, otherwise not.

The return value of SecurityContext#authenticate(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters) , which is also of type AuthenticationStatus, strongly relates to the outcome of the HttpAuthenticationMechanism#validateRequest method as described above, but must be transformed by the Jakarta EE server from the corresponding outcome of the HttpServletRequest#authenticate(jakarta.servlet.http.HttpServletResponse) call as follows:

When an HttpAuthenticationMechanism was used [last status] must be the value returned by HttpAuthenticationMechanism#validateRequest.

When a Jakarta Authentication ServerAuthModule (SAM) was used and an HttpAuthenticationMechanism was not used Jakarta EE servers are encouraged, but not required, to set [last status] to the value returned by ServerAuthModule#validateRequest transformed as follows:

When a Jakarta EE Server proprietary identity store equivalent was used and an HttpAuthenticationMechanism was not used Jakarta EE servers are encouraged, but not required, to set [last status] to a value that logically corresponds to the description of each enum constant of AuthenticationStatus. This outcome should never be depended on by application code as being portable.

Application code calling SecurityContext#authenticate is expected to act on all possible values of AuthenticationStatus.

Field Summary

Modifier and TypeField and Description
public static final AuthenticationStatus
NOT_DONE

The authentication mechanism was called, but decided not to authenticate.

public static final AuthenticationStatus
SEND_CONTINUE

The authentication mechanism was called and a multi-step authentication dialog with the caller has been started (for instance, the caller has been redirected to a login page).

public static final AuthenticationStatus
SEND_FAILURE

The authentication mechanism was called but the caller was not successfully authenticated and therefore the caller principal will not be made available.

public static final AuthenticationStatus
SUCCESS

The authentication mechanism was called and the caller was successfully authenticated.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static AuthenticationStatus
public static AuthenticationStatus[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

NOT_DONEback to summary
public static final AuthenticationStatus NOT_DONE

The authentication mechanism was called, but decided not to authenticate. This status would be typically returned in pre-emptive security; the authentication mechanism is called, but authentication is optional and would only take place when for instance a specific request header is present.

SEND_CONTINUEback to summary
public static final AuthenticationStatus SEND_CONTINUE

The authentication mechanism was called and a multi-step authentication dialog with the caller has been started (for instance, the caller has been redirected to a login page). Simply said authentication is "in progress". Calling application code (if any) should not write to the response when this status is received.

SEND_FAILUREback to summary
public static final AuthenticationStatus SEND_FAILURE

The authentication mechanism was called but the caller was not successfully authenticated and therefore the caller principal will not be made available.

Note that this status should be used to indicate a logical problem (such as a credential not matching or a caller ID that can not be found). Exceptions should be used for system level problems (such as a database connection timing out).

SUCCESSback to summary
public static final AuthenticationStatus SUCCESS

The authentication mechanism was called and the caller was successfully authenticated. After the Jakarta EE server has processed this outcome, the caller principal is available.

Constructor Detail

AuthenticationStatusback to summary
private AuthenticationStatus()

Method Detail

valueOfback to summary
public static AuthenticationStatus valueOf(String name)
valuesback to summary
public static AuthenticationStatus[] values()