Package net.shibboleth.idp.session.impl

# Class SelectLogoutPropagationFlow

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.session.impl.SelectLogoutPropagationFlow

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

public class SelectLogoutPropagationFlow extends AbstractProfileAction
A profile action that selects a logout propagation flow to invoke.

This is the heart of the logout propagation processing sequence, and runs after the `LogoutContext` has been populated. It uses the potential flows, and their associated activation conditions to decide how to proceed.

This is a rare case in that the standard default event, `EventIds.PROCEED_EVENT_ID`, cannot be returned, because the action must either dispatch to a flow by name, or signal an error.

Event:
  `AuthnEventIds.NO_POTENTIAL_FLOW`, Selected flow ID to execute

## Field Summary

Fields
Modifier and Type
Field
Description
`private final Function<SPSession,LogoutPropagationFlowDescriptor>`
`flowSelectorFunction`
Selection function to determine suitable LogoutPropagationFlowDescriptor for given SPSession.
`private final org.slf4j.Logger`
`log`
Class logger.
`private Function<ProfileRequestContext,LogoutPropagationContext>`
`logoutPropagationContextFunction`
Function to retrieve LogoutPropagationContext from context tree.

## Constructor Summary

Constructors
Constructor
Description
`SelectLogoutPropagationFlow(Function<SPSession,LogoutPropagationFlowDescriptor> selector)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`void`
`setLogoutPropagationContextFunction(Function<ProfileRequestContext,LogoutPropagationContext> function)`
Sets the function used to retrieve the `LogoutPropagationContext` from the context tree.

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

`doPreExecute, 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.

### flowSelectorFunction

@Nonnull private final Function<SPSession,LogoutPropagationFlowDescriptor> flowSelectorFunction
Selection function to determine suitable LogoutPropagationFlowDescriptor for given SPSession.

### logoutPropagationContextFunction

@Nonnull private Function<ProfileRequestContext,LogoutPropagationContext> logoutPropagationContextFunction
Function to retrieve LogoutPropagationContext from context tree.

## Constructor Details

### SelectLogoutPropagationFlow

public SelectLogoutPropagationFlow(@Nonnull Function<SPSession,LogoutPropagationFlowDescriptor> selector)
Constructor.

Parameters:
  `selector` - mapping function from session to flow descriptor

## Method Details

### setLogoutPropagationContextFunction

public void setLogoutPropagationContextFunction(@Nonnull Function<ProfileRequestContext,LogoutPropagationContext> function)
Sets the function used to retrieve the `LogoutPropagationContext` from the context tree.

Parameters:
  `function` - Lookup function.

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`