Spring 升级后启动 Oauth2 自动配置周期
Spring Boot Oauth2 autoconfigure cycle after upgrade
我正在将我的应用程序从 Spring Boot 2.5.4 升级到 2.6.1 并遇到依赖问题:
**说明:
application context中部分bean的依赖关系形成一个循环:
文件 [/pr/pr-security-oidc/target/classes/com/pr/MyOauth2AuthService.class]
中定义的 oidcAuthService
┌──────┐
| oauth2安全配置
↑ ↓
| org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration
↑ ↓
| org.springframework.security.config.annotation.web.configuration.OAuth2ClientConfiguration$OAuth2ClientWebMvcSecurityConfiguration
└──────┘**
在排除 WebMvcAutoConfiguration.class 后进行一些调查后,应用程序能够启动,但会导致不同的安全配置相关问题。
知道新 Spring 版本发生了什么,为什么 WebMvcAutoConfiguration 和 OAuth2ClientConfiguration 相互冲突?
P.S。我正在使用 spring-boot-starter-oauth2-client 和 spring 引导,在旧版本上没有问题。
谢谢!
您可以尝试放置
spring.main.allow-circular-references: true
在你的 application.properties 中。如需更多信息,请关注 link:
https://github.com/springdoc/springdoc-openapi/issues/1347
我认为正确的方法是删除:
... extends WebSecurityConfigurerAdapter
并将其替换为 bean:
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http. ... <do whatever you did in configure method> ... .build();
}
我正在将我的应用程序从 Spring Boot 2.5.4 升级到 2.6.1 并遇到依赖问题:
**说明: application context中部分bean的依赖关系形成一个循环:
文件 [/pr/pr-security-oidc/target/classes/com/pr/MyOauth2AuthService.class]
中定义的 oidcAuthService┌──────┐ | oauth2安全配置 ↑ ↓ | org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration ↑ ↓ | org.springframework.security.config.annotation.web.configuration.OAuth2ClientConfiguration$OAuth2ClientWebMvcSecurityConfiguration └──────┘**
在排除 WebMvcAutoConfiguration.class 后进行一些调查后,应用程序能够启动,但会导致不同的安全配置相关问题。 知道新 Spring 版本发生了什么,为什么 WebMvcAutoConfiguration 和 OAuth2ClientConfiguration 相互冲突?
P.S。我正在使用 spring-boot-starter-oauth2-client 和 spring 引导,在旧版本上没有问题。
谢谢!
您可以尝试放置
spring.main.allow-circular-references: true
在你的 application.properties 中。如需更多信息,请关注 link: https://github.com/springdoc/springdoc-openapi/issues/1347
我认为正确的方法是删除:
... extends WebSecurityConfigurerAdapter
并将其替换为 bean:
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http. ... <do whatever you did in configure method> ... .build();
}