Class InMemoryWebSessionStore

    • Method Detail

      • setMaxSessions

        public 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 an IllegalStateException.

        By default set to 10000.

        Parameters:
        maxSessions - the maximum number of sessions
        Since:
        5.0.8
      • getMaxSessions

        public int getMaxSessions()
        Return the maximum number of sessions that can be stored.
        Since:
        5.0.8
      • setClock

        public void setClock​(Clock clock)
        Configure the Clock to 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, e.g. 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
      • getClock

        public Clock getClock()
        Return the configured clock for session lastAccessTime calculations.
      • getSessions

        public Map<String,​WebSessiongetSessions()
        Return the map of sessions with an unmodifiable wrapper. This could be used for management purposes, to list active sessions, invalidate expired ones, etc.
        Since:
        5.0.8
      • retrieveSession

        public reactor.core.publisher.Mono<WebSessionretrieveSession​(String id)
        Description copied from interface: WebSessionStore
        Return 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:
        retrieveSession in interface WebSessionStore
        Parameters:
        id - the session to load
        Returns:
        the session, or an empty Mono .
      • removeSession

        public reactor.core.publisher.Mono<VoidremoveSession​(String id)
        Description copied from interface: WebSessionStore
        Remove the WebSession for the specified id.
        Specified by:
        removeSession in interface WebSessionStore
        Parameters:
        id - the id of the session to remove
        Returns:
        a completion notification (success or error)
      • removeExpiredSessions

        public void removeExpiredSessions()
        Check for expired sessions and remove them. Typically such checks are kicked off lazily during calls to create or retrieve, no less than 60 seconds apart. This method can be called to force a check at a specific time.
        Since:
        5.0.8