有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java DefaultCookieSerializer。setJvmRoute不工作

我试图将SpringSession合并到我的应用程序中,但我也希望保留服务器关联性,因为我有需要粘性会话的Talend作业

我可以根据需要使用Redis使SpringSession正常工作,为了使服务器关联正常工作,我想在新Cookie中向会话添加一个jvmRoute

在我的配置文件中,我根据docshttps://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;
}

这会将会话重命名为JSESSIONID,因此我知道它可以工作,但它不会将jvmRoute附加到sessionId

我是不是遗漏了什么?任何帮助都将不胜感激

谢谢


共 (1) 个答案

  1. # 1 楼答案

    如果您正在查看实际的会话cookie值,并希望看到已配置的jvmRoute附加到该值,请记住,从Spring会话2.0开始,DefaultCookieSerializer默认使用Base64编码的cookie

    因此jvmRoute实际上被追加到会话id中,但是整个连接在写入cookie之前会进行Base64编码

    为了验证jvmRoute,您可以尝试使用配置了serializer.setUseBase64Encoding(false)DefaultCookieSerializer进行测试