Support SameSite cookie attribute in MockMvcHttpConnector

Closes gh-30264
This commit is contained in:
Justin Tay
2023-04-01 21:32:40 +08:00
committed by Sam Brannen
parent 90b0f451f0
commit dd97ee4e99
2 changed files with 8 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2022 the original author or authors. * Copyright 2002-2023 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -197,6 +197,7 @@ public class MockMvcHttpConnector implements ClientHttpConnector {
.path(cookie.getPath()) .path(cookie.getPath())
.secure(cookie.getSecure()) .secure(cookie.getSecure())
.httpOnly(cookie.isHttpOnly()) .httpOnly(cookie.isHttpOnly())
.sameSite(cookie.getAttribute("samesite"))
.build(); .build();
clientResponse.getCookies().add(httpCookie.getName(), httpCookie); clientResponse.getCookies().add(httpCookie.getName(), httpCookie);
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2020 the original author or authors. * Copyright 2002-2023 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -50,6 +50,7 @@ public class CookieAssertionTests {
CookieLocaleResolver localeResolver = new CookieLocaleResolver(); CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setCookieDomain("domain"); localeResolver.setCookieDomain("domain");
localeResolver.setCookieHttpOnly(true); localeResolver.setCookieHttpOnly(true);
localeResolver.setCookieSameSite("Strict");
client = MockMvcWebTestClient.bindToController(new SimpleController()) client = MockMvcWebTestClient.bindToController(new SimpleController())
.interceptors(new LocaleChangeInterceptor()) .interceptors(new LocaleChangeInterceptor())
@@ -107,6 +108,10 @@ public class CookieAssertionTests {
client.get().uri("/").exchange().expectCookie().httpOnly(COOKIE_NAME, true); client.get().uri("/").exchange().expectCookie().httpOnly(COOKIE_NAME, true);
} }
@Test
public void testSameSite() {
client.get().uri("/").exchange().expectCookie().sameSite(COOKIE_NAME, "Strict");
}
@Controller @Controller
private static class SimpleController { private static class SimpleController {