我正在查看spring会话,通过遍历文档,我能够创建表并在那里持久化我的会话,正如我所看到的,spring添加了SESSION cookie,但是它的值与db中的会话id值完全不同。


在第一个屏幕上,您可以从浏览器中看到db中的会话id和第二个cookie值。调试时,我可以看到HttpSession.getId()返回DB中的值。我想知道为什么这些值是不同的,以及spring如何知道返回哪个会话?谢谢。
发布于 2021-12-08 10:42:51
从2.0开始,Spring会话默认使用Base64编码的会话cookie。您可以通过配置DefaultCookieSerializer并将useBase64Encoding设置为false来更改此默认值。
@Bean
fun cookieSerializer() : CookieSerializer {
val serializer = DefaultCookieSerializer()
serializer.setCookieName("JSESSIONID")
serializer.setCookiePath("/")
serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$")
serializer.setUseBase64Encoding(false)
return serializer
}https://stackoverflow.com/questions/65265655
复制相似问题