Package net.shibboleth.idp.session

# Interface SPSession

All Superinterfaces:
  `Component`, `IdentifiedComponent`

All Known Implementing Classes:
  `BasicSPSession`, `CASSPSession`, `SAML1SPSession`, `SAML2SPSession`

@ThreadSafe public interface SPSession extends IdentifiedComponent
Describes a session with a service in turn associated with an `IdPSession`. This is a high level interface that should be extended to expose data associated with particular protocols used to establish sessions.

## Method Summary

Modifier and Type
Method
Description
`Instant`
`getCreationInstant()`
Get the time when this session was created.
`Instant`
`getExpirationInstant()`
Get the time when this session will expire.
`String`
`getProtocol()`
Get a protocol constant for the session suitable for metadata lookup.
`String`
`getSPSessionKey()`
Get a unique key identifying this subject's session with the service.
`boolean`
`supportsLogoutPropagation()`
Gets whether the session allows for logout propagation.

### Methods inherited from interface net.shibboleth.shared.component.IdentifiedComponent

`getId`

## Method Details

### getCreationInstant

@Nonnull Instant getCreationInstant()
Get the time when this session was created.

Returns:
  time when this session was created

### getExpirationInstant

@Nonnull Instant getExpirationInstant()
Get the time when this session will expire.

Returns:
  time when this session will expire

### getSPSessionKey

@Nullable String getSPSessionKey()
Get a unique key identifying this subject's session with the service.

This will vary based on the type of session, typically based on the protocol used, but it provides a secondary lookup key that may be required in support of other use cases involving that protocol. Not all protocols may require such a key, so null may be returned.

Returns:
  a unique key identifying this subject's session with the service, or null

### getProtocol

@Nullable @NotEmpty String getProtocol()
Get a protocol constant for the session suitable for metadata lookup.

Returns:
  a protocol constant
Since:
  5.0.0

### supportsLogoutPropagation

boolean supportsLogoutPropagation()
Gets whether the session allows for logout propagation.

Returns:
  whether the session allows for logout propagation
Since:
  5.0.0