Package net.shibboleth.idp.session.impl

# Class PopulateSessionContext

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

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

public class PopulateSessionContext extends AbstractProfileAction
A profile action that populates a `SessionContext` with an active, valid `IdPSession`.

Event:
  `EventIds.PROCEED_EVENT_ID`
Postcondition:
  As above, and the session will be bound to the client's address if the underlying `SessionResolver` is configured to do so.

## Field Summary

Fields
Modifier and Type
Field
Description
`private Function<ProfileRequestContext,String>`
`addressLookupStrategy`
Function to override source of address to bind session.
`private final org.slf4j.Logger`
`log`
Class logger.
`private Function<ProfileRequestContext,SessionContext>`
`sessionContextCreationStrategy`
Creation/lookup function for SessionContext.
`private SessionResolver`
`sessionResolver`
Session resolver.
`private Function<ProfileRequestContext,CriteriaSet>`
`sessionResolverCriteriaStrategy`
Function to return `CriteriaSet` to give to session resolver.

## Constructor Summary

Constructors
Constructor
Description
`PopulateSessionContext()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`protected void`
`doInitialize()`
`void`
`setAddressLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set an optional lookup strategy to obtain the address to which to bind the session.
`void`
`setSessionContextCreationStrategy(Function<ProfileRequestContext,SessionContext> strategy)`
Set the creation/lookup strategy for the SessionContext to populate.
`void`
`setSessionResolver(SessionResolver resolver)`
Set the `SessionResolver` to use.
`void`
`setSessionResolverCriteriaStrategy(Function<ProfileRequestContext,CriteriaSet> strategy)`
Set the strategy for building the `CriteriaSet` to feed into the `SessionResolver`.

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

### sessionResolver

@NonnullAfterInit private SessionResolver sessionResolver
Session resolver.

### sessionContextCreationStrategy

@Nonnull private Function<ProfileRequestContext,SessionContext> sessionContextCreationStrategy
Creation/lookup function for SessionContext.

### sessionResolverCriteriaStrategy

@Nonnull private Function<ProfileRequestContext,CriteriaSet> sessionResolverCriteriaStrategy
Function to return `CriteriaSet` to give to session resolver.

### addressLookupStrategy

@Nullable private Function<ProfileRequestContext,String> addressLookupStrategy
Function to override source of address to bind session.

## Constructor Details

### PopulateSessionContext

public PopulateSessionContext()
Constructor.

## Method Details

### setSessionResolver

public void setSessionResolver(@Nonnull SessionResolver resolver)
Set the `SessionResolver` to use.

Parameters:
  `resolver` - session resolver to use

### setSessionContextCreationStrategy

public void setSessionContextCreationStrategy(@Nonnull Function<ProfileRequestContext,SessionContext> strategy)
Set the creation/lookup strategy for the SessionContext to populate.

Parameters:
  `strategy` - creation/lookup strategy

### setAddressLookupStrategy

public void setAddressLookupStrategy(@Nullable Function<ProfileRequestContext,String> strategy)
Set an optional lookup strategy to obtain the address to which to bind the session.

Parameters:
  `strategy` - lookup strategy
Since:
  4.2.0

### setSessionResolverCriteriaStrategy

public void setSessionResolverCriteriaStrategy(@Nonnull Function<ProfileRequestContext,CriteriaSet> strategy)
Set the strategy for building the `CriteriaSet` to feed into the `SessionResolver`.

Parameters:
  `strategy` - building strategy

### doInitialize

protected void doInitialize() throws ComponentInitializationException

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

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`