From abe178874da46dbbc119047daf0450431feb7157 Mon Sep 17 00:00:00 2001 From: jansupol Date: Tue, 21 Nov 2023 13:36:49 +0100 Subject: [PATCH] SameSite is capital first letter only. Signed-off-by: jansupol --- .../jersey/message/internal/NewCookieProvider.java | 11 +++++++++-- .../message/internal/NewCookieProviderTest.java | 2 +- .../glassfish/jersey/tests/api/CookieImplTest.java | 4 ++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/core-common/src/main/java/org/glassfish/jersey/message/internal/NewCookieProvider.java b/core-common/src/main/java/org/glassfish/jersey/message/internal/NewCookieProvider.java index 15ab8d06d0..8615aeb686 100644 --- a/core-common/src/main/java/org/glassfish/jersey/message/internal/NewCookieProvider.java +++ b/core-common/src/main/java/org/glassfish/jersey/message/internal/NewCookieProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2021 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2023 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0, which is available at @@ -23,6 +23,8 @@ import org.glassfish.jersey.internal.LocalizationMessages; import org.glassfish.jersey.spi.HeaderDelegateProvider; +import java.util.Locale; + import static org.glassfish.jersey.message.internal.Utils.throwIllegalArgumentExceptionIfNull; /** @@ -75,7 +77,7 @@ public String toString(final NewCookie cookie) { } if (cookie.getSameSite() != null) { b.append(";SameSite="); - b.append(cookie.getSameSite()); + b.append(getSameSite(cookie)); } if (cookie.getExpiry() != null) { b.append(";Expires="); @@ -90,4 +92,9 @@ public NewCookie fromString(final String header) { throwIllegalArgumentExceptionIfNull(header, LocalizationMessages.NEW_COOKIE_IS_NULL()); return HttpHeaderReader.readNewCookie(header); } + + private static String getSameSite(NewCookie cookie) { + final String siteName = cookie.getSameSite().name(); + return siteName.charAt(0) + siteName.substring(1).toLowerCase(Locale.ROOT); + } } diff --git a/core-common/src/test/java/org/glassfish/jersey/message/internal/NewCookieProviderTest.java b/core-common/src/test/java/org/glassfish/jersey/message/internal/NewCookieProviderTest.java index f16069034f..bed34585cd 100644 --- a/core-common/src/test/java/org/glassfish/jersey/message/internal/NewCookieProviderTest.java +++ b/core-common/src/test/java/org/glassfish/jersey/message/internal/NewCookieProviderTest.java @@ -44,7 +44,7 @@ public class NewCookieProviderTest { public void SameSiteTest() { final NewCookieProvider provider = new NewCookieProvider(); final String newCookieString = provider.toString(newCookie); - assertTrue(newCookieString.contains("SameSite=STRICT")); + assertTrue(newCookieString.contains("SameSite=Strict")); assertEquals(NewCookie.SameSite.STRICT, provider.fromString(newCookieString).getSameSite()); } diff --git a/tests/e2e/src/test/java/org/glassfish/jersey/tests/api/CookieImplTest.java b/tests/e2e/src/test/java/org/glassfish/jersey/tests/api/CookieImplTest.java index 5f727fca4b..5992b54a01 100644 --- a/tests/e2e/src/test/java/org/glassfish/jersey/tests/api/CookieImplTest.java +++ b/tests/e2e/src/test/java/org/glassfish/jersey/tests/api/CookieImplTest.java @@ -191,7 +191,7 @@ public void testNewCookieToString() { cookie = new NewCookie("fred", "flintstone", null, null, 1, "a modern stonage family", 60, null, false, false, NewCookie.SameSite.STRICT); - expResult = "fred=flintstone;Version=1;Comment=\"a modern stonage family\";Max-Age=60;SameSite=STRICT"; + expResult = "fred=flintstone;Version=1;Comment=\"a modern stonage family\";Max-Age=60;SameSite=Strict"; assertEquals(expResult, cookie.toString()); } @@ -217,7 +217,7 @@ public void testNewCookieValueOf() { assertTrue(cookie.isSecure()); cookie = NewCookie.valueOf( - "fred=flintstone;Version=1;Comment=\"a modern stonage family\";Max-Age=60;Secure;SameSite=NONE"); + "fred=flintstone;Version=1;Comment=\"a modern stonage family\";Max-Age=60;Secure;SameSite=None"); assertEquals("fred", cookie.getName()); assertEquals("flintstone", cookie.getValue()); assertEquals("a modern stonage family", cookie.getComment());