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
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 ingetMatchingRequest(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 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
-
setMatchingRequestParameterName
public 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 ingetMatchingRequest(HttpServletRequest, HttpServletResponse)
- Parameters:
matchingRequestParameterName
- the parameter name that must be in the request forgetMatchingRequest(HttpServletRequest, HttpServletResponse)
to check the session.
-
-