在做oauth认证的时候报错
java.io.InvalidClassException: org.springframework.security.core.authority.SimpleGrantedAuthority; local class incompatible: stream classdesc serialVersionUID = 500, local class serialVersionUID = 510
org.springframework.data.redis.serializer.SerializationException: Cannot serialize
csdn上找了一篇博客,说是:这是序列化异常,spring-security-core5.0.9中SimpleGrantedAuthority类serialVersionUID默认值是500,spring-security-core5.1.2中SimpleGrantedAuthority类serialVersionUID默认值是510。去pom.xml中修改版本号
博客地址:https://blog.csdn.net/smd2575624555/article/details/87080294
但是博主并没有说是改谁的版本号,就打开项目看了一下,果然我自己的项目用的org.springframework.security.core是5.1.5版本,他的serialVersionUID值真的是510,而授权模块的org.springframework.security.core是5.0.10版本,他的serialVersionUID值真的是500,那么问题基本确定就是版本不一致导致的。
接下来就是调整版本,因为不知道调整谁,所以一开始就乱调整,最终确定是spring boot的版本不一致导致的,我用的是2.1.6,而授权模块是2.0.7,于是将
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/>
</parent>
改为
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>