Cookie Value now sessionId + "." jvmRoute

If jvmRoute is set on DefaultCookieSerializer, then it sets the cookie
value to be:

sessionId + "." jvmRoute

Fixes gh-326
This commit is contained in:
Rob Winch
2016-01-29 16:50:22 -06:00
parent c9acd3c812
commit bda5c85acf
2 changed files with 8 additions and 5 deletions

View File

@@ -226,8 +226,11 @@ public class DefaultCookieSerializer implements CookieSerializer {
* <p>
* 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
* </p>
* <code>
* sessionId + "." jvmRoute
* </code>
* <p>
* 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) {

View File

@@ -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("");
}