如下报错:
org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exce
ption is org.springframework.core.serializer.support.SerializationFailedException: Failed to dese
rialize payload. Is the byte array a result of corresponding serialization for DefaultDeserialize
r?; nested exception is java.io.InvalidClassException: org.springframework.security.core.context.
SecurityContextImpl; local class incompatible: stream classdesc serialVersionUID = 500, local cla
ss serialVersionUID = 520
at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.deserialize(
JdkSerializationRedisSerializer.java:84)
at org.springframework.data.redis.core.AbstractOperations.deserializeHashValue(AbstractOp
erations.java:355)
at org.springframework.data.redis.core.AbstractOperations.deserializeHashMap(AbstractOper
ations.java:299)
at org.springframework.data.redis.core.DefaultHashOperations.entries(DefaultHashOperation
s.java:247)
at org.springframework.data.redis.core.DefaultBoundHashOperations.entries(DefaultBoundHas
hOperations.java:183)
at org.springframework.session.data.redis.RedisIndexedSessionRepository.getSession(RedisI
ndexedSessionRepository.java:440)
at org.springframework.session.data.redis.RedisIndexedSessionRepository.onMessage(RedisIn
dexedSessionRepository.java:527)
at org.springframework.data.redis.listener.RedisMessageListenerContainer.executeListener(
RedisMessageListenerContainer.java:250)
at org.springframework.data.redis.listener.RedisMessageListenerContainer.processMessage(R
edisMessageListenerContainer.java:240)
at org.springframework.data.redis.listener.RedisMessageListenerContainer.lambda$dispatchM
essage$0(RedisMessageListenerContainer.java:986)
at java.base/java.lang.Thread.run(Unknown Source)
这是spring-security-core升级导致的序列化错误
因为SimpleGrantedAuthority类的serialVersionUID, 在低版本和高版本之间使用的值不同所导致的
低版本默认500, 高版本默认520
解决方法有:
- 清除redis中的登录信息
- 页面清除cookie, 重新登录即可







网友评论