Package net.shibboleth.idp.authn.impl
Class SelectSubjectCanonicalizationFlow
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.SelectSubjectCanonicalizationFlow
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
A canonicalization action that selects a canonicalization flow to invoke.
This is the heart of the c14n processing sequence, and runs after the
SubjectCanonicalizationContext has been fully populated. It uses the potential flows,
and their associated activation conditions to decide how to proceed.
An enhancement added allows use of "inline" functional c14n implementations that
don't require the sophistication of a webflow. When an inline bean is executed,
its resulting events are relayed back as the result of this action in the case
of EventIds.PROCEED_EVENT_ID or AuthnEventIds.INVALID_SUBJECT,
or transformed into AuthnEventIds.RESELECT_FLOW for any other event.
After exhausting all options, AuthnEventIds.NO_POTENTIAL_FLOW is returned.
- Event:
EventIds.PROCEED_EVENT_ID,AuthnEventIds.NO_POTENTIAL_FLOW,AuthnEventIds.RESELECT_FLOW, Selected flow ID to execute- Precondition:
ProfileRequestContext.getSubcontext(SubjectCanonicalizationContext.class) != null
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoExecute(ProfileRequestContext profileRequestContext, SubjectCanonicalizationContext c14nContext) Performs this authentication action.protected booleandoPreExecute(ProfileRequestContext profileRequestContext, SubjectCanonicalizationContext c14nContext) Performs this c14n action's pre-execute step.selectUnattemptedFlow(ProfileRequestContext profileRequestContext, SubjectCanonicalizationContext c14nContext) Select the first potential flow not found in the intermediate flows collection, and that is applicable to the context.Methods inherited from class net.shibboleth.idp.authn.AbstractSubjectCanonicalizationAction
applyTransforms, doExecute, doPreExecute, setLookupStrategy, setLowercase, setTransforms, setTrim, setUppercaseMethods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategyMethods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationConditionMethods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplierMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger.
-
-
Constructor Details
-
SelectSubjectCanonicalizationFlow
public SelectSubjectCanonicalizationFlow()
-
-
Method Details
-
doPreExecute
protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull SubjectCanonicalizationContext c14nContext) Performs this c14n action's pre-execute step. Default implementation just returns true iff a subject is set.- Overrides:
doPreExecutein classAbstractSubjectCanonicalizationAction- Parameters:
profileRequestContext- the current IdP profile request contextc14nContext- the current subject canonicalization context- Returns:
- true iff execution should continue
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull SubjectCanonicalizationContext c14nContext) Performs this authentication action. Default implementation throws an exception.- Overrides:
doExecutein classAbstractSubjectCanonicalizationAction- Parameters:
profileRequestContext- the current IdP profile request contextc14nContext- the current subject canonicalization context
-
selectUnattemptedFlow
@Nullable private SubjectCanonicalizationFlowDescriptor selectUnattemptedFlow(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull SubjectCanonicalizationContext c14nContext) Select the first potential flow not found in the intermediate flows collection, and that is applicable to the context.- Parameters:
profileRequestContext- the current IdP profile request contextc14nContext- the current c14n context- Returns:
- an eligible flow, or null
-