diff --git a/spring-session/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java b/spring-session/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java index e392a68..f2f8839 100644 --- a/spring-session/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java +++ b/spring-session/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java @@ -226,8 +226,11 @@ public class DefaultCookieSerializer implements CookieSerializer { *
* Used to identify which JVM to route to for session affinity. With some * implementations (i.e. Redis) this provides no performance benefit. - * However, this can help with tracing logs of a particular user. + * However, this can help with tracing logs of a particular user. This will ensure that the value of the cookie is formatted as *
+ *
+ * sessionId + "." jvmRoute
+ *
* * To use set a custom route on each JVM instance and setup a frontend proxy * to forward all requests to the JVM based on the route. @@ -237,7 +240,7 @@ public class DefaultCookieSerializer implements CookieSerializer { * the JVM Route to use (i.e. "node01jvmA", "n01ja", etc) */ public void setJvmRoute(String jvmRoute) { - this.jvmRoute = jvmRoute; + this.jvmRoute = "." + jvmRoute; } private String getDomainName(HttpServletRequest request) { diff --git a/spring-session/src/test/java/org/springframework/session/web/http/DefaultCookieSerializerTests.java b/spring-session/src/test/java/org/springframework/session/web/http/DefaultCookieSerializerTests.java index 87e0559..be29c13 100644 --- a/spring-session/src/test/java/org/springframework/session/web/http/DefaultCookieSerializerTests.java +++ b/spring-session/src/test/java/org/springframework/session/web/http/DefaultCookieSerializerTests.java @@ -328,14 +328,14 @@ public class DefaultCookieSerializerTests { serializer.writeCookieValue(cookieValue(sessionId)); - assertThat(getCookie().getValue()).isEqualTo(sessionId + jvmRoute); + assertThat(getCookie().getValue()).isEqualTo(sessionId + "." + jvmRoute); } @Test public void readCookieJvmRoute() { String jvmRoute = "route"; serializer.setJvmRoute(jvmRoute); - request.setCookies(new Cookie(cookieName, sessionId + jvmRoute)); + request.setCookies(new Cookie(cookieName, sessionId + "." + jvmRoute)); assertThat(serializer.readCookieValues(request)).containsOnly(sessionId); } @@ -353,7 +353,7 @@ public class DefaultCookieSerializerTests { public void readCookieJvmRouteOnlyRoute() { String jvmRoute = "route"; serializer.setJvmRoute(jvmRoute); - request.setCookies(new Cookie(cookieName, jvmRoute)); + request.setCookies(new Cookie(cookieName, "." + jvmRoute)); assertThat(serializer.readCookieValues(request)).containsOnly(""); }