Fix CookieRequestCache parameters

Previously the parameters were not restored.

This commit ensures the parameters are restored.

Closes gh-18204

Signed-off-by: Vishnutheep B <vishnutheep@gmail.com>
This commit is contained in:
Vishnutheep B 2026-03-09 00:36:31 +05:30 committed by Robert Winch
parent e12edf43f2
commit 07bfe371b4
No known key found for this signature in database
2 changed files with 16 additions and 0 deletions

View File

@ -91,6 +91,7 @@ public class CookieRequestCache implements RequestCache {
.setServerPort(port)
.setMethod(request.getMethod())
.setLocales(Collections.list(request.getLocales()))
.setParameters(request.getParameterMap())
.build();
}

View File

@ -108,6 +108,21 @@ public class CookieRequestCacheTests {
assertThat(savedRequest.getRedirectUrl()).isEqualTo(redirectUrl);
}
@Test
public void getRequestWhenRequestContainsSavedRequestCookieThenSavedRequestContainsRequestParameters() {
CookieRequestCache cookieRequestCache = new CookieRequestCache();
MockHttpServletRequest request = new MockHttpServletRequest();
request.setCookies(new Cookie(DEFAULT_COOKIE_NAME, encodeCookie("https://abc.com/destination")));
request.setParameter("single", "first");
request.addParameter("multi", "second");
request.addParameter("multi", "third");
SavedRequest savedRequest = cookieRequestCache.getRequest(request, new MockHttpServletResponse());
assertThat(savedRequest).isNotNull();
assertThat(savedRequest.getParameterValues("single")).containsExactly("first");
assertThat(savedRequest.getParameterValues("multi")).containsExactly("second", "third");
assertThat(savedRequest.getParameterMap()).containsKeys("single", "multi");
}
@Test
public void matchingRequestWhenRequestDoesNotContainSavedRequestCookieThenReturnsNull() {
CookieRequestCache cookieRequestCache = new CookieRequestCache();