首页 新闻 会员 周边

spring security+spring session+redis反序列化问题

0
悬赏园豆:200 [待解决问题]

我在spring security+spring session使用redis,序列化方式是GenericJackson2JsonRedisSerializer,但是spring security在认证成功之后会保存一个SecurityContextImpl到redis,这个类是有无参构造的,但是这个类下面有一个UsernamePasswordAuthenticationToken类没有无参构造,造成反序列化失败,认证就失败了,没有找到解决办法,总不能重新打包spring的jar包,也没办法自定义反序列化方式,改成jdk序列化太占空间,又不想改成fastjson,bug太多,不想一个项目中依赖两个json工具,前辈们有什么办法吗??

ZJef的主页 ZJef | 初学一级 | 园豆:2
提问于:2019-12-10 14:49
< >
分享
所有回答(3)
0

用jwt认证,就不用烦恼序列化存储了。

kiwis3 | 园豆:202 (菜鸟二级) | 2019-12-16 21:51

我是jwt认证的,jwt+spring security+spring session使用redis,jwt不需要缓存,spring security自动保存了一个SecurityContextImpl,前辈的意思是我写的某个实现类错了,应该不需要这个保存吗?

支持(0) 反对(0) ZJef | 园豆:2 (初学一级) | 2019-12-25 14:02
0

关注一下,也遇到这个问题了

心如止水-杜 | 园豆:156 (初学一级) | 2019-12-24 16:16
0

相同问题,后来怎么处理的

bruce·bob | 园豆:204 (菜鸟二级) | 2020-06-18 10:08

还是改回了JDK序列化,或者可以试试自定义jackson序列化该类的方式。或者绕一下,缓存查询结果即可,不用缓存那个实现类了。

支持(0) 反对(0) ZJef | 园豆:2 (初学一级) | 2020-06-19 00:36

@ZJef: 官方给了security和jackson 的集成,对很多没有无参构造的 写了好多 Mixin 模式的自定义类 WebServletJackson2Module,WebJackson2Module 在ObjectMapper 里面添加一下 就可以了。搞死我了。没有的话可以自己实现也是很方便的,大部分都有实现。

支持(0) 反对(0) bruce·bob | 园豆:204 (菜鸟二级) | 2020-06-19 18:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册