# Uses of Interface
net.shibboleth.idp.session.SPSession

Packages that use SPSession
Package
Description
net.shibboleth.idp.cas.session.impl
CAS protocol session implementations.
net.shibboleth.idp.saml.saml2.profile.impl
Profile processing actions related to SAML 2 messages.
net.shibboleth.idp.saml.session
Classes related to use of SAML with the session layer.
net.shibboleth.idp.saml.session.impl
Implementation classes for SAML-specific session functionality.
net.shibboleth.idp.session
APIs related to the construction and management of sessions.
net.shibboleth.idp.session.context
Context classes for managing session-related state.
net.shibboleth.idp.session.context.navigate
Functions for traversing session-related contexts.
net.shibboleth.idp.session.impl
Implementations of session-related classes and interfaces.
net.shibboleth.idp.session.logic
Functions and Predicates related to the use of sessions.

## Uses of SPSession in net.shibboleth.idp.cas.session.impl

Classes in net.shibboleth.idp.cas.session.impl that implement SPSession
Modifier and Type
Class
Description
`class`
`CASSPSession`
Describes a CAS protocol-specific service provider session created in response to a successful ticket validation.
Methods in net.shibboleth.idp.cas.session.impl that return SPSession
Modifier and Type
Method
Description
`protected SPSession`
CASSPSessionSerializer.`doDeserialize(JsonObject obj, String id, Instant creation, Instant expiration)`
Implement this method to return the appropriate type of object, populated with the basic information supplied.
Methods in net.shibboleth.idp.cas.session.impl with parameters of type SPSession
Modifier and Type
Method
Description
`protected void`
CASSPSessionSerializer.`doSerializeAdditional(SPSession instance, JsonGenerator generator)`
Override this method to handle serialization of additional data.

## Uses of SPSession in net.shibboleth.idp.saml.saml2.profile.impl

Methods in net.shibboleth.idp.saml.saml2.profile.impl with parameters of type SPSession
Modifier and Type
Method
Description
`private boolean`
ProcessLogoutRequest.`sessionMatches(ProfileRequestContext profileRequestContext, SPSession session)`
Check if the `SPSession` has the appropriate service ID and SessionIndex.

## Uses of SPSession in net.shibboleth.idp.saml.session

Classes in net.shibboleth.idp.saml.session that implement SPSession
Modifier and Type
Class
Description
`class`
`SAML1SPSession`
Marker subtype for a SAML 1 session, adds no actual information other than its identity as a SAML 1 session.
`class`
`SAML2SPSession`
Extends a `BasicSPSession` with SAML 2.0 information required for reverse lookup in the case of a logout.

## Uses of SPSession in net.shibboleth.idp.saml.session.impl

Methods in net.shibboleth.idp.saml.session.impl that return SPSession
Modifier and Type
Method
Description
`SPSession`
SAML1SPSessionCreationStrategy.`apply(ProfileRequestContext input)`
`SPSession`
SAML2SPSessionCreationStrategy.`apply(ProfileRequestContext input)`
`protected SPSession`
SAML1SPSessionSerializer.`doDeserialize(JsonObject obj, String id, Instant creation, Instant expiration)`
Implement this method to return the appropriate type of object, populated with the basic information supplied.
`protected SPSession`
SAML2SPSessionSerializer.`doDeserialize(JsonObject obj, String id, Instant creation, Instant expiration)`
Implement this method to return the appropriate type of object, populated with the basic information supplied.
Methods in net.shibboleth.idp.saml.session.impl with parameters of type SPSession
Modifier and Type
Method
Description
`protected void`
SAML2SPSessionSerializer.`doSerializeAdditional(SPSession instance, JsonGenerator generator)`
Override this method to handle serialization of additional data.

## Uses of SPSession in net.shibboleth.idp.session

Classes in net.shibboleth.idp.session with type parameters of type SPSession
Modifier and Type
Class
Description
`static class`
`SPSessionSerializerRegistry.Entry<T extends SPSession>`
Wrapper type for auto-wiring serializers.
Classes in net.shibboleth.idp.session that implement SPSession
Modifier and Type
Class
Description
`class`
`BasicSPSession`
Implementation support for a concrete `SPSession` implementation.
Fields in net.shibboleth.idp.session with type parameters of type SPSession
Modifier and Type
Field
Description
`private Map<Class<? extends SPSession>,StorageSerializer<? extends SPSession>>`
SPSessionSerializerRegistry.`registry`
Storage for the registry mappings.
`private Map<Class<? extends SPSession>,StorageSerializer<? extends SPSession>>`
SPSessionSerializerRegistry.`registry`
Storage for the registry mappings.
`private final Class<? extends SPSession>`
LogoutPropagationFlowDescriptor.`sessionType`
Type of session handled by this flow.
`private final ConcurrentMap<String,Optional<SPSession>>`
AbstractIdPSession.`spSessions`
Tracks services which have been issued authentication tokens during this session.
Methods in net.shibboleth.idp.session with type parameters of type SPSession
Modifier and Type
Method
Description
`<T extends SPSession>
StorageSerializer<T>`
SPSessionSerializerRegistry.`lookup(Class<T> type)`
Get a registered `StorageSerializer` for a given `SPSession` type, if any.
Methods in net.shibboleth.idp.session that return SPSession
Modifier and Type
Method
Description
`SPSession`
AbstractIdPSession.`addSPSession(SPSession spSession)`
Add a new SP session to this IdP session, replacing any existing session for the same service.
`SPSession`
IdPSession.`addSPSession(SPSession spSession)`
Add a new SP session to this IdP session, replacing any existing session for the same service.
`SPSession`
AbstractSPSessionSerializer.`deserialize(long version, String context, String key, String value, Long expiration)`
`SPSession`
AbstractIdPSession.`doAddSPSession(SPSession spSession)`
Add a new SP session to this IdP session, replacing any existing session for the same service.
`protected abstract SPSession`
AbstractSPSessionSerializer.`doDeserialize(JsonObject obj, String id, Instant creation, Instant expiration)`
Implement this method to return the appropriate type of object, populated with the basic information supplied.
`SPSession`
AbstractIdPSession.`getSPSession(String serviceId)`
Get the SPSession for a given service.
`SPSession`
IdPSession.`getSPSession(String serviceId)`
Get the SPSession for a given service.
Methods in net.shibboleth.idp.session that return types with arguments of type SPSession
Modifier and Type
Method
Description
`Class<? extends SPSession>`
LogoutPropagationFlowDescriptor.`getSessionType()`
Get the type of `SPSession` supported by this flow descriptor.
`protected Map<String,Optional<SPSession>>`
AbstractIdPSession.`getSPSessionMap()`
Accessor for the underlying `SPSession` map maintained with the IdP session.
`Set<SPSession>`
AbstractIdPSession.`getSPSessions()`
Gets the unmodifiable collection of service sessions associated with this session.
`Set<SPSession>`
IdPSession.`getSPSessions()`
Gets the unmodifiable collection of service sessions associated with this session.
Methods in net.shibboleth.idp.session with parameters of type SPSession
Modifier and Type
Method
Description
`SPSession`
AbstractIdPSession.`addSPSession(SPSession spSession)`
Add a new SP session to this IdP session, replacing any existing session for the same service.
`SPSession`
IdPSession.`addSPSession(SPSession spSession)`
Add a new SP session to this IdP session, replacing any existing session for the same service.
`SPSession`
AbstractIdPSession.`doAddSPSession(SPSession spSession)`
Add a new SP session to this IdP session, replacing any existing session for the same service.
`boolean`
AbstractIdPSession.`doRemoveSPSession(SPSession spSession)`
Disassociate the given SP session from this IdP session.
`protected void`
AbstractSPSessionSerializer.`doSerializeAdditional(SPSession instance, JsonGenerator generator)`
Override this method to handle serialization of additional data.
`boolean`
LogoutPropagationFlowDescriptor.`isSupported(SPSession session)`
Test an input session to determine if this flow supports it.
`boolean`
AbstractIdPSession.`removeSPSession(SPSession spSession)`
Disassociate the given SP session from this IdP session.
`boolean`
IdPSession.`removeSPSession(SPSession spSession)`
Disassociate the given SP session from this IdP session.
`String`
AbstractSPSessionSerializer.`serialize(SPSession instance)`
Method parameters in net.shibboleth.idp.session with type arguments of type SPSession
Modifier and Type
Method
Description
`void`
SPSessionSerializerRegistry.`setMappings(Map<Class<? extends SPSession>,StorageSerializer<? extends SPSession>> map)`
Set the mappings to use.
`void`
SPSessionSerializerRegistry.`setMappings(Map<Class<? extends SPSession>,StorageSerializer<? extends SPSession>> map)`
Set the mappings to use.
Constructor parameters in net.shibboleth.idp.session with type arguments of type SPSession
Modifier
Constructor
Description
``
`LogoutPropagationFlowDescriptor(Class<? extends SPSession> type)`
Constructor.

## Uses of SPSession in net.shibboleth.idp.session.context

Fields in net.shibboleth.idp.session.context declared as SPSession
Modifier and Type
Field
Description
`private SPSession`
LogoutPropagationContext.`session`
SP session to be destroyed.
Fields in net.shibboleth.idp.session.context with type parameters of type SPSession
Modifier and Type
Field
Description
`private final Map<String,SPSession>`
LogoutContext.`keyedSessionMap`
An index of the session objects by an externally assigned key.
`private final Multimap<String,SPSession>`
LogoutContext.`sessionMap`
SP sessions needing logout.
Methods in net.shibboleth.idp.session.context that return SPSession
Modifier and Type
Method
Description
`SPSession`
LogoutPropagationContext.`getSession()`
Get the `SPSession` being destroyed by the logout propagation.
Methods in net.shibboleth.idp.session.context that return types with arguments of type SPSession
Modifier and Type
Method
Description
`Map<String,SPSession>`
LogoutContext.`getKeyedSessionMap()`
Get a live view of the map of sessions keyed by an external value.
`Multimap<String,SPSession>`
LogoutContext.`getSessionMap()`
Get a live view of the map of service ID/session mappings.
`Collection<SPSession>`
LogoutContext.`getSessions(String id)`
Get a live collection of sessions associated with a service.
Methods in net.shibboleth.idp.session.context with parameters of type SPSession
Modifier and Type
Method
Description
`void`
LogoutPropagationContext.`setSession(SPSession theSession)`
Set the `SPSession` to be destroyed.

## Uses of SPSession in net.shibboleth.idp.session.context.navigate

Methods in net.shibboleth.idp.session.context.navigate that return SPSession
Modifier and Type
Method
Description
`SPSession`
LogoutContextSessionLookupFunction.`apply(LogoutContext input)`

## Uses of SPSession in net.shibboleth.idp.session.impl

Fields in net.shibboleth.idp.session.impl declared as SPSession
Modifier and Type
Field
Description
`private SPSession`
PopulateLogoutPropagationContext.`session`
`SPSession` to operate on.
Fields in net.shibboleth.idp.session.impl with type parameters of type SPSession
Modifier and Type
Field
Description
`private final Function<SPSession,LogoutPropagationFlowDescriptor>`
SelectLogoutPropagationFlow.`flowSelectorFunction`
Selection function to determine suitable LogoutPropagationFlowDescriptor for given SPSession.
`private Function<ProfileRequestContext,SPSession>`
PopulateLogoutPropagationContext.`sessionLookupStrategy`
Lookup strategy for session.
`private Function<ProfileRequestContext,SPSession>`
UpdateSessionWithSPSession.`spSessionCreationStrategy`
A function that returns the `SPSession` to add.
Methods in net.shibboleth.idp.session.impl that return SPSession
Modifier and Type
Method
Description
`SPSession`
StorageBackedIdPSession.`addSPSession(SPSession spSession)`
Add a new SP session to this IdP session, replacing any existing session for the same service.
`SPSession`
BasicSPSessionCreationStrategy.`apply(ProfileRequestContext input)`
`protected SPSession`
BasicSPSessionSerializer.`doDeserialize(JsonObject obj, String id, Instant creation, Instant expiration)`
Implement this method to return the appropriate type of object, populated with the basic information supplied.
`private SPSession`
PopulateLogoutPropagationContext.`getSessionByReference(RequestContext requestContext, String key)`
Get an `SPSession` by reference.
`private SPSession`
PopulateLogoutPropagationContext.`getSessionByValue(String sessionVal)`
Get an `SPSession` by value.
`SPSession`
StorageBackedIdPSession.`getSPSession(String serviceId)`
Get the SPSession for a given service.
`private SPSession`
StorageBackedIdPSession.`loadSPSessionFromStorage(String serviceId)`
Loads a `SPSession` record from storage and deserializes it using the object registered in the attached `SPSessionSerializerRegistry`.
Methods in net.shibboleth.idp.session.impl that return types with arguments of type SPSession
Modifier and Type
Method
Description
`protected Map<String,Optional<SPSession>>`
StorageBackedIdPSession.`getSPSessionMap()`
Accessor for the underlying `SPSession` map maintained with the IdP session.
`Set<SPSession>`
StorageBackedIdPSession.`getSPSessions()`
Gets the unmodifiable collection of service sessions associated with this session.
Methods in net.shibboleth.idp.session.impl with parameters of type SPSession
Modifier and Type
Method
Description
`SPSession`
StorageBackedIdPSession.`addSPSession(SPSession spSession)`
Add a new SP session to this IdP session, replacing any existing session for the same service.
`protected void`
StorageBackedSessionManager.`indexBySPSession(IdPSession idpSession, SPSession spSession, int attempts)`
Insert or update a secondary index record from an SPSession to a parent IdPSession.
`boolean`
StorageBackedIdPSession.`removeSPSession(SPSession spSession)`
Disassociate the given SP session from this IdP session.
`private boolean`
StorageBackedIdPSession.`saveSPSessionToStorage(SPSession session)`
Saves a `SPSession` record to storage.
`protected void`
StorageBackedSessionManager.`unindexSPSession(IdPSession idpSession, SPSession spSession, int attempts)`
Remove or update a secondary index record from an SPSession to a parent IdPSession.
Method parameters in net.shibboleth.idp.session.impl with type arguments of type SPSession
Modifier and Type
Method
Description
`void`
PopulateLogoutPropagationContext.`setSessionLookupStrategy(Function<ProfileRequestContext,SPSession> strategy)`
Set a lookup strategy to use to obtain the session to populate.
`void`
UpdateSessionWithSPSession.`setSPSessionCreationStrategy(Function<ProfileRequestContext,SPSession> strategy)`
Set the creation function to use to obtain the `SPSession` to add.
Constructor parameters in net.shibboleth.idp.session.impl with type arguments of type SPSession
Modifier
Constructor
Description
``
`SelectLogoutPropagationFlow(Function<SPSession,LogoutPropagationFlowDescriptor> selector)`
Constructor.

## Uses of SPSession in net.shibboleth.idp.session.logic

Methods in net.shibboleth.idp.session.logic with parameters of type SPSession
Modifier and Type
Method
Description
`LogoutPropagationFlowDescriptor`
LogoutPropagationFlowDescriptorSelector.`apply(SPSession input)`