Package net.shibboleth.idp.authn.impl

# Class PopulateSubjectCanonicalizationContext

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.authn.AbstractSubjectCanonicalizationAction
net.shibboleth.idp.authn.impl.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 Summary

Fields
Modifier and Type
Field
Description
`private Map<String,SubjectCanonicalizationFlowDescriptor>`
`availableFlows`
The flows to make available for possible use.
`private final org.slf4j.Logger`
`log`
Class logger.
`private Collection<String>`
`usableFlows`
This is the actual set of descriptor component IDs to install for use in their designated order.

## Constructor Summary

Constructors
Constructor
Description
`PopulateSubjectCanonicalizationContext()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext, SubjectCanonicalizationContext c14nContext)`
Performs this authentication action.
`void`
`setAvailableFlows(Collection<SubjectCanonicalizationFlowDescriptor> flows)`
Set the flows available for possible use.
`void`
`setAvailableFlows(IdentifiedComponentManager<SubjectCanonicalizationFlowDescriptor> manager)`
Set the flows available for possible use via a manager object.
`void`
`setUsableFlows(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.

### Methods inherited from class net.shibboleth.idp.authn.AbstractSubjectCanonicalizationAction

`applyTransforms, doExecute, doPreExecute, doPreExecute, setLookupStrategy, setLowercase, setTransforms, setTrim, setUppercase`

### Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction

`doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy`

### Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction

`getActivationCondition, setActivationCondition`

### Methods inherited from class org.opensaml.profile.action.AbstractProfileAction

`doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplier`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitialized`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.shibboleth.shared.component.InitializableComponent

`initialize, isInitialized`

## 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