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
public abstract class AbstractProfileAction
extends AbstractInitializableComponent
implements ProfileAction
Base class for profile actions. This base class is annotated with Prototype to indicate that it is stateful.
  • Field Details

    • logPrefix

      @Nullable private String logPrefix
      Cached log prefix.
    • httpServletRequest

      @Nullable private javax.servlet.http.HttpServletRequest httpServletRequest
      Current HTTP request, if available.
    • httpServletResponse

      @Nullable private javax.servlet.http.HttpServletResponse httpServletResponse
      Current HTTP response, if available.
  • Constructor Details

    • AbstractProfileAction

      public AbstractProfileAction()
  • Method Details

    • getHttpServletRequest

      @Nullable public javax.servlet.http.HttpServletRequest getHttpServletRequest()
      Get the current HTTP request if available.
      Returns:
      current HTTP request
    • setHttpServletRequest

      public void setHttpServletRequest​(@Nullable javax.servlet.http.HttpServletRequest request)
      Set the current HTTP request.
      Parameters:
      request - current HTTP request
    • getHttpServletResponse

      @Nullable public javax.servlet.http.HttpServletResponse getHttpServletResponse()
      Get the current HTTP response.
      Returns:
      current HTTP response
    • setHttpServletResponse

      public void setHttpServletResponse​(@Nullable javax.servlet.http.HttpServletResponse response)
      Set the current HTTP response.
      Parameters:
      response - current HTTP response
    • execute

      public void execute​(@Nonnull ProfileRequestContext profileRequestContext)
      Performs this action.
      Specified by:
      execute in interface ProfileAction
      Parameters:
      profileRequestContext - the current IdP profile request context
    • doPreExecute

      protected boolean doPreExecute​(@Nonnull ProfileRequestContext profileRequestContext)
      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 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.

      Parameters:
      profileRequestContext - the current IdP profile request context
      Returns:
      true iff execution should proceed
    • doExecute

      protected void doExecute​(@Nonnull ProfileRequestContext profileRequestContext)
      Performs this action. Actions must override this method to perform their work.
      Parameters:
      profileRequestContext - the current IdP profile request context
    • doPostExecute

      protected void doPostExecute​(@Nonnull ProfileRequestContext profileRequestContext)
      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 by doExecute(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 by doExecute(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 context
      e - an exception raised by the doExecute(org.opensaml.profile.context.ProfileRequestContext) method
    • getLogPrefix

      @Nonnull @NotEmpty protected String getLogPrefix()
      Return a prefix for logging messages for this component.
      Returns:
      a string for insertion at the beginning of any log messages