Package net.shibboleth.idp.session.impl

# Class RestoreProfileRequestContextTree

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.RestoreProfileRequestContextTree

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

public class RestoreProfileRequestContextTree extends AbstractProfileAction
Restores specific portions of the context tree used during logout processing to enable reuse of logout propagation subflows during back channel logout.

Some propagation flows make use of substantial portions of the tree, including the inbound/outbound contexts, audit context, relying party context, etc., so this amounts to a "push/pop" to preserve the state of the "outer" logout operation.

Event:
  `EventIds.PROCEED_EVENT_ID`, `EventIds.INVALID_PROFILE_CTX`
Precondition:
  LogoutContext.getSubcontext(InOutOperationContext.class) != null
Postcondition:
  LogoutContext.getSubcontext(InOutOperationContext.class) == null

## Field Summary

Fields
Modifier and Type
Field
Description
`private final org.slf4j.Logger`
`log`
Class logger.
`private Function<ProfileRequestContext,LogoutContext>`
`logoutContextLookupStrategy`
Looks up a LogoutContext from PRC.

## Constructor Summary

Constructors
Constructor
Description
`RestoreProfileRequestContextTree()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`void`
`setLogoutContextLookupStrategy(Function<ProfileRequestContext,LogoutContext> strategy)`
Set the lookup strategy for the `LogoutContext`.

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

### logoutContextLookupStrategy

@Nonnull private Function<ProfileRequestContext,LogoutContext> logoutContextLookupStrategy
Looks up a LogoutContext from PRC.

## Constructor Details

### RestoreProfileRequestContextTree

public RestoreProfileRequestContextTree()
Constructor.

## Method Details

### setLogoutContextLookupStrategy

public void setLogoutContextLookupStrategy(@Nonnull Function<ProfileRequestContext,LogoutContext> strategy)
Set the lookup strategy for the `LogoutContext`.

Parameters:
  `strategy` - lookup strategy

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`