项目场景:
提示:这里简述项目相关背景:
例如:项目场景:项目用的鉴权框架是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()));