美文网首页
local class incompatible: stream

local class incompatible: stream

作者: 饱饱抓住了灵感 | 来源:发表于2022-11-28 20:33 被阅读0次

如下报错:

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

解决方法有:

  1. 清除redis中的登录信息
  2. 页面清除cookie, 重新登录即可

相关文章

网友评论

      本文标题:local class incompatible: stream

      本文链接:https://www.haomeiwen.com/subject/mdlrfdtx.html