SameSite is capital first letter only. Signed-off-by: jansupol <jan.supol@oracle.com>
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 15ab8d0..8615aeb 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 @@ } 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 @@ 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 f160690..bed3458 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 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 5f727fc..5992b54 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 @@ 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 @@ 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());