Browse Source

Merge Fix CookieRequestCache parameters

pull/18877/head
Rob Winch 1 week ago committed by GitHub
parent
commit
6cf4a5eed9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      web/src/main/java/org/springframework/security/web/savedrequest/CookieRequestCache.java
  2. 15
      web/src/test/java/org/springframework/security/web/savedrequest/CookieRequestCacheTests.java

1
web/src/main/java/org/springframework/security/web/savedrequest/CookieRequestCache.java

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

15
web/src/test/java/org/springframework/security/web/savedrequest/CookieRequestCacheTests.java

@ -108,6 +108,21 @@ public class CookieRequestCacheTests { @@ -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();

Loading…
Cancel
Save