Class HttpSessionStore

java.lang.Object
org.apache.wicket.session.HttpSessionStore
All Implemented Interfaces:
ISessionStore

public class HttpSessionStore extends Object implements ISessionStore
Implementation of ISessionStore that works with web applications and provides some specific http servlet/ session related functionality.
Author:
jcompagner, Eelco Hillenius, Matej Knopp
  • Constructor Details

  • Method Details

    • getHttpServletRequest

      protected final jakarta.servlet.http.HttpServletRequest getHttpServletRequest(org.apache.wicket.request.Request request)
      Parameters:
      request - The Wicket request
      Returns:
      The http servlet request
    • bind

      public final void bind(org.apache.wicket.request.Request request, Session newSession)
      Description copied from interface: ISessionStore
      Adds the provided new session to this facade using the provided request.
      Specified by:
      bind in interface ISessionStore
      Parameters:
      request - The request that triggered making a new session
      newSession - The new session
    • flushSession

      public void flushSession(org.apache.wicket.request.Request request, Session session)
      Description copied from interface: ISessionStore
      Flushes the session. Flushing the session generally means setting the attribute with the value of the current session. Some servlet containers use the setAttribute() as a signal that the value is dirty and needs to be replicated. Essentially this call comes down to: String attr=getSessionAttributeName(); Session session=getAttribute(attr); setAttribute(attr, session); If the session is not yet bound it will be.
      Specified by:
      flushSession in interface ISessionStore
      Parameters:
      request - current request
      session - session to be flushed
    • destroy

      public void destroy()
      Description copied from interface: ISessionStore
      Called when the WebApplication is destroyed.
      Specified by:
      destroy in interface ISessionStore
    • getSessionId

      public String getSessionId(org.apache.wicket.request.Request request, boolean create)
      Description copied from interface: ISessionStore
      Get the session id for the provided request. If create is false and the creation of the actual session is deferred, this method should return null to reflect it doesn't have one.
      Specified by:
      getSessionId in interface ISessionStore
      Parameters:
      request - The request
      create - Whether to create an actual session (typically an instance of HttpSession) when not already done so
      Returns:
      The session id for the provided request, possibly null if create is false and the creation of the actual session was deferred
    • invalidate

      public final void invalidate(org.apache.wicket.request.Request request)
      Description copied from interface: ISessionStore
      Invalidates the session.
      Specified by:
      invalidate in interface ISessionStore
      Parameters:
      request - the current request
    • lookup

      public final Session lookup(org.apache.wicket.request.Request request)
      Description copied from interface: ISessionStore
      Retrieves the session for the provided request from this facade.

      This method should return null if it is not bound yet, so that Wicket can recognize that it should create a session and call ISessionStore.bind(Request, Session) right after that.

      Specified by:
      lookup in interface ISessionStore
      Parameters:
      request - The current request
      Returns:
      The session for the provided request or null if the session was not bound
    • getWicketSession

      protected Session getWicketSession(org.apache.wicket.request.Request request)
      Reads the Wicket Session from the HttpSession's attribute
      Parameters:
      request - The Wicket request
      Returns:
      The Wicket Session or null
    • setWicketSession

      protected void setWicketSession(org.apache.wicket.request.Request request, Session session)
      Stores the Wicket Session in an attribute in the HttpSession
      Parameters:
      request - The Wicket request
      session - The Wicket session
    • onBind

      protected void onBind(org.apache.wicket.request.Request request, Session newSession)
      Template method that is called when a session is being bound to the session store. It is called before the session object itself is added to this store (which is done by calling ISessionStore.setAttribute(Request, String, Serializable) with key Session.SESSION_ATTRIBUTE_NAME.
      Parameters:
      request - The request
      newSession - The new session
    • onUnbind

      protected void onUnbind(String sessionId)
      Template method that is called when the session is being detached from the store, which typically happens when the HttpSession was invalidated.
      Parameters:
      sessionId - The session id of the session that was invalidated.
    • getAttribute

      public final Serializable getAttribute(org.apache.wicket.request.Request request, String name)
      Description copied from interface: ISessionStore
      Gets the attribute value with the given name
      Specified by:
      getAttribute in interface ISessionStore
      Parameters:
      request - the current request
      name - The name of the attribute to store
      Returns:
      The value of the attribute
    • getAttributeNames

      public final List<String> getAttributeNames(org.apache.wicket.request.Request request)
      Specified by:
      getAttributeNames in interface ISessionStore
      Parameters:
      request - the current request
      Returns:
      List of attributes for this session
    • removeAttribute

      public final void removeAttribute(org.apache.wicket.request.Request request, String name)
      Description copied from interface: ISessionStore
      Removes the attribute with the given name.
      Specified by:
      removeAttribute in interface ISessionStore
      Parameters:
      request - the current request
      name - the name of the attribute to remove
    • setAttribute

      public final void setAttribute(org.apache.wicket.request.Request request, String name, Serializable value)
      Description copied from interface: ISessionStore
      Adds or replaces the attribute with the given name and value.
      Specified by:
      setAttribute in interface ISessionStore
      Parameters:
      request - the current request
      name - the name of the attribute
      value - the value of the attribute
    • registerUnboundListener

      Description copied from interface: ISessionStore
      Registers listener invoked when session is unbound.
      Specified by:
      registerUnboundListener in interface ISessionStore
    • unregisterUnboundListener

      Description copied from interface: ISessionStore
      Unregisters listener invoked when session is unbound.
      Specified by:
      unregisterUnboundListener in interface ISessionStore
    • getUnboundListener

      Specified by:
      getUnboundListener in interface ISessionStore
      Returns:
      The list of registered unbound listeners
    • registerBindListener

      Registers listener invoked when session is bound.
      Specified by:
      registerBindListener in interface ISessionStore
      Parameters:
      listener -
    • unregisterBindListener

      Unregisters listener invoked when session is bound.
      Specified by:
      unregisterBindListener in interface ISessionStore
      Parameters:
      listener -
    • getBindListeners

      Specified by:
      getBindListeners in interface ISessionStore
      Returns:
      The list of registered bind listeners