Class InMemoryWebSessionStore
java.lang.Object
org.springframework.web.server.session.InMemoryWebSessionStore
- All Implemented Interfaces:
- WebSessionStore
Simple Map-based storage for 
WebSession instances.- Since:
- 5.0
- Author:
- Rossen Stoyanchev, Rob Winch
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionreactor.core.publisher.Mono<WebSession>Create a new WebSession.getClock()Return the configured clock for session lastAccessTime calculations.intReturn the maximum number of sessions that can be stored.Return the map of sessions with anunmodifiablewrapper.voidCheck for expired sessions and remove them.reactor.core.publisher.Mono<Void>removeSession(String id) Remove the WebSession for the specified id.reactor.core.publisher.Mono<WebSession>Return the WebSession for the given id.voidConfigure theClockto use to set lastAccessTime on every created session and to calculate if it is expired.voidsetMaxSessions(int maxSessions) Set the maximum number of sessions that can be stored.reactor.core.publisher.Mono<WebSession>updateLastAccessTime(WebSession session) Update the last accessed timestamp to "now".
- 
Constructor Details- 
InMemoryWebSessionStorepublic InMemoryWebSessionStore()
 
- 
- 
Method Details- 
setMaxSessionspublic void setMaxSessions(int maxSessions) Set the maximum number of sessions that can be stored. Once the limit is reached, any attempt to store an additional session will result in anIllegalStateException.By default set to 10000. - Parameters:
- maxSessions- the maximum number of sessions
- Since:
- 5.0.8
 
- 
getMaxSessionspublic int getMaxSessions()Return the maximum number of sessions that can be stored.- Since:
- 5.0.8
 
- 
setClockConfigure theClockto use to set lastAccessTime on every created session and to calculate if it is expired.This may be useful to align to different timezone or to set the clock back in a test, for example, Clock.offset(clock, Duration.ofMinutes(-31))in order to simulate session expiration.By default this is Clock.system(ZoneId.of("GMT")).- Parameters:
- clock- the clock to use
 
- 
getClockReturn the configured clock for session lastAccessTime calculations.
- 
getSessionsReturn the map of sessions with anunmodifiablewrapper. This could be used for management purposes, to list active sessions, invalidate expired ones, etc.- Since:
- 5.0.8
 
- 
createWebSessionDescription copied from interface:WebSessionStoreCreate a new WebSession.Note that this does nothing more than create a new instance. The session can later be started explicitly via WebSession.start()or implicitly by adding attributes -- and then persisted viaWebSession.save().- Specified by:
- createWebSessionin interface- WebSessionStore
- Returns:
- the created session instance
 
- 
retrieveSessionDescription copied from interface:WebSessionStoreReturn the WebSession for the given id.Note: This method should perform an expiration check, and if it has expired remove the session and return empty. This method should also update the lastAccessTime of retrieved sessions. - Specified by:
- retrieveSessionin interface- WebSessionStore
- Parameters:
- id- the session to load
- Returns:
- the session, or an empty Mono
 
- 
removeSessionDescription copied from interface:WebSessionStoreRemove the WebSession for the specified id.- Specified by:
- removeSessionin interface- WebSessionStore
- Parameters:
- id- the id of the session to remove
- Returns:
- a completion notification (success or error)
 
- 
updateLastAccessTimeDescription copied from interface:WebSessionStoreUpdate the last accessed timestamp to "now".- Specified by:
- updateLastAccessTimein interface- WebSessionStore
- Parameters:
- session- the session to update
- Returns:
- the session with the updated last access time
 
- 
removeExpiredSessionspublic void removeExpiredSessions()Check for expired sessions and remove them. Typically such checks are kicked off lazily during calls tocreateorretrieve, no less than 60 seconds apart. This method can be called to force a check at a specific time.- Since:
- 5.0.8
 
 
-