Class AbstractProfileAction
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction
- Direct Known Subclasses:
AbstractConditionalProfileAction,AbstractDecryptAction,AbstractMessageChannelSecurity,AbstractResponseShellAction,AddNameIdentifierToSubjects,AddNameIDToSubjects,AddResponseShell,AddSOAPFault,AddStatusResponseShell,AddStatusToResponse,AddStatusToResponse,AddSubjectConfirmationToSubjects,AddSubjectConfirmationToSubjects,CheckAccess,CopyNameIdentifierFromRequest,CopyNameIDFromRequest,DecodeMessage,EncodeMessage,LoadClientStorageServices,LogEvent,LogLocalStorageSaveResults,PopulateClientStorageLoadContext,PopulateClientStorageSaveContext,PopulateClientTLSValidationParameters,PopulateMetricContext,ResolveArtifact,ResolveArtifacts,SaveCookieBackedClientStorageServices,SetProfileId,SignAssertions,ValidateAssertions,VerifyChannelBindings
Prototype to indicate that it is stateful.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate NonnullSupplier<HttpServletRequest>Supplier for the Current HTTP request, if available.private NonnullSupplier<HttpServletResponse>Current HTTP response, if available.private StringCached log prefix.private booleanHasdoPreExecute(ProfileRequestContext)been called?. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoExecute(ProfileRequestContext profileRequestContext) Performs this action.protected voiddoPostExecute(ProfileRequestContext profileRequestContext) Called after execution, actions may override this method to perform post-processing for a request.protected voiddoPostExecute(ProfileRequestContext profileRequestContext, Exception e) Called after execution, actions may override this method to perform post-processing for a request.protected booleandoPreExecute(ProfileRequestContext profileRequestContext) Called prior to execution, actions may override this method to perform pre-processing for a request.Get the current HTTP request if available, raising anIllegalStateExceptionif absent.Get the current HTTP response if available, raising anIllegalStateExceptionif absent.voidexecute(ProfileRequestContext profileRequestContext) Performs this action.Get the current HTTP request if available.Get the supplier for HTTP request if available.Get the current HTTP response if available.Get the current HTTP response supplier if available.protected StringReturn a prefix for logging messages for this component.protected booleanHas thedoPreExecute(ProfileRequestContext)method been entirely called? Note the unsynchronized access.voidsetHttpServletRequestSupplier(NonnullSupplier<HttpServletRequest> requestSupplier) Set the current HTTP request Supplier.voidSet the supplier of the current HTTP response.Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
logPrefix
Cached log prefix. -
httpServletRequestSupplier
Supplier for the Current HTTP request, if available. -
httpServletResponseSupplier
Current HTTP response, if available. -
preExecuted
private boolean preExecutedHasdoPreExecute(ProfileRequestContext)been called?. Only ever set to true
-
-
Constructor Details
-
AbstractProfileAction
public AbstractProfileAction()
-
-
Method Details
-
getHttpServletRequest
Get the current HTTP request if available.- Returns:
- current HTTP request
-
ensureHttpServletRequest
Get the current HTTP request if available, raising anIllegalStateExceptionif absent.- Returns:
- current HTTP request
- Since:
- 5.0.0
-
getHttpServletRequestSupplier
Get the supplier for HTTP request if available.- Returns:
- current HTTP request
-
getHttpServletResponse
Get the current HTTP response if available.- Returns:
- current HTTP response or null
-
ensureHttpServletResponse
Get the current HTTP response if available, raising anIllegalStateExceptionif absent.- Returns:
- current HTTP response
- Since:
- 5.0.0
-
getHttpServletResponseSupplier
Get the current HTTP response supplier if available.- Returns:
- current HTTP response supplier or null
-
execute
Performs this action.- Specified by:
executein interfaceProfileAction- Parameters:
profileRequestContext- the current IdP profile request context
-
doPreExecute
Called prior to execution, actions may override this method to perform pre-processing for a request.If false is returned, execution will not proceed, and the action should attach an
EventContextto 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.
- Parameters:
profileRequestContext- the current IdP profile request context- Returns:
- true iff execution should proceed
-
doExecute
Performs this action. Actions must override this method to perform their work.- Parameters:
profileRequestContext- the current IdP profile request context
-
doPostExecute
Called after execution, actions may override this method to perform post-processing for a request.Actions must not "fail" during this step and will not have the opportunity to signal events at this stage. This method will not be called if
doPreExecute(org.opensaml.profile.context.ProfileRequestContext)fails, but is called if an exception is raised bydoExecute(org.opensaml.profile.context.ProfileRequestContext).- Parameters:
profileRequestContext- the current IdP profile request context
-
doPostExecute
protected void doPostExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull Exception e) Called after execution, actions may override this method to perform post-processing for a request.Actions must not "fail" during this step and will not have the opportunity to signal events at this stage. This method will not be called if
doPreExecute(org.opensaml.profile.context.ProfileRequestContext)fails, but is called if an exception is raised bydoExecute(org.opensaml.profile.context.ProfileRequestContext).This version of the method will be called if an exception is raised during execution of the action. The overall action result will be to raise this error, so any errors inadvertently raised by this method will be logged and superseded.
The default implementation simply calls the error-less version of this method.
- Parameters:
profileRequestContext- the current IdP profile request contexte- an exception raised by thedoExecute(org.opensaml.profile.context.ProfileRequestContext)method
-
isPreExecuteCalled
protected boolean isPreExecuteCalled()Has thedoPreExecute(ProfileRequestContext)method been entirely called? Note the unsynchronized access. The underlying field is only ever set true, so if true is returned it is correct, if false is returned is is not safe to make any assumptions (even if there was an call in flight.- Returns:
- whether the preExecute hook was called
- Since:
- 5.0.0
-
getLogPrefix
Return a prefix for logging messages for this component.- Returns:
- a string for insertion at the beginning of any log messages
-