我正在尝试将SpringSession合并到我的应用程序中,但是我也想保留服务器亲和性,因为我有需要粘性 session 的Talend作业。
我可以根据需要使Redis正常运行SpringSession,并且要使服务器关联正常工作,我想在新Cookie中将jvmRoute附加到 session 中。
在我的配置文件中,根据docs https://docs.spring.io/spring-session/docs/current/reference/html5/guides/java-custom-cookie.html创建以下bean
@Bean
public CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("JSESSIONID");
serializer.setJvmRoute("my-app1");
return serializer;
}
这会将SESSION重命名为JSESSIONID,因此我知道它可以工作,但是没有将jvmRoute附加到sessionId上。
我在这里想念什么吗?任何帮助,将不胜感激。
谢谢
最佳答案
如果您正在查看实际的 session cookie值,并希望看到附加的已配置jvmRoute
,请记住,从Spring Session 2.0开始,DefaultCookieSerializer
默认使用Base64编码的cookie。
因此jvmRoute
实际上是附加到 session ID上的,但是在将整个串联连接到Cookie之前,对整个串联进行了Base64编码。
为了验证jvmRoute
,您可以尝试使用配置了DefaultCookieSerializer
的serializer.setUseBase64Encoding(false)
进行测试。