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();
}