Package net.shibboleth.idp.cas.flow.impl

# Class UpdateIdPSessionWithSPSessionAction<RequestType,ResponseType>

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.cas.flow.impl.AbstractCASProtocolAction<RequestType,ResponseType>
net.shibboleth.idp.cas.flow.impl.UpdateIdPSessionWithSPSessionAction<RequestType,ResponseType>

Type Parameters:
  `RequestType` - request
  `ResponseType` - response

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

public class UpdateIdPSessionWithSPSessionAction<RequestType,ResponseType> extends AbstractCASProtocolAction<RequestType,ResponseType>
Conditionally updates the `IdPSession` with a `CASSPSession` to support SLO.

If the service granted access to indicates participation in SLO via `Service.isSingleLogoutParticipant()`, then a `CASSPSession` is created to track the SP session in order that it may receive SLO messages upon a request to the CAS `/logout` URI.

## Field Summary

Fields
Modifier and Type
Field
Description
`private final org.slf4j.Logger`
`log`
Class logger.
`private Function<ProfileRequestContext,String>`
`relyingPartyIdLookupStrategy`
Strategy for obtaining the relying party ID for sessions.
`private Service`
`service`
CAS service.
`private final Duration`
`sessionLifetime`
Lifetime of sessions to create.
`private final SessionResolver`
`sessionResolver`
Looks up IdP sessions.
`private Ticket`
`ticket`
Ticket.

## Constructor Summary

Constructors
Constructor
Description
`UpdateIdPSessionWithSPSessionAction(SessionResolver resolver, Duration lifetime)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`protected boolean`
`doPreExecute(ProfileRequestContext profileRequestContext)`
`void`
`setRelyingPartyIdLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set lookup strategy for relying party ID.

### Methods inherited from class net.shibboleth.idp.cas.flow.impl.AbstractCASProtocolAction

`getCASRequest, getCASResponse, getCASService, getCASTicket, getProtocolContext, setCASRequest, setCASResponse, setCASService, setCASTicket`

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

### sessionResolver

@Nonnull private final SessionResolver sessionResolver
Looks up IdP sessions.

### sessionLifetime

@Nonnull private final Duration sessionLifetime
Lifetime of sessions to create.

### relyingPartyIdLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> relyingPartyIdLookupStrategy
Strategy for obtaining the relying party ID for sessions.

### ticket

@NonnullBeforeExec private Ticket ticket
Ticket.

### service

@NonnullBeforeExec private Service service
CAS service.

## Constructor Details

### UpdateIdPSessionWithSPSessionAction

public UpdateIdPSessionWithSPSessionAction(@Nonnull SessionResolver resolver, @Nonnull Duration lifetime)
Constructor.

Parameters:
  `resolver` - Session resolver component
  `lifetime` - determines upper bound for expiration of the `CASSPSession` to be created

## Method Details

### setRelyingPartyIdLookupStrategy

public void setRelyingPartyIdLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set lookup strategy for relying party ID.

Parameters:
  `strategy` - lookup strategy
Since:
  5.0.0

### doPreExecute

protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doPreExecute` in class `AbstractConditionalProfileAction`

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`