项目情况:

spring boot 和spring session 版本都是 2.0.2.RELEASE

问题描述:

请求项目接口后浏览器保存的sessionId与服务器不一致,拿Postman测试如下图,网上找了很久都没发现有人发过这个问题,只能自己去找了spring session的深入分析一系列文章以及阅读源码,最后结合到今天找到的一个帖子,不过他里面处理的比较复杂,我就做了个最简单的处理。

分析:

这里两个session其实是一致的,只是浏览器保存的sessionId是经过服务器base64编码之后返回的。其实看似不一致,但是前端传入这个编码后的服务器也会解码处理,不会出现找不到的情况。以上这些东西我们可以在spring session 源码 DefaultCookieSerializer 类中看到

我们可以看到这个类在初始化的时候就指定了使用base64编码,指定cookie名称为session(这也是为什么使用spring session后cookie里保存的不叫 jsessionid 而是叫session了)

而在写cookie和读cookie的时候,都会判断类里这个变量 useBase64Encoding 是否为true,如果是,则写的时候进行base64编码,读的时候进行base64解码。

解决方案:

如果希望服务器与浏览器的sessionId一模一样,只需要自己去注册这个bean并且设置变量 useBase64Encoding 为false即可

参考:

http://www.cnblogs.com/imyjy/p/9187168.html

http://blog.didispace.com/spring-session-xjf-3/

Spring session 浏览器sessionId与服务器不一致解决方案相关推荐

  1. Spring Security——集成Spring Session、Redis和JSON序列化解决方案

    官方文档 https://docs.spring.io/spring-session/docs/2.4.2/reference/html5/#spring-security Maven 主要 < ...

  2. Web Socket/Stomp——整合Spring Session【Header Token模式】解决方案

    官方文档 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#websocket-stomp-au ...

  3. Spring Session - Cookie VS Session VS Token 以及 Session不一致问题的N种解决方案

    文章目录 Cookie VS Session VS Token History Cookie Session Token Session不一致问题 Session不一致解决方案 nginx sessi ...

  4. springcloud 加入spring session通过zuul请求session不一致问题

    最近在用学习springcloud 想法网关中加入权限url验证,这样其他微服务就不用做url验证了,分布式session用的spring session 遇到问题是:单独访问每个微服务,sessio ...

  5. Spring Security + Spring Session Redis——【SecurityContext】和【AuthenticationToken】JSON反序列化问题解决方案

    前置 Spring Session + Redis--自定义JSON序列化解决方案 问题描述 Spring Security + Spring Session使用中Redis,默认序列化方式是JdkS ...

  6. Spring Session Redis——自定义JSON序列化解决方案

    问题描述 Spring Session + Redis--自定义JSON序列化解决方案 问题分析 RedisHttpSessionConfiguration中,Bean名称必须是springSessi ...

  7. Spring Boot——Spring Session Redis整合Spring Security时错误【RedisConnectionFactory is required】解决方案

    问题描述 异常栈栈底 Caused by: java.lang.IllegalStateException: RedisConnectionFactory is requiredat org.spri ...

  8. Spring Session 2.0.0.M1 发布,分布式解决方案

    我很高兴地宣布Spring Session 2.0.0.M2 发布了.此版本的重点主要是确保与Spring Framework 5.0.0.RC2和Spring Data Kay-M4的兼容性.我们期 ...

  9. Spring Session 详解

    文章目录 1.SpringSession简介 1.1 Session 会话管理及带来的问题 1.2 SpringSession的特性 2.入门案例 2.1 创建项目 2.2 代码开发 2.3 Spri ...

最新文章

  1. android小知识之意图(intent)
  2. 踩坑之旅:springboot+vue+webpack项目实战(一)
  3. Keepalived+nginx实现高可用负载均衡
  4. 【OpenCV 例程200篇】50. 图像增强—直方图统计量图像增强
  5. Unity的属性注入
  6. Linux四剑客详解——sed
  7. 关于TeamViewer中的ITbrain
  8. Json数组转Map
  9. MarkDown 语法手册
  10. 发现一个大牛Scott Lowe博客
  11. 汇编语言学习-DOSBox-MASM-安装及使用教程
  12. oppoa9处理器怎么样_oppo a9是什么处理器
  13. 【离散数学笔记】逻辑运算之吸收律
  14. 【Java 8 新特性】Java 8 Collectors:reducing 示例(List分组取最值)
  15. java中static什么意思_Java中static的含义和用法
  16. 统一文档服务器,统一标准化文档oraclei服务器安装基础手册.doc
  17. 大批程序员可能面临被劝退!
  18. 华为手机 运行 linux,Linux 用户玩转华为手机之华为分享
  19. eclipse写python怎么样_eclipse python 使用教程(怎么用eclipse写python)
  20. XAG一键并轨XRP媒体报道

热门文章

  1. 不知道为什么输入12345,不能输出54321(c语言)
  2. 3、Horizon 域控服务器安装配置
  3. Linux上nginx配置SSL协议非80、443端口自动跳往https端口
  4. c++ std::move详解
  5. 模拟电路c语言编程题,计算机C语言模拟题
  6. Unidbg初步学习记录
  7. 最新世界500强排名177位 碧桂园营收573亿美元首进top200
  8. 数据科学作业2_房屋交易价格预测
  9. 无人机飞控 ardupilot 传感器驱动程序
  10. matlab模拟三体运动_三体运动的matlab演示.docx