首页 > 解决方案 > 春季会话数据库中的 Cookie SESSION= 和 session_id 有什么区别

问题描述

我正在使用带有 JDBC postgres 的 spring 会话进行会话管理。每当创建新会话时,spring 都会创建它并sessionid在 cookie 参数中将其发送回浏览器,SESSION然后浏览器将其发送回每个后续请求,并且一切正常。但是 postgres 表中 session_id 中的值与最初在 cookiespring_session中发送回的值不同。SESSION这是预期的行为吗?

标签: spring-jdbcspring-session

解决方案


是的,这是意料之中的。

从 Spring Session 2.0 开始,DefaultCookieSerializer默认使用 Base64 编码。因此,您实际看到的会话 cookie 值是 Base64 编码的会话 ID。

如果您希望恢复以前的(Spring Session 1.x)默认值,您可以显式配置DefaultCookieSerializerbean 并将useBase64Encoding属性设置为false.


推荐阅读