gpt4 book ai didi

java - 如何修复 java.io.InvalidClassException : org. springframework.security.core.context.SecurityContextImpl

转载 作者:行者123 更新时间:2023-12-05 06:02:14 25 4
gpt4 key购买 nike

我最近升级了我的 spring boot 应用程序的 Spring,结果,底层 Spring Security Core 升级到了 5.4.5。

现在启动 Spring Boot 应用程序时,我看到以下问题:

org.eclipse.jetty.server.HttpChannel - handleException / java.io.InvalidClassException: 
org.springframework.security.core.context.SecurityContextImpl; local class incompatible:
stream classdesc serialVersionUID = 530, local class serialVersionUID = 540

在这种情况下,我在 GitHub 上找到了这篇文章:https://github.com/spring-projects/spring-security/issues/9204https://github.com/spring-projects/spring-security/issues/3736 .

但是我不知道如何解决这个问题。有人可以在这里帮忙吗?谢谢。

最佳答案

https://github.com/spring-projects/spring-security/issues/9204你可以找到:“Spring Security 不打算在版本之间序列化”

这令人兴奋。所以所有用户都需要在版本升级时注销!?

你能做什么?对于当前的升级,您必须注销所有用户。但是您可以为下一次升级做准备:

您需要为 session 对象编写自己的序列化。这是一个项目,他们在其中添加了自己的 session 序列化用户 Jackson 和一些 redis 库。例如,即使您使用的是 mysql,此代码也无需更改即可工作:

https://raw.githubusercontent.com/klboke/apollo/091a757d0a3c2173d6c600cd6a9a1595bb73c10c/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/component/config/SpringSessionConfig.java

有一点需要注意。因此,如果您不在生产环境中,则添加此配置,当安全库升级时,您就可以了,但是如果您是在生产环境中,则第一次部署此配置时,所有用户都需要先注销,因为 session 序列化不会适合上一个!

关于java - 如何修复 java.io.InvalidClassException : org. springframework.security.core.context.SecurityContextImpl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66983628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com