public class AddStatusToResponse extends AbstractProfileAction
Status content in a Response obtained from
a lookup strategy, typically from the outbound message context.
If the message already contains status information, this action will overwrite it.
Options allows for the creation of a StatusMessage either explicitly,
or via lookup strategy.
| Modifier and Type | Class and Description |
|---|---|
static class |
AddStatusToResponse.StatusCodeMappingFunction
A default method to map event IDs to SAML 2 StatusCode URIs based on
EventContext. |
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<java.lang.String> |
defaultStatusCodes
One or more status codes to insert.
|
private boolean |
detailedErrors
Whether to include detailed status information.
|
private com.google.common.base.Predicate<ProfileRequestContext> |
detailedErrorsCondition
Predicate determining whether detailed error information is permitted.
|
private org.slf4j.Logger |
log
Class logger.
|
private StatusResponseType |
response
Response to modify.
|
private com.google.common.base.Function<ProfileRequestContext,StatusResponseType> |
responseLookupStrategy
Strategy used to locate the
StatusResponseType to operate on. |
private com.google.common.base.Function<ProfileRequestContext,java.util.List<java.lang.String>> |
statusCodesLookupStrategy
Optional method to obtain status codes.
|
private java.lang.String |
statusMessage
A default status message to include.
|
private com.google.common.base.Function<ProfileRequestContext,java.lang.String> |
statusMessageLookupStrategy
Optional method to obtain a status message.
|
| Constructor and Description |
|---|
AddStatusToResponse()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
buildStatusCode(Status status,
java.util.List<java.lang.String> codes)
Build and attach
StatusCode element. |
private void |
buildStatusMessage(Status status,
java.lang.String message)
Build and attach
StatusMessage element. |
protected void |
doExecute(ProfileRequestContext profileRequestContext)
Performs this action.
|
protected boolean |
doPreExecute(ProfileRequestContext profileRequestContext)
Called prior to execution, actions may override this method to perform pre-processing for a request.
|
void |
setDetailedErrorsCondition(com.google.common.base.Predicate<ProfileRequestContext> condition)
Set the predicate used to determine the detailed errors condition.
|
void |
setResponseLookupStrategy(com.google.common.base.Function<ProfileRequestContext,StatusResponseType> strategy)
Set the strategy used to locate the
StatusResponseType to operate on. |
void |
setStatusCodes(java.util.List<java.lang.String> codes)
Set the list of status code values to insert, ordered such that the top level code is first
and every other code will be nested inside the previous one.
|
void |
setStatusCodesLookupStrategy(com.google.common.base.Function<ProfileRequestContext,java.util.List<java.lang.String>> strategy)
Set the optional strategy used to obtain status codes to include.
|
void |
setStatusMessage(java.lang.String message)
Set a default status message to use in the event that error detail is off,
or no specific message is obtained.
|
void |
setStatusMessageLookupStrategy(com.google.common.base.Function<ProfileRequestContext,java.lang.String> strategy)
Set the optional strategy used to obtain a status message to include.
|
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletResponse, getLogPrefix, setHttpServletRequest, setHttpServletResponsedestroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized@Nonnull private org.slf4j.Logger log
@Nonnull private com.google.common.base.Function<ProfileRequestContext,StatusResponseType> responseLookupStrategy
StatusResponseType to operate on.@Nonnull private com.google.common.base.Predicate<ProfileRequestContext> detailedErrorsCondition
@Nullable private com.google.common.base.Function<ProfileRequestContext,java.util.List<java.lang.String>> statusCodesLookupStrategy
@Nullable private com.google.common.base.Function<ProfileRequestContext,java.lang.String> statusMessageLookupStrategy
@Nonnull @NonnullElements private java.util.List<java.lang.String> defaultStatusCodes
@Nullable private java.lang.String statusMessage
private boolean detailedErrors
@Nullable private StatusResponseType response
public void setResponseLookupStrategy(@Nonnull
com.google.common.base.Function<ProfileRequestContext,StatusResponseType> strategy)
StatusResponseType to operate on.strategy - strategy used to locate the StatusResponseType to operate onpublic void setDetailedErrorsCondition(@Nonnull
com.google.common.base.Predicate<ProfileRequestContext> condition)
condition - predicate for detailed errors conditionpublic void setStatusCodesLookupStrategy(@Nullable
com.google.common.base.Function<ProfileRequestContext,java.util.List<java.lang.String>> strategy)
strategy - strategy used to obtain status codespublic void setStatusMessageLookupStrategy(@Nullable
com.google.common.base.Function<ProfileRequestContext,java.lang.String> strategy)
strategy - strategy used to obtain a status messagepublic void setStatusCodes(@Nonnull @NonnullElements
java.util.List<java.lang.String> codes)
codes - list of status code values to insertpublic void setStatusMessage(@Nullable
java.lang.String message)
message - default status messageprotected boolean doPreExecute(@Nonnull
ProfileRequestContext profileRequestContext)
If false is returned, execution will not proceed, and the action should attach an
EventContext to the context tree to signal how to continue with overall
workflow processing.
If returning successfully, the last step should be to return the result of the superclass version of this method.
doPreExecute in class AbstractProfileActionprofileRequestContext - the current IdP profile request contextprotected void doExecute(@Nonnull
ProfileRequestContext profileRequestContext)
doExecute in class AbstractProfileActionprofileRequestContext - the current IdP profile request contextprivate void buildStatusCode(@Nonnull
Status status,
@Nonnull @NonnullElements
java.util.List<java.lang.String> codes)
StatusCode element.status - the element to attach tocodes - the status codes to useprivate void buildStatusMessage(@Nonnull
Status status,
@Nonnull @NotEmpty
java.lang.String message)
StatusMessage element.status - the element to attach tomessage - the message to set