public class HttpAuthenticationMechanismWrapper extends java.lang.Object implements HttpAuthenticationMechanism
HttpAuthenticationMechanism
interface that
can be subclassed by developers wishing to provide extra or different
functionality.
All methods default to calling the wrapped object.
Constructor and Description |
---|
HttpAuthenticationMechanismWrapper()
This constructor is intended for proxy usuage only.
|
HttpAuthenticationMechanismWrapper(HttpAuthenticationMechanism httpAuthenticationMechanism)
Constructs the wrapper with the object being delegated to.
|
Modifier and Type | Method and Description |
---|---|
void |
cleanSubject(HttpServletRequest request,
HttpServletResponse response,
HttpMessageContext httpMessageContext)
Remove mechanism specific principals and credentials from the subject and any other state the mechanism
might have used.
|
HttpAuthenticationMechanism |
getWrapped()
Returns the object that's being wrapped.
|
AuthenticationStatus |
secureResponse(HttpServletRequest request,
HttpServletResponse response,
HttpMessageContext httpMessageContext)
Secure the response, optionally.
|
AuthenticationStatus |
validateRequest(HttpServletRequest request,
HttpServletResponse response,
HttpMessageContext httpMessageContext)
Authenticate an HTTP request.
|
public HttpAuthenticationMechanismWrapper()
public HttpAuthenticationMechanismWrapper(HttpAuthenticationMechanism httpAuthenticationMechanism)
httpAuthenticationMechanism
- The wrapped object which all methods call.public HttpAuthenticationMechanism getWrapped()
public AuthenticationStatus validateRequest(HttpServletRequest request, HttpServletResponse response, HttpMessageContext httpMessageContext) throws AuthenticationException
HttpAuthenticationMechanism
This method is called in response to an HTTP client request for a resource, and is always invoked
before any Filter
or HttpServlet
. Additionally this method is called
in response to HttpServletRequest.authenticate(HttpServletResponse)
Note that by default this method is always called for every request, independent of whether the request is to a protected or non-protected resource, or whether a caller was successfully authenticated before within the same HTTP session or not.
A CDI/Interceptor spec interceptor can be used to prevent calls to this method if needed.
See AutoApplySession
and RememberMe
for two examples.
validateRequest
in interface HttpAuthenticationMechanism
request
- contains the request the client has maderesponse
- contains the response that will be send to the clienthttpMessageContext
- context for interacting with the containerAuthenticationException
- when the processing failedpublic AuthenticationStatus secureResponse(HttpServletRequest request, HttpServletResponse response, HttpMessageContext httpMessageContext) throws AuthenticationException
HttpAuthenticationMechanism
This method is called to allow for any post processing to be done on the request, and is always invoked
after any Filter
or HttpServlet
.
Note that this method is only called when a (Servlet) resource has indeed been invoked, i.e. if a previous call
to validateRequest
that was invoked before any Filter
or HttpServlet
returned SUCCESS.
secureResponse
in interface HttpAuthenticationMechanism
request
- contains the request the client has maderesponse
- contains the response that will be send to the clienthttpMessageContext
- context for interacting with the containerAuthenticationException
- when the processing failedpublic void cleanSubject(HttpServletRequest request, HttpServletResponse response, HttpMessageContext httpMessageContext)
HttpAuthenticationMechanism
This method is called in response to HttpServletRequest.logout()
and gives the authentication mechanism
the option to remove any state associated with an earlier established authenticated identity. For example, an
authentication mechanism that stores state within a cookie can send remove that cookie here.
cleanSubject
in interface HttpAuthenticationMechanism
request
- contains the request the client has maderesponse
- contains the response that will be send to the clienthttpMessageContext
- context for interacting with the container