Class HttpSessionRequestCache
java.lang.Object
org.springframework.security.web.savedrequest.HttpSessionRequestCache
- All Implemented Interfaces:
RequestCache
RequestCache
which stores the SavedRequest
in the HttpSession.
The DefaultSavedRequest
class is used as the implementation.- Since:
- 3.0
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionjakarta.servlet.http.HttpServletRequest
getMatchingRequest
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Returns a wrapper around the saved request, if it matches the current request.getRequest
(jakarta.servlet.http.HttpServletRequest currentRequest, jakarta.servlet.http.HttpServletResponse response) Returns the saved request, leaving it cached.void
removeRequest
(jakarta.servlet.http.HttpServletRequest currentRequest, jakarta.servlet.http.HttpServletResponse response) Removes the cached request.void
saveRequest
(jakarta.servlet.http.HttpServletRequest request, jakarta.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
(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
(String sessionAttrName) If thesessionAttrName
property is set, the request is stored in the session using this attribute name.
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
HttpSessionRequestCache
public HttpSessionRequestCache()
-
-
Method Details
-
saveRequest
public void saveRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.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(jakarta.servlet.http.HttpServletRequest currentRequest, jakarta.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(jakarta.servlet.http.HttpServletRequest currentRequest, jakarta.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 jakarta.servlet.http.HttpServletRequest getMatchingRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.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
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
-
setSessionAttrName
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
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.
-