Class PopulateSubjectCanonicalizationContext

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

public class PopulateSubjectCanonicalizationContext extends AbstractSubjectCanonicalizationAction
An action that populates a SubjectCanonicalizationContext with the SubjectCanonicalizationFlowDescriptor objects configured into the IdP, optionally along with the actual descriptor IDs to try in a particular order.

The latter set filters the former and controls the order of insertion into the context.

Event:
EventIds.PROCEED_EVENT_ID
Precondition:
ProfileRequestContext.getSubcontext(SubjectCanonicalizationContext.class) != null
Postcondition:
The SubjectCanonicalizationContext is modified as above.
  • Field Details

    • log

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

      @Nonnull private Map<String,SubjectCanonicalizationFlowDescriptor> availableFlows
      The flows to make available for possible use.
    • usableFlows

      @Nonnull private Collection<String> usableFlows
      This is the actual set of descriptor component IDs to install for use in their designated order.
  • Constructor Details

    • PopulateSubjectCanonicalizationContext

      PopulateSubjectCanonicalizationContext()
      Constructor.
  • Method Details

    • setAvailableFlows

      public void setAvailableFlows(@Nonnull Collection<SubjectCanonicalizationFlowDescriptor> flows)
      Set the flows available for possible use.
      Parameters:
      flows - the flows available for possible use
    • setAvailableFlows

      public void setAvailableFlows(@Nonnull IdentifiedComponentManager<SubjectCanonicalizationFlowDescriptor> manager)
      Set the flows available for possible use via a manager object.

      Use of this variant setter should be accompanied by use of the setUsableFlows(List) method introduced to filter the eventual list.

      Parameters:
      manager - the flows available for possible use
      Since:
      5.2.0
    • setUsableFlows

      public void setUsableFlows(@Nullable List<String> usable)
      Set an optional ordered list of flow descriptor IDs that should filter the available flows and provide an alternative order of use from the injected collection's implied order.
      Parameters:
      usable - SubjectCanonicalizationFlowDescriptor IDs, in ordered list of use
      Since:
      5.2.0
    • doExecute

      protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull SubjectCanonicalizationContext c14nContext)
      Performs this authentication action. Default implementation throws an exception.
      Overrides:
      doExecute in class AbstractSubjectCanonicalizationAction
      Parameters:
      profileRequestContext - the current IdP profile request context
      c14nContext - the current subject canonicalization context