Skip to content

Commit fa9e799

Browse files
author
Rob Winch
committed
SEC-2569: SavedRequestAwareWrapper no longer overrides getCookies()
Previously SavedRequestAwareWrapper overrode the getCookies() method. This meant that the cookies from the original request were used instead of the new request. In general, this does not make sense since cookies are automatically submitted in every request by a client. Additionally, this caused problems with using a locale cookie that was specified after the secured page was requested. Now SavedRequestAwareWrapper uses the new incoming request for determining the cookies.
1 parent 97df23e commit fa9e799

File tree

3 files changed

+6
-118
lines changed

3 files changed

+6
-118
lines changed

web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAdapter.java

Lines changed: 0 additions & 108 deletions
This file was deleted.

web/src/main/java/org/springframework/security/web/savedrequest/SavedRequestAwareWrapper.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,6 @@ public SavedRequestAwareWrapper(SavedRequest saved, HttpServletRequest request)
8585

8686
//~ Methods ========================================================================================================
8787

88-
@Override
89-
public Cookie[] getCookies() {
90-
List<Cookie> cookies = savedRequest.getCookies();
91-
92-
return cookies.toArray(new Cookie[cookies.size()]);
93-
}
94-
9588
@Override
9689
public long getDateHeader(String name) {
9790
String value = getHeader(name);

web/src/test/java/org/springframework/security/web/savedrequest/SavedRequestAwareWrapperTests.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,16 @@ private SavedRequestAwareWrapper createWrapper(MockHttpServletRequest requestToS
2323
return new SavedRequestAwareWrapper(saved, requestToWrap);
2424
}
2525

26+
// SEC-2569
2627
@Test
27-
public void savedRequestCookiesAreReturnedIfSavedRequestIsSet() throws Exception {
28+
public void savedRequestCookiesAreIgnored() throws Exception {
29+
MockHttpServletRequest newRequest = new MockHttpServletRequest();
30+
newRequest.setCookies(new Cookie[] {new Cookie("cookie", "fromnew")});
2831
MockHttpServletRequest savedRequest = new MockHttpServletRequest();
2932
savedRequest.setCookies(new Cookie[] {new Cookie("cookie", "fromsaved")});
30-
SavedRequestAwareWrapper wrapper = createWrapper(savedRequest, new MockHttpServletRequest());
33+
SavedRequestAwareWrapper wrapper = createWrapper(savedRequest, newRequest);
3134
assertEquals(1, wrapper.getCookies().length);
32-
assertEquals("fromsaved", wrapper.getCookies()[0].getValue());
35+
assertEquals("fromnew", wrapper.getCookies()[0].getValue());
3336
}
3437

3538
@Test

0 commit comments

Comments
 (0)