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

2023-10-26

项目情况:

        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/

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring session 浏览器sessionId与服务器不一致解决方案 的相关文章

  • Physics-Embedded Machine Learning 文献调研分析

    Physics Embedded Machine Learning 文献调研分析 感谢原作者 原文链接 https zhuanlan zhihu com p 574970271 使用机器学习建模的系统 很多具有各种形式的物理先验或者领域知识
  • 1372. Longest ZigZag Path in a Binary Tree

    You are given the root of a binary tree A ZigZag path for a binary tree is defined as follow Choose any node in the bina
  • python 不懂的

    1039 到底买不买 20 分 小红想买些珠子做一串自己喜欢的珠串 卖珠子的摊主有很多串五颜六色的珠串 但是不肯把任何一串拆散了卖 于是小红要你帮忙判断一下 某串珠子里是否包含了全部自己想要的珠子 如果是 那么告诉她有多少多余的珠子 如果不
  • Java视频学习笔记-1-(标记符,注释,原码,变量,基本数据类型)

    1 标识符命名规则 包 单级包 全部小写 liuyi 多级包 小写且用 隔开 cn cast 注 java lang包下的类不需要导入 其他的全部需要导入 类或者接口 一个单词 首字母大写 Student 多个单词 每个单词的首字母必须大写
  • Python3 处理JSON

    真的好简单 灰常简单 import os io sys re time base64 json import webbrowser urllib request def main main function url http m weath
  • CentOS6.5源码安装MySQL5.6.35

    原文地址 http www cnblogs com ShanFish p 6531365 html 参考地址 http blog csdn net 1099564863 article details 51622709 http blog
  • 一首美丽的歌

    Caruso Qui dove il mare luccica 在那个波光粼粼的地方 E tira forte il vento 海风劲疾地吹荡 Sulla vecchia terrazza 一个古旧的阳台 Davanti al golfo
  • markdown可用图标

  • 完全二叉树的根

    题目描述 有一棵n个节点的完全二叉树 存储着 1 n 的值 有n n 1 n 2 条关于这颗树的信息 每条信息 由一个四元组组成 i j k 0 1 i j k 均不完全一样 若四元组最后一个元素为0 表示值为k的这个节点不是值为 i 的结

随机推荐

  • statsmodels模块计量经济学

    1 将参数处理为一维或者多维数组后 x为一维数组 只有一个参数 多维数组 多个参数 处理方式参见下文 x sm add constant x 添加一个常数 model sm OLS salary x fit 拟合 print model s
  • SSM整合

    SSM整合 1 在数据库中创建表 并导入数据 sql语句 CREATE DATABASE wyy music USE wyy music DROP TABLE IF EXISTS tb music CREATE TABLE tb music
  • 无聊时的小程序- -:图像灰度化处理

    简介 1 实现三种灰度算法处理 2 支持拖放 展示如下 代码附于上传文件中
  • 【栈排序】对栈进行排序使最小元素位于栈顶

    试题来源 程序员面试金典 https leetcode cn com problems sort of stacks lcci 栈排序 编写程序 对栈进行排序使最小元素位于栈顶 最多只能使用一个其他的临时栈存放数据 但不得将元素复制到别的数
  • IDEA 添加对 yaml 文件的语法自动补全

    首先 File gt Settings gt Plugins 其次 最后 搜索 spring assistant 安装即可 效果 其实这个插件也就是对 spring 提供支持的 添加之后就可以在新建工程的时候看见 spring 了
  • vue中的监听事件(watch)

    使用watch这个可以监听data中指定数据的变化 然后触发watch中对应的function的处理 html 在html里写下那个事件会让触发methods让data发生变化
  • [noip 2004]火星人

    题目 http www leapoahead com acm problem php cid 1002 pid 3 就是今天正式赛的题目 思路 由所给排列生成接下来的排列中第m个排列 考虑18 很大 多以都用了64位储存 网上查阅了相关知识
  • 暴力密码原理与防御

    一 密码概述 密码的作用 加密 一些机密文件 需要加密防止被其他人查看 一般用base64加密 MD5加密 完整性 加密的内容 要防止被其他人修改 就要用哈希算法等进行验证 身份认证 用户身份鉴别 我们QQ 支付宝 微信等账户就要密码登录
  • uniapp创建Vue3项目总结

    一 创建项目 选择新建uni app项目 输入项目名称 选择项目文件存放的位置 选择项目需要的模板 选择Vue 3 版本 点击创建 即可创建V3项目 二 vue3 main js配置引用示例 import App from App impo
  • 使用拼写检查提高Tesseract OCR准确性

    使用拼写检查提高Tesseract OCR准确性 上一篇博客介绍了如何使用textblob库和Tesseract自动进行OCR文本 然后将其翻译为其他语言 这篇博客还将通过textblob应用自动拼写检查OCR文本来提高OCR准确性 能够使
  • jar包扫描工具: gamma

    1 简介 本项目是一个jar包扫描工具 可以支持插件化订制不同的扫描逻辑 支持以下功能 插件化订制扫描逻辑 让扩展更加容易 将扫描到的文件加载到jvm中以class的形式返回给处理插件 让扫描逻辑写起来更加的容易 支持springBoot
  • 位运算(按位与 、按位或、按位异或、取反、左移右移)

    位运算 与 0 0 0 0 1 0 1 0 0 1 1 1 或 0 0 0 0 1 1 1 0 1 1 1 1 异或 0 0 0 0 1 1 1 0 1 1 1 0 1 按位与运算 双目运算符 其功能是参与运算的两数对应的二进位相与 只有对
  • UE4 像素流的一些使用技巧

    一 测试像素流的三种方法 前提是熟悉官网像素流送那套流程 这里只是讲如何不用打包就能测试的方法 1 第一种方法是vs安装unrealvs扩展 因为安装这个拓展后加可以加命令行参数启动项目https docs unrealengine com
  • 2W薪资必备技能 —— Python接口自动化测试

    目录 一 基础准备 1 环境搭建 2 接口基础知识 2 1 接口分类 2 2 接口请求类型 二 Requests 快速上手 1 requests基础 1 1 发送请求 1 2 参数传递 1 3 接口响应 1 4 接口其他处理 2 reque
  • 理解GC日志

    33 125 GC DefNew 8003K gt 570K 9216K 0 0085326 secs 8003K gt 6714K 19456K 0 0087219 secs Times user 0 00 sys 0 00 real 0
  • 文件洞的处理

    存储引擎经常要面对的一个问题 就是洞的处理 一些思路 1 如果可以 重用现有空间 而不是增加文件大小 比如在hash store中 新value比旧value的长度小 2 使用Segment File 而不是一个抽象的大文件 3 现有seg
  • 【OpenCV-Python】32.OpenCV的人脸检测和识别——人脸检测

    32 OpenCV的人脸检测和识别 人脸检测 文章目录 前言 一 基于Haar的人脸检测 1 使用Haar级联分类器检测人脸 2 使用Haar级联分类器检测猫脸 3 使用Haar级联分类器检测人脸的框架式程序 4 使用Haar级联分类器检测
  • Mybatis之 ${}和#{}区别及动态传入表名

    和 区别 能防止sql注入 不能 方 式 一 般 用 于 传 入 数
  • 系统架构设计师之用例之间的关系:包含、扩展、泛化

    系统架构设计师之用例之间的关系 包含 扩展 泛化
  • Spring session 浏览器sessionId与服务器不一致解决方案

    项目情况 spring boot 和spring session 版本都是 2 0 2 RELEASE 问题描述 请求项目接口后浏览器保存的sessionId与服务器不一致 拿Postman测试如下图 网上找了很久都没发现有人发过这个问题