Class SelectProfileInterceptorFlow

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, ProfileAction, Aware, MessageSource, MessageSourceAware, Action

public class SelectProfileInterceptorFlow
extends AbstractProfileInterceptorAction
A profile interceptor action that selects flows to invoke.

The flows available to be executed are held by the ProfileInterceptorContext. Available flows are executed in the order that they are configured if their activation condition evaluates to true.

This action returns the flow ID to be executed or EventIds.PROCEED_EVENT_ID if there are no flows available to be executed.

Event:
EventIds.PROCEED_EVENT_ID, Selected flow ID to execute
Precondition:
ProfileRequestContext.getSubcontext(ProfileInterceptorContext.class, true) != null
  • Field Details

    • log

      @Nonnull private final org.slf4j.Logger log
      Class logger.
  • Constructor Details

    • SelectProfileInterceptorFlow

      public SelectProfileInterceptorFlow()
  • Method Details

    • doPreExecute

      protected boolean doPreExecute​(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull ProfileInterceptorContext interceptorContext)
      Performs this profile interceptor action's pre-execute step. Default implementation returns true.
      Overrides:
      doPreExecute in class AbstractProfileInterceptorAction
      Parameters:
      profileRequestContext - the current profile request context
      interceptorContext - the current profile interceptor context
      Returns:
      true iff execution should continue
    • doExecute

      protected void doExecute​(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull ProfileInterceptorContext interceptorContext)
      Performs this profile interceptor action. Default implementation does nothing.
      Overrides:
      doExecute in class AbstractProfileInterceptorAction
      Parameters:
      profileRequestContext - the current profile request context
      interceptorContext - the current profile interceptor context
    • selectUnattemptedFlow

      @Nullable private ProfileInterceptorFlowDescriptor selectUnattemptedFlow​(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull ProfileInterceptorContext interceptorContext)
      Select the first potential flow not found in the completed flows collection, and that is applicable to the context.
      Parameters:
      profileRequestContext - the current IdP profile request context
      interceptorContext - the current profile interceptor context
      Returns:
      an eligible flow, or null