Package org.springframework.security.core.session

# Class SessionRegistryImpl

java.lang.Object
org.springframework.security.core.session.SessionRegistryImpl

All Implemented Interfaces:
  `EventListener`, `org.springframework.context.ApplicationListener<AbstractSessionEvent>`, `SessionRegistry`

public class SessionRegistryImpl extends Object implements SessionRegistry, org.springframework.context.ApplicationListener<AbstractSessionEvent>
Default implementation of `SessionRegistry` which listens for `SessionDestroyedEvent`s published in the Spring application context.

For this class to function correctly in a web application, it is important that you register an HttpSessionEventPublisher in the `web.xml` file so that this class is notified of sessions that expire.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final org.apache.commons.logging.Log`
`logger`

## Constructor Summary

Constructors
Constructor
Description
`SessionRegistryImpl()`
`SessionRegistryImpl(ConcurrentMap<Object,Set<String>> principals, Map<String,SessionInformation> sessionIds)`

## Method Summary

Modifier and Type
Method
Description
`List<Object>`
`getAllPrincipals()`
Obtains all the known principals in the `SessionRegistry`.
`List<SessionInformation>`
`getAllSessions(Object principal, boolean includeExpiredSessions)`
Obtains all the known sessions for the specified principal.
`SessionInformation`
`getSessionInformation(String sessionId)`
Obtains the session information for the specified `sessionId`.
`void`
`onApplicationEvent(AbstractSessionEvent event)`
`void`
`refreshLastRequest(String sessionId)`
Updates the given `sessionId` so its last request time is equal to the present date and time.
`void`
`registerNewSession(String sessionId, Object principal)`
Registers a new session for the specified principal.
`void`
`removeSessionInformation(String sessionId)`
Deletes all the session information being maintained for the specified `sessionId`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.context.ApplicationListener

`supportsAsyncExecution`

## Field Details

### logger

protected final org.apache.commons.logging.Log logger

## Constructor Details

### SessionRegistryImpl

public SessionRegistryImpl()

### SessionRegistryImpl

public SessionRegistryImpl(ConcurrentMap<Object,Set<String>> principals, Map<String,SessionInformation> sessionIds)

## Method Details

### getAllPrincipals

public List<Object> getAllPrincipals()
Description copied from interface: `SessionRegistry`
Obtains all the known principals in the `SessionRegistry`.

Specified by:
  `getAllPrincipals` in interface `SessionRegistry`
Returns:
  each of the unique principals, which can then be presented to `SessionRegistry.getAllSessions(Object, boolean)`.

### getAllSessions

public List<SessionInformation> getAllSessions(Object principal, boolean includeExpiredSessions)
Description copied from interface: `SessionRegistry`
Obtains all the known sessions for the specified principal. Sessions that have been destroyed are not returned. Sessions that have expired may be returned, depending on the passed argument.

Specified by:
  `getAllSessions` in interface `SessionRegistry`
Parameters:
  `principal` - to locate sessions for (should never be `null`)
  `includeExpiredSessions` - if `true`, the returned sessions will also include those that have expired for the principal
Returns:
  the matching sessions for this principal (should not return null).

### getSessionInformation

public SessionInformation getSessionInformation(String sessionId)
Description copied from interface: `SessionRegistry`
Obtains the session information for the specified `sessionId`. Even expired sessions are returned (although destroyed sessions are never returned).

Specified by:
  `getSessionInformation` in interface `SessionRegistry`
Parameters:
  `sessionId` - to lookup (should never be `null`)
Returns:
  the session information, or `null` if not found

### onApplicationEvent

public void onApplicationEvent(AbstractSessionEvent event)

Specified by:
  `onApplicationEvent` in interface `org.springframework.context.ApplicationListener<AbstractSessionEvent>`

### refreshLastRequest

public void refreshLastRequest(String sessionId)
Description copied from interface: `SessionRegistry`
Updates the given `sessionId` so its last request time is equal to the present date and time. Silently returns if the given `sessionId` cannot be found or the session is marked to expire.

Specified by:
  `refreshLastRequest` in interface `SessionRegistry`
Parameters:
  `sessionId` - for which to update the date and time of the last request (should never be `null`)

### registerNewSession

public void registerNewSession(String sessionId, Object principal)
Description copied from interface: `SessionRegistry`
Registers a new session for the specified principal. The newly registered session will not be marked for expiration.

Specified by:
  `registerNewSession` in interface `SessionRegistry`
Parameters:
  `sessionId` - to associate with the principal (should never be `null` )
  `principal` - to associate with the session (should never be `null`)

### removeSessionInformation

public void removeSessionInformation(String sessionId)
Description copied from interface: `SessionRegistry`
Deletes all the session information being maintained for the specified `sessionId`. If the `sessionId` is not found, the method gracefully returns.

Specified by:
  `removeSessionInformation` in interface `SessionRegistry`
Parameters:
  `sessionId` - to delete information for (should never be `null`)