升级后的 Spring Boot Oauth2 自动配置周期
Posted
技术标签:
【中文标题】升级后的 Spring Boot Oauth2 自动配置周期【英文标题】:Spring Boot Oauth2 autoconfigure cycle after upgrade 【发布时间】:2022-01-10 12:02:31 【问题描述】:我正在将我的应用程序从 Spring Boot 2.5.4 升级到 2.6.1 并遇到依赖问题:
**说明: 应用上下文中一些bean的依赖形成了一个循环:
oidcAuthService 定义在文件 [/pr/pr-security-oidc/target/classes/com/pr/MyOauth2AuthService.class]
┌─────┐ | oauth2SecurityConfiguration ↑ ↓ | org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration ↑ ↓ | org.springframework.security.config.annotation.web.configuration.OAuth2ClientConfiguration$OAuth2ClientWebMvcSecurityConfiguration └──────┘**
经过一些调查,排除 WebMvcAutoConfiguration.class 后,应用程序能够启动,但会导致不同的安全配置相关问题。 任何想法新的 Spring 版本发生了什么,为什么 WebMvcAutoConfiguration 和 OAuth2ClientConfiguration 相互冲突?
附:我正在使用 spring-boot-starter-oauth2-client 和 spring boot,在旧版本上没有问题。
谢谢!
【问题讨论】:
这是因为 spring 2.6 是第一个检查循环依赖并出错的版本 【参考方案1】:你可以尝试放置
spring.main.allow-circular-references: true
在您的 application.properties 中。更多请点击链接: https://github.com/springdoc/springdoc-openapi/issues/1347
【讨论】:
应该注意这只是一种解决方法。这是 spring security oauth2 的一个已知问题吗?以上是关于升级后的 Spring Boot Oauth2 自动配置周期的主要内容,如果未能解决你的问题,请参考以下文章
如何使用spring-boot 1.3.0.RC1为oauth2提供自定义安全性配置
Spring Boot Security OAuth2 自定义异常消息
如何从 facebook/google/... oauth2 身份验证在 Spring (Boot) 中为单页应用程序派生自定义登录令牌?