报错信息:
org.springframework.security.core.authority.SimpleGrantedAuthority;local class incompatible: stream classdesc serialVersionUID = 500, local class serialVersionUID = 520
场景:
参考人家代码写的spring-cloud +zuul+ Oauth2 认证,人家代码用的是旧版本的spring-boot 2.0.2,demo走一遍后,没问题,换自己项目,更新spring-boot 版本为2.2.0 这时候,报错了。
原因:
1、当在SpringBoot为2.0.2版本时依赖的spring-security-core
和spring-security-config
为5.0.5版本。当升级为2.2.0版本依赖版本为5.2.0版本。
5.0.5版本SimpleGrantedAuthority
源码的serialVersionUID=500
,5.2.0版本下serialVersionUID=520
导致反序列化对象时为null
。
2、是不是因为Redis数据库缓存问题?因为代码里面是统一的,唯一有serialVersionUID=500的就是运行过一遍的Redis数据库了(我试过删掉所有keys没成功)。有知道的看官可以留言告诉我,十分感谢。等我有空了我学习Redis数据库知识后再测试一下。
尝试:
试过以下方法情况Redis缓存keys,可能是我没删全?没成功:
最后通过降级的办法暂时跑一下: