Class SessionManager

  • All Implemented Interfaces:
    Initialization, SessionManagement

    @Service
    @Singleton
    public class SessionManager
    extends Object
    implements SessionManagement, Initialization
    Implementation of the org.silverpeas.core.security.session.SessionManagement interface. It extends the session management performed by the underlying application service by adding useful session-related features like statistics about the connection time of each user or like the actual number of connected users.
    Author:
    Nicolas Eysseric
    • Constructor Detail

      • SessionManager

        protected SessionManager()
        Prevent the class from being instantiate (private)
    • Method Detail

      • init

        public void init()
        Description copied from interface: Initialization
        Initializes some resources required by the services or performs some initialization processes at Silverpeas startup.
        Specified by:
        init in interface Initialization
      • release

        public void release()
                     throws Exception
        Description copied from interface: Initialization
        Releases the previously initialized resources at Silverpeas shutdown. The implementation of this method is optional. By default it does nothing.
        Specified by:
        release in interface Initialization
        Throws:
        Exception - if an error occurs during the shutdown process. In this case, a log will be outputed and the shutdown goes one.
      • validateSession

        public SessionInfo validateSession​(SessionValidationContext context)
        Description copied from interface: SessionManagement
        Validates the session identified uniquely by the specified key. The validation checks a session exists with the specified identifier and returns information about this session. At each access by the user to Silverpeas, its current session must be validated. The validation updates also useful information about the session like the timestamp of this access so that additional features can be performed (for example, the timeout computation of the session).
        Specified by:
        validateSession in interface SessionManagement
        Parameters:
        context - the context of the validation that contains at least the session key
        Returns:
        information about the session identified by the specified key or null if no such session exists.
      • closeSession

        public void closeSession​(String sessionId)
        Description copied from interface: SessionManagement
        Closes the specified user session.
        Specified by:
        closeSession in interface SessionManagement
        Parameters:
        sessionId - the key of the session to close.
      • getSessionInfo

        public SessionInfo getSessionInfo​(String sessionId)
        Description copied from interface: SessionManagement
        Gets information about the specified user session.
        Specified by:
        getSessionInfo in interface SessionManagement
        Parameters:
        sessionId - the key of the user session.
        Returns:
        the information about the session mapped to the specified key.
      • getDistinctConnectedUsersList

        public Collection<SessionInfo> getDistinctConnectedUsersList​(User user)
        Gets for the specified user all the connected users and the duration of their session. The actual domain restriction policy is taken into account for the user asking the users currently connected in Silverpeas.
        Specified by:
        getDistinctConnectedUsersList in interface SessionManagement
        Parameters:
        user - the current user asking for actual opened user sessions.
        Returns:
        Collection of opened user sessions.
      • getNbConnectedUsersList

        public int getNbConnectedUsersList​(User user)
        Gets the number of connected users in Silverpeas for the specified user. The domain restriction policy is taken into account for the given user in the filtering of the opened user sessions.
        Specified by:
        getNbConnectedUsersList in interface SessionManagement
        Parameters:
        user - the user asking the number of actually connected users.
        Returns:
        nb of connected users
      • shutdown

        public void shutdown()
        This method remove and invalidates all sessions. The unique instance of the SessionManager will be destroyed.
      • openSession

        public SessionInfo openSession​(User user)
        This method is dedicated to the authentication for only accessing the WEB services published in Silverpeas. To openSession a user using a WEB browser to access Silverpeas, please prefers the below openSession method.
        Specified by:
        openSession in interface SessionManagement
        Parameters:
        user - the user for which the session has to be opened
        Returns:
        a SessionInfo instance representing the opened session.
      • openSession

        public SessionInfo openSession​(User user,
                                       javax.servlet.http.HttpServletRequest request)
        This method is dedicated to the authentication of users behind a WEB browser.
        Specified by:
        openSession in interface SessionManagement
        Parameters:
        user - the user for which the session has to be opened
        request - the HTTP servlet request in which the authentication is performed.
        Returns:
        a SessionInfo instance representing the opened session.
      • openAnonymousSession

        public SessionInfo openAnonymousSession​(javax.servlet.http.HttpServletRequest request)
        Description copied from interface: SessionManagement
        Opens a new anonymous session. The opened session is an HTTP one and it is managed directly by the underlying HTTP server/container. This method is for anonymous session in which HTTP servlets are used as entry-point in the WEB communication with Silverpeas.
        Specified by:
        openAnonymousSession in interface SessionManagement
        Returns:
        a SessionInfo instance representing the current opened anonymous session with information about that session.
      • isUserConnected

        public boolean isUserConnected​(User user)
        Description copied from interface: SessionManagement
        Is the specified user currently connected to Silverpeas?
        Specified by:
        isUserConnected in interface SessionManagement
        Parameters:
        user - the user for which the connection is checked.
        Returns:
        true if the user is connected, false otherwise.
      • getNextSessionTimeOut

        public long getNextSessionTimeOut​(String sessionKey)
        Description copied from interface: SessionManagement
        Gets the next timeout of the specified user session.
        Specified by:
        getNextSessionTimeOut in interface SessionManagement
        Parameters:
        sessionKey - the keu of the user session.
        Returns:
        the next session timout in milliseconds.