Class AbstractResponseShellAction<MessageType extends StatusResponseType>

Type Parameters:
MessageType - the actual message type
All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, ProfileAction

public abstract class AbstractResponseShellAction<MessageType extends StatusResponseType> extends AbstractProfileAction
Abstract action that creates an empty object derived from StatusResponseType, and sets it as the message returned by InOutOperationContext.getOutboundMessageContext().

The Status is set to StatusCode.SUCCESS as a default assumption, and this can be overridden by subsequent actions.

If an issuer value is returned via a lookup strategy, then it's set as the Issuer of the message.

Event:
EventIds.PROCEED_EVENT_ID, EventIds.INVALID_MSG_CTX
Postcondition:
ProfileRequestContext.getOutboundMessageContext().getMessage() != null
  • Field Details

  • Constructor Details

    • AbstractResponseShellAction

      public AbstractResponseShellAction()
      Constructor.
  • Method Details

    • setOverwriteExisting

      public void setOverwriteExisting(boolean flag)
      Set whether to overwrite an existing message.
      Parameters:
      flag - flag to set
    • setIdentifierGeneratorLookupStrategy

      public void setIdentifierGeneratorLookupStrategy(@Nonnull Function<ProfileRequestContext,IdentifierGenerationStrategy> strategy)
      Set the strategy used to locate the IdentifierGenerationStrategy to use.
      Parameters:
      strategy - lookup strategy
    • setIssuerLookupStrategy

      public void setIssuerLookupStrategy(@Nullable Function<ProfileRequestContext,String> strategy)
      Set the strategy used to locate the issuer value to use.
      Parameters:
      strategy - lookup strategy
    • 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.

      Overrides:
      doPreExecute in class AbstractProfileAction
      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.
      Overrides:
      doExecute in class AbstractProfileAction
      Parameters:
      profileRequestContext - the current IdP profile request context
    • getMessageType

      @Nonnull protected abstract QName getMessageType()
      Get the type of message to build.
      Returns:
      the type of message