Satoken集成redis遇到的redis序列化失败问题解决方法

本文描述了一个项目中使用saToken鉴权框架时,由于未集成Redis导致用户更新后需重新登录的问题。问题在于SpringDataRedis序列化时出现异常,原因是直接将对象存储而非JSON。解决方案是将对象转换为JSON后再写入session。
摘要由CSDN通过智能技术生成

项目场景:

提示:这里简述项目相关背景:

例如:项目场景:项目用的鉴权框架是saToken,项目经常更新。因为没有集成redis,会导致每次更新用户都需要重新登录。所以今天把redis继承到saToken中。


问题描述

提示:这里描述项目中遇到的问题:

例如:集成的依赖版本一定要一致,否则绝对会报错,saToken版本修改还是很频繁。运行后果然还是报错了,意料之中,感觉没那么顺利。

org.springframework.data.redis.serializer.SerializationException: Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io.NotSerializableException: com.laker.admin.framework.ext.mybatis.UserInfoAndPowers

redis序列化错误。redis序列化错误,一般都是格式问题。所以平常我们写入redis,都是转化成json再写入的。

StpUtil.getSession().set(EasyAdminConstants.CURRENT_USER, userInfoAndPowersBuilder.build());

原因分析:

提示:这里填写问题的分析:

果然再登录方法中看到写入session中,写入的value是对象。转换成json,然后在项目中使用到session中转回对象。


解决方案:

提示:具体解决方案:

StpUtil.getSession().set(EasyAdminConstants.CURRENT_USER, JSONObject.toJSON(userInfoAndPowersBuilder.build()));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值