Package org.springframework.security.web.savedrequest

# Class CookieRequestCache

java.lang.Object
org.springframework.security.web.savedrequest.CookieRequestCache

All Implemented Interfaces:
  `RequestCache`

public class CookieRequestCache extends Object implements RequestCache
An Implementation of `RequestCache` which saves the original request URI in a cookie.

Since:
  5.4

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final org.apache.commons.logging.Log`
`logger`

## Constructor Summary

Constructors
Constructor
Description
`CookieRequestCache()`

## Method Summary

Modifier and Type
Method
Description
`jakarta.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.
`SavedRequest`
`getRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)`
Returns the saved request, leaving it cached.
`void`
`removeRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)`
Removes the cached request.
`void`
`saveRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)`
Caches the current request for later retrieval, once authentication has taken place.
`void`
`setCookieCustomizer(Consumer<jakarta.servlet.http.Cookie> cookieCustomizer)`
Sets the `Consumer`, allowing customization of cookie.
`void`
`setRequestMatcher(RequestMatcher requestMatcher)`
Allows selective use of saved requests for a subset of requests.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### logger

protected final org.apache.commons.logging.Log logger

## Constructor Details

### CookieRequestCache

public CookieRequestCache()

## Method Details

### saveRequest

public void saveRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
Description copied from interface: `RequestCache`
Caches the current request for later retrieval, once authentication has taken place. Used by `ExceptionTranslationFilter`.

Specified by:
  `saveRequest` in interface `RequestCache`
Parameters:
  `request` - the request to be stored

### getRequest

public SavedRequest getRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
Description copied from interface: `RequestCache`
Returns the saved request, leaving it cached.

Specified by:
  `getRequest` in interface `RequestCache`
Parameters:
  `request` - the current request
Returns:
  the saved request which was previously cached, or null if there is none.

### 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 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.

### removeRequest

public void removeRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
Description copied from interface: `RequestCache`
Removes the cached request.

Specified by:
  `removeRequest` in interface `RequestCache`
Parameters:
  `request` - the current request, allowing access to the cache.

### 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.

### setCookieCustomizer

public void setCookieCustomizer(Consumer<jakarta.servlet.http.Cookie> cookieCustomizer)
Sets the `Consumer`, allowing customization of cookie.

Parameters:
  `cookieCustomizer` - customize for cookie
Since:
  6.4