From fb936e27806dfeb6284359e3cd9c99a2c7a12834 Mon Sep 17 00:00:00 2001 From: Eleftheria Stein Date: Tue, 21 Jul 2020 14:48:35 +0200 Subject: [PATCH] Polish CookieRequestCacheTests Issue gh-8817 Issue gh-8820 --- .../savedrequest/CookieRequestCacheTests.java | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/web/src/test/java/org/springframework/security/web/savedrequest/CookieRequestCacheTests.java b/web/src/test/java/org/springframework/security/web/savedrequest/CookieRequestCacheTests.java index cc2714e40a..3ae2357be0 100644 --- a/web/src/test/java/org/springframework/security/web/savedrequest/CookieRequestCacheTests.java +++ b/web/src/test/java/org/springframework/security/web/savedrequest/CookieRequestCacheTests.java @@ -18,7 +18,6 @@ package org.springframework.security.web.savedrequest; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.util.StringUtils; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; @@ -39,7 +38,13 @@ public class CookieRequestCacheTests { public void saveRequestWhenMatchesThenSavedRequestInACookieOnResponse() { CookieRequestCache cookieRequestCache = new CookieRequestCache(); - MockHttpServletRequest request = requestToSave(); + MockHttpServletRequest request = new MockHttpServletRequest(); + request.setServerPort(443); + request.setSecure(true); + request.setScheme("https"); + request.setServerName("abc.com"); + request.setRequestURI("/destination"); + request.setQueryString("param1=a¶m2=b¶m3=1122"); MockHttpServletResponse response = new MockHttpServletResponse(); cookieRequestCache.saveRequest(request, response); @@ -51,10 +56,9 @@ public class CookieRequestCacheTests { assertThat(redirectUrl).isEqualTo("https://abc.com/destination?param1=a¶m2=b¶m3=1122"); assertThat(savedCookie.getMaxAge()).isEqualTo(-1); - assertThat(savedCookie.getPath()).isEqualTo(StringUtils.isEmpty(request.getContextPath()) ? "/" : request.getContextPath()); + assertThat(savedCookie.getPath()).isEqualTo("/"); assertThat(savedCookie.isHttpOnly()).isTrue(); assertThat(savedCookie.getSecure()).isTrue(); - } @Test @@ -118,13 +122,18 @@ public class CookieRequestCacheTests { HttpServletRequest matchingRequest = cookieRequestCache.getMatchingRequest(new MockHttpServletRequest(), response); assertThat(matchingRequest).isNull(); assertThat(response.getCookie(DEFAULT_COOKIE_NAME)).isNull(); - } @Test public void matchingRequestWhenRequestContainsSavedRequestCookieThenSetsAnExpiredCookieInResponse() { CookieRequestCache cookieRequestCache = new CookieRequestCache(); - MockHttpServletRequest request = requestToSave(); + MockHttpServletRequest request = new MockHttpServletRequest(); + request.setServerPort(443); + request.setSecure(true); + request.setScheme("https"); + request.setServerName("abc.com"); + request.setRequestURI("/destination"); + request.setQueryString("param1=a¶m2=b¶m3=1122"); String redirectUrl = "https://abc.com/destination?param1=a¶m2=b¶m3=1122"; request.setCookies(new Cookie(DEFAULT_COOKIE_NAME, encodeCookie(redirectUrl))); @@ -138,9 +147,14 @@ public class CookieRequestCacheTests { } @Test - public void notMatchingRequestWhenRequestNotContainsSavedRequestCookie() { + public void requestWhenDoesNotMatchSavedRequestThenDoesNotClearCookie() { CookieRequestCache cookieRequestCache = new CookieRequestCache(); - MockHttpServletRequest request = requestToSave(); + MockHttpServletRequest request = new MockHttpServletRequest(); + request.setServerPort(443); + request.setSecure(true); + request.setScheme("https"); + request.setServerName("abc.com"); + request.setRequestURI("/destination"); String redirectUrl = "https://abc.com/api"; request.setCookies(new Cookie(DEFAULT_COOKIE_NAME, encodeCookie(redirectUrl))); @@ -150,7 +164,6 @@ public class CookieRequestCacheTests { assertThat(matchingRequest).isNull(); Cookie expiredCookie = response.getCookie(DEFAULT_COOKIE_NAME); assertThat(expiredCookie).isNull(); - } @Test @@ -164,17 +177,6 @@ public class CookieRequestCacheTests { assertThat(expiredCookie.getMaxAge()).isZero(); } - private MockHttpServletRequest requestToSave() { - MockHttpServletRequest request = new MockHttpServletRequest(); - request.setServerPort(443); - request.setSecure(true); - request.setScheme("https"); - request.setServerName("abc.com"); - request.setRequestURI("/destination"); - request.setQueryString("param1=a¶m2=b¶m3=1122"); - return request; - } - private static String encodeCookie(String cookieValue) { return Base64.getEncoder().encodeToString(cookieValue.getBytes()); }