Class SessionTracker

  • All Implemented Interfaces:
    SessionListener

    public class SessionTracker
    extends Object
    implements SessionListener
    Class responsible for keeping track of the total number of active sessions associated with an HTTP request.

    A given HTTP request may be associated with more than one active session if it has been dispatched to one or more foreign contexts.

    The number of active sessions being tracked is used to determine whether or not any session information needs to be reflected in the response (e.g., in the form of a response cookie). If no active sessions are associated with the request by the time the response is committed, no session information will be reflected in the response. See GlassFish Issue 896 for additional details.

    • Constructor Detail

      • SessionTracker

        public SessionTracker()
    • Method Detail

      • sessionEvent

        public void sessionEvent​(SessionEvent event)
        Processes the given session event, by unregistering this SessionTracker as a session listener from the session that is the source of the event, and by decrementing the counter of currently tracked sessions.
        Specified by:
        sessionEvent in interface SessionListener
        Parameters:
        event - The session event
      • getActiveSessions

        public int getActiveSessions()
        Gets the number of active sessions that are being tracked.
        Returns:
        The number of active sessions being tracked
      • getSessionId

        public String getSessionId()
        Gets the id of the sessions that are being tracked. Notice that since all sessions are associated with the same request, albeit in different context, they all share the same id.
        Returns:
        The id of the sessions that are being tracked
      • track

        public void track​(Session session)
        Tracks the given session, by registering this SessionTracker as a listener with the given session, and by incrementing the counter of currently tracked sessions.
        Parameters:
        session - The session to track
      • setResponse

        public void setResponse​(Response response)
        Associates the given response with this SessionTracker. If the number of tracked sessions drops to zero, this SessionTracker will remove the Set-Cookie from the given response.
        Parameters:
        response - The response from which to remove the Set-Cookie header if the number of tracked sessions drops to zero
      • reset

        public void reset()
        Resets this session tracker.