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 SessionDestroyedEvents 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 -
Constructor Summary
ConstructorsConstructorDescriptionSessionRegistryImpl(ConcurrentMap<Object, Set<String>> principals, Map<String, SessionInformation> sessionIds) -
Method Summary
Modifier and TypeMethodDescriptionObtains all the known principals in theSessionRegistry.getAllSessions(Object principal, boolean includeExpiredSessions) Obtains all the known sessions for the specified principal.getSessionInformation(String sessionId) Obtains the session information for the specifiedsessionId.voidvoidrefreshLastRequest(String sessionId) Updates the givensessionIdso its last request time is equal to the present date and time.voidregisterNewSession(String sessionId, Object principal) Registers a new session for the specified principal.voidremoveSessionInformation(String sessionId) Deletes all the session information being maintained for the specifiedsessionId.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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
Description copied from interface:SessionRegistryObtains all the known principals in theSessionRegistry.- Specified by:
getAllPrincipalsin interfaceSessionRegistry- Returns:
- each of the unique principals, which can then be presented to
SessionRegistry.getAllSessions(Object, boolean).
-
getAllSessions
Description copied from interface:SessionRegistryObtains 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:
getAllSessionsin interfaceSessionRegistry- Parameters:
principal- to locate sessions for (should never benull)includeExpiredSessions- iftrue, 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
Description copied from interface:SessionRegistryObtains the session information for the specifiedsessionId. Even expired sessions are returned (although destroyed sessions are never returned).- Specified by:
getSessionInformationin interfaceSessionRegistry- Parameters:
sessionId- to lookup (should never benull)- Returns:
- the session information, or
nullif not found
-
onApplicationEvent
- Specified by:
onApplicationEventin interfaceorg.springframework.context.ApplicationListener<AbstractSessionEvent>
-
refreshLastRequest
Description copied from interface:SessionRegistryUpdates the givensessionIdso its last request time is equal to the present date and time. Silently returns if the givensessionIdcannot be found or the session is marked to expire.- Specified by:
refreshLastRequestin interfaceSessionRegistry- Parameters:
sessionId- for which to update the date and time of the last request (should never benull)
-
registerNewSession
Description copied from interface:SessionRegistryRegisters a new session for the specified principal. The newly registered session will not be marked for expiration.- Specified by:
registerNewSessionin interfaceSessionRegistry- Parameters:
sessionId- to associate with the principal (should never benull)principal- to associate with the session (should never benull)
-
removeSessionInformation
Description copied from interface:SessionRegistryDeletes all the session information being maintained for the specifiedsessionId. If thesessionIdis not found, the method gracefully returns.- Specified by:
removeSessionInformationin interfaceSessionRegistry- Parameters:
sessionId- to delete information for (should never benull)
-