Class HttpSessionRequestCache
- java.lang.Object
-
- org.springframework.security.web.savedrequest.HttpSessionRequestCache
-
- All Implemented Interfaces:
RequestCache
public class HttpSessionRequestCache extends java.lang.Object implements RequestCache
RequestCache
which stores theSavedRequest
in the HttpSession. TheDefaultSavedRequest
class is used as the implementation.- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.commons.logging.Log
logger
-
Constructor Summary
Constructors Constructor Description HttpSessionRequestCache()
-
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)
Iftrue
, indicates that it is permitted to store the target URL and exception information in a newHttpSession
(the default).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 thesessionAttrName
property is set, the request is stored in the session using this attribute name.
-
-
-
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 interfaceRequestCache
- 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 interfaceRequestCache
- 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 interfaceRequestCache
- 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 interfaceRequestCache
- 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 thesaveRequest
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)
Iftrue
, indicates that it is permitted to store the target URL and exception information in a newHttpSession
(the default). In situations where you do not wish to unnecessarily createHttpSession
s - because the user agent will know the failed URL, such as with BASIC or Digest authentication - you may wish to set this property tofalse
.
-
setPortResolver
public void setPortResolver(PortResolver portResolver)
-
setSessionAttrName
public void setSessionAttrName(java.lang.String sessionAttrName)
If thesessionAttrName
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
-
-