Skip to content

Commit c420d8e

Browse files
committed
Merge branch '4.0.x'
Closes gh-50204
2 parents 4bde3ad + b02f7dd commit c420d8e

2 files changed

Lines changed: 17 additions & 5 deletions

File tree

module/spring-boot-web-server/src/main/java/org/springframework/boot/web/server/servlet/ServletContextInitializers.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,7 @@ private void configureSessionCookie(SessionCookieConfig config) {
9797
map.from(cookie::getHttpOnly).to(config::setHttpOnly);
9898
map.from(cookie::getSecure).to(config::setSecure);
9999
map.from(cookie::getMaxAge).asInt(Duration::getSeconds).to(config::setMaxAge);
100-
map.from(cookie::getPartitioned)
101-
.as(Object::toString)
102-
.to((partitioned) -> config.setAttribute("Partitioned", partitioned));
100+
map.from(cookie::getPartitioned).to((partitioned) -> config.setAttribute("Partitioned", ""));
103101
}
104102

105103
@Contract("!null -> !null")

module/spring-boot-web-server/src/testFixtures/java/org/springframework/boot/web/server/servlet/AbstractServletWebServerFactoryTests.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -881,10 +881,24 @@ void sessionCookieConfiguration() {
881881
assertThat(sessionCookieConfig.getPath()).isEqualTo("/testpath");
882882
assertThat(sessionCookieConfig.isHttpOnly()).isTrue();
883883
assertThat(sessionCookieConfig.isSecure()).isTrue();
884-
assertThat(sessionCookieConfig.getAttribute("Partitioned")).isEqualTo("true");
884+
assertThat(sessionCookieConfig.getAttribute("Partitioned")).isEqualTo("");
885885
assertThat(sessionCookieConfig.getMaxAge()).isEqualTo(60);
886886
}
887887

888+
@Test
889+
void sessionCookiePartitionedAttribute() throws Exception {
890+
ConfigurableServletWebServerFactory factory = getFactory();
891+
factory.getSettings().getSession().getCookie().setPartitioned(true);
892+
factory.addInitializers(new ServletRegistrationBean<>(new CookieServlet(false), "/"));
893+
this.webServer = factory.getWebServer();
894+
this.webServer.start();
895+
ClientHttpResponse clientResponse = getClientResponse(getLocalUrl("/"));
896+
List<String> setCookieHeaders = clientResponse.getHeaders().get("Set-Cookie");
897+
assertThat(setCookieHeaders).satisfiesExactlyInAnyOrder(
898+
(header) -> assertThat(header).startsWith("JSESSIONID=").contains("; Partitioned"),
899+
(header) -> assertThat(header).isEqualTo("test=test"));
900+
}
901+
888902
@ParameterizedTest
889903
@EnumSource(mode = EnumSource.Mode.EXCLUDE, names = "OMITTED")
890904
void sessionCookieSameSiteAttributeCanBeConfiguredAndOnlyAffectsSessionCookies(SameSite sameSite) throws Exception {
@@ -1212,7 +1226,7 @@ void sessionConfiguration() {
12121226
assertThat(sessionCookieConfig.isHttpOnly()).isTrue();
12131227
assertThat(sessionCookieConfig.isSecure()).isTrue();
12141228
assertThat(sessionCookieConfig.getMaxAge()).isEqualTo(60);
1215-
assertThat(sessionCookieConfig.getAttribute("Partitioned")).isEqualTo("false");
1229+
assertThat(sessionCookieConfig.getAttribute("Partitioned")).isEqualTo("");
12161230
}
12171231

12181232
@Test

0 commit comments

Comments
 (0)