Package net.shibboleth.idp.session.impl

# Class UpdateSessionWithSPSession

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

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

public class UpdateSessionWithSPSession extends AbstractProfileAction
An action that establishes a record of an `SPSession` in an existing `IdPSession` for the client.

The `SPSession` to add is obtained using a strategy function injected into the action.

The existing session to modify is identified via a `SessionContext` attached to the `ProfileRequestContext`.

An error interacting with the session layer will result in an `EventIds.IO_ERROR` event.

Event:
  `EventIds.PROCEED_EVENT_ID`, `EventIds.INVALID_PROFILE_CTX`, `EventIds.IO_ERROR`
Postcondition:
  If ProfileRequestContext.getSubcontext(SessionContext.class).getIdPSession() != null and a non-null SPSession is supplied by the strategy function, then the steps above are performed.

## Field Summary

Fields
Modifier and Type
Field
Description
`private final org.slf4j.Logger`
`log`
Class logger.
`private Function<ProfileRequestContext,SessionContext>`
`sessionContextLookupStrategy`
Lookup function for SessionContext.
`private SessionContext`
`sessionCtx`
Existing or newly created SessionContext.
`private SessionManager`
`sessionManager`
SessionManager.
`private Function<ProfileRequestContext,SPSession>`
`spSessionCreationStrategy`
A function that returns the `SPSession` to add.

## Constructor Summary

Constructors
Constructor
Description
`UpdateSessionWithSPSession()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`protected void`
`doInitialize()`
`protected boolean`
`doPreExecute(ProfileRequestContext profileRequestContext)`
`void`
`setSessionContextLookupStrategy(Function<ProfileRequestContext,SessionContext> strategy)`
Set the lookup strategy for the SessionContext to access.
`void`
`setSessionManager(SessionManager manager)`
Set the `SessionManager` to use.
`void`
`setSPSessionCreationStrategy(Function<ProfileRequestContext,SPSession> strategy)`
Set the creation function to use to obtain the `SPSession` to add.

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

### spSessionCreationStrategy

@NonnullAfterInit private Function<ProfileRequestContext,SPSession> spSessionCreationStrategy
A function that returns the `SPSession` to add.

### sessionManager

@NonnullAfterInit private SessionManager sessionManager
SessionManager.

### sessionContextLookupStrategy

@Nonnull private Function<ProfileRequestContext,SessionContext> sessionContextLookupStrategy
Lookup function for SessionContext.

### sessionCtx

@NonnullAfterInit private SessionContext sessionCtx
Existing or newly created SessionContext.

## Constructor Details

### UpdateSessionWithSPSession

public UpdateSessionWithSPSession()
Constructor.

## Method Details

### setSPSessionCreationStrategy

public void setSPSessionCreationStrategy(@Nonnull Function<ProfileRequestContext,SPSession> strategy)
Set the creation function to use to obtain the `SPSession` to add.

Parameters:
  `strategy` - creation function to use

### setSessionManager

public void setSessionManager(@Nonnull SessionManager manager)
Set the `SessionManager` to use.

Parameters:
  `manager` - session manager to use

### setSessionContextLookupStrategy

public void setSessionContextLookupStrategy(@Nonnull Function<ProfileRequestContext,SessionContext> strategy)
Set the lookup strategy for the SessionContext to access.

Parameters:
  `strategy` - lookup strategy

### doInitialize

protected void doInitialize() throws ComponentInitializationException

Overrides:
  `doInitialize` in class `AbstractInitializableComponent`
Throws:
  `ComponentInitializationException`

### doPreExecute

protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doPreExecute` in class `AbstractConditionalProfileAction`

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`