Class HttpSessionRequestCache

  • All Implemented Interfaces:
    RequestCache

    public class HttpSessionRequestCache
    extends java.lang.Object
    implements RequestCache
    RequestCache which stores the SavedRequest in the HttpSession. The DefaultSavedRequest class is used as the implementation.
    Since:
    3.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.apache.commons.logging.Log logger  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javax.servlet.http.HttpServletRequest getMatchingRequest​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Returns a wrapper around the saved request, if it matches the current request.
      SavedRequest getRequest​(javax.servlet.http.HttpServletRequest currentRequest, javax.servlet.http.HttpServletResponse response)
      Returns the saved request, leaving it cached.
      void removeRequest​(javax.servlet.http.HttpServletRequest currentRequest, javax.servlet.http.HttpServletResponse response)
      Removes the cached request.
      void saveRequest​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Stores the current request, provided the configuration properties allow it.
      void setCreateSessionAllowed​(boolean createSessionAllowed)
      If true, indicates that it is permitted to store the target URL and exception information in a new HttpSession (the default).
      void setMatchingRequestParameterName​(java.lang.String matchingRequestParameterName)
      Specify the name of a query parameter that is added to the URL that specifies the request cache should be checked in getMatchingRequest(HttpServletRequest, HttpServletResponse)
      void setPortResolver​(PortResolver portResolver)  
      void setRequestMatcher​(RequestMatcher requestMatcher)
      Allows selective use of saved requests for a subset of requests.
      void setSessionAttrName​(java.lang.String sessionAttrName)
      If the sessionAttrName property is set, the request is stored in the session using this attribute name.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • logger

        protected final org.apache.commons.logging.Log logger
    • Constructor Detail

      • HttpSessionRequestCache

        public HttpSessionRequestCache()
    • Method Detail

      • saveRequest

        public void saveRequest​(javax.servlet.http.HttpServletRequest request,
                                javax.servlet.http.HttpServletResponse response)
        Stores the current request, provided the configuration properties allow it.
        Specified by:
        saveRequest in interface RequestCache
        Parameters:
        request - the request to be stored
      • getRequest

        public SavedRequest getRequest​(javax.servlet.http.HttpServletRequest currentRequest,
                                       javax.servlet.http.HttpServletResponse response)
        Description copied from interface: RequestCache
        Returns the saved request, leaving it cached.
        Specified by:
        getRequest in interface RequestCache
        Parameters:
        currentRequest - the current request
        Returns:
        the saved request which was previously cached, or null if there is none.
      • removeRequest

        public void removeRequest​(javax.servlet.http.HttpServletRequest currentRequest,
                                  javax.servlet.http.HttpServletResponse response)
        Description copied from interface: RequestCache
        Removes the cached request.
        Specified by:
        removeRequest in interface RequestCache
        Parameters:
        currentRequest - the current request, allowing access to the cache.
      • getMatchingRequest

        public javax.servlet.http.HttpServletRequest getMatchingRequest​(javax.servlet.http.HttpServletRequest request,
                                                                        javax.servlet.http.HttpServletResponse response)
        Description copied from interface: RequestCache
        Returns a wrapper around the saved request, if it matches the current request. The saved request should be removed from the cache.
        Specified by:
        getMatchingRequest in interface RequestCache
        Returns:
        the wrapped save request, if it matches the original, or null if there is no cached request or it doesn't match.
      • setRequestMatcher

        public void setRequestMatcher​(RequestMatcher requestMatcher)
        Allows selective use of saved requests for a subset of requests. By default any request will be cached by the saveRequest method.

        If set, only matching requests will be cached.

        Parameters:
        requestMatcher - a request matching strategy which defines which requests should be cached.
      • setCreateSessionAllowed

        public void setCreateSessionAllowed​(boolean createSessionAllowed)
        If true, indicates that it is permitted to store the target URL and exception information in a new HttpSession (the default). In situations where you do not wish to unnecessarily create HttpSessions - because the user agent will know the failed URL, such as with BASIC or Digest authentication - you may wish to set this property to false.
      • setPortResolver

        public void setPortResolver​(PortResolver portResolver)
      • setSessionAttrName

        public void setSessionAttrName​(java.lang.String sessionAttrName)
        If the sessionAttrName property is set, the request is stored in the session using this attribute name. Default is "SPRING_SECURITY_SAVED_REQUEST".
        Parameters:
        sessionAttrName - a new session attribute name.
        Since:
        4.2.1