问题描述

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

问题分析

RedisHttpSessionConfiguration中,Bean名称必须是springSessionDefaultRedisSerializer才能指定Jackson序列化器。

    @Autowired(required = false)@Qualifier("springSessionDefaultRedisSerializer")public void setDefaultRedisSerializer(RedisSerializer<Object> defaultRedisSerializer) {this.defaultRedisSerializer = defaultRedisSerializer;}

解决方案

使用指定Bean的名称springSessionDefaultRedisSerializer。 由于必须在Jackson的ObjectMapper中序列化会话信息,因此可以使用SecurityJackson2Modules注册所需的模块。

    @Beanpublic ObjectMapper objectMapper(){ObjectMapper objectMapper = new ObjectMapper();objectMapper.registerModules(SecurityJackson2Modules.getModules(getClass().getClassLoader()));return objectMapper;}
    @Autowiredprivate ObjectMapper objectMapper;@Beanpublic RedisSerializer<Object> redisSerializer(){return new GenericJackson2JsonRedisSerializer(objectMapper);}
    @Beanpublic RedisSerializer<Object> springSessionDefaultRedisSerializer(){return redisSerializer;}

以上代码可以化简:

    @Beanpublic RedisSerializer<Object> springSessionDefaultRedisSerializer(){ObjectMapper objectMapper = new ObjectMapper();objectMapper.registerModules(SecurityJackson2Modules.getModules(getClass().getClassLoader()));return new GenericJackson2JsonRedisSerializer(objectMapper);}        

也可以用@Qualifier("springSessionDefaultRedisSerializer")

参考文章

Spring Session & RedisでJacksonを使ったシリアライズを試してみる

Spring Session Redis——自定义JSON序列化解决方案相关推荐

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

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

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

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

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

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

  4. Spring Security +Spring Session Redis+JJWT

    重要提示 这样集成弄完一波后,导致Spring Security并发控制并没有生效,请大佬们慎重参考下面内容. 问题 希望使用Spring Security对Spring Boot进行保护,并且,使用 ...

  5. Spring Session Redis实现Session共享

    Spring Session & Redis实现Session共享 前后端分离Session.单点登录实现 Session 共享简单方案,充当笔记 一.Session和Cookie 1.Ses ...

  6. .NET 自定义Json序列化时间格式

    .NET 自定义Json序列化时间格式 Intro 和 JAVA 项目组对接,他们的接口返回的数据是一个json字符串,里面的时间有的是Unix时间戳,有的是string类型,有的还是空,默认序列化规 ...

  7. 在spring MVC项目中集成Spring session redis (使用spring session框架,redis作为存储缓存)...

    2019独角兽企业重金招聘Python工程师标准>>> 1.为项目增加以来  pom.xml中使用 <!-- spring session 单点登录 --> //本项目使 ...

  8. 单点登录实现(spring session+redis完成session共享)

    一.前言 项目中用到的SSO,使用开源框架cas做的.简单的了解了一下cas,并学习了一下 单点登录的原理,有兴趣的同学也可以学习一下,写个demo玩一玩. 二.工程结构 我模拟了 sso的客户端和s ...

  9. Spring Session, Redis 实现微服务 Session 共享

    在微服务中,实现各个微服务模块之间的Session共享,可以通过 Spring Session 和 Redis 技术实现. 本实例直接在之前的两个微服务中添加同样的配置,然后测试两个接口查看 Sess ...

最新文章

  1. 由于找不到appvisvsubsystems32.dll_去固始张街逛一逛,以后可能看不到了......
  2. Linux系统下如何查看已经登录用户
  3. android字符串获取数字索引,从字符串中提取特定数据(Extract specific data from a string)...
  4. linux2.6驱动学习笔记之字符驱动
  5. php 安全基础 第七章 验证与授权 永久登录
  6. 手机h5可以用ifreme_折叠照片特效,用手机修图软件就可以实现
  7. Oracle segment啥意思,关于oracle数据库段segment的小结
  8. C++基础06-类与对象之new和malloc
  9. java可视化编程软件有哪些_几款Java开发者必备常用的工具,准点下班不在话下...
  10. Java之函数式接口
  11. 笔记本使用Nsight注意事项
  12. android 获取路由器id,华为路由器从旧路由获取宽带帐号和密码具体教程
  13. 前端之搭建简单的Node服务器
  14. A load persistent id instruction was encountered, but no persistent_load function was specified.
  15. 数据备份:备份文件/文件夹怎么操作?
  16. KunlunBase集群管理接口
  17. 使用express脚手架创建项目
  18. iOS程序启动原理---iOS-Apple苹果官方文档翻译
  19. 强大的Git客户端:Tower for Mac(7.1(291)
  20. 【Linux开发环境搭建】arm-linux-gnueabihf 交叉编译工具链安装

热门文章

  1. 驳《从团购网站看中国人的创新精神》
  2. 2009年美国大学计算机专业排名
  3. python代码查询_python 查询代码量
  4. 2.控制反转 spring_ioc
  5. 求中位数_图解面试题:如何分析中位数?
  6. linux服务器 32核,Intel换成AMD 32核锐龙 Linux之父体验很好
  7. xss 跨站脚本漏洞 php,跨站脚本漏洞(XSS)基础讲解
  8. mysql 常用小工具包_mssql+mysql小工具(无需环境依赖)-mysql数据库批量实体CS类导出工具下载v3.0免费版-西西软件下载...
  9. 主成分分析计算机如何实现,主成分分析(PCA)原理及R语言实现及分析实例
  10. java中注解的解析_【Java】中的注解与注解解析器