迁移至Spring Boot 3.4.0:OAuth2AuthorizationServerConfiguration#applyDefaultSecurity已废弃
你的替换方式完全正确,且符合官方设计意图
你的代码其实完全复刻了OAuth2AuthorizationServerConfiguration#applyDefaultSecurity的底层核心逻辑,这也是官方废弃该静态方法后推荐的标准写法,测试通过是合理的,无需担心功能一致性。
补充说明与优化建议
官方废弃静态方法的原因
原静态方法封装了所有默认配置,灵活性不足。新的HttpSecurity#with方式,让开发者可以直观地对授权服务器配置做自定义扩展,比如调整客户端认证逻辑、添加自定义端点处理器等,无需依赖静态方法的黑盒封装。简化写法(无需额外变量)
如果不需要提前自定义OAuth2AuthorizationServerConfigurer,可以直接链式调用简化代码:http .securityMatcher(OAuth2AuthorizationServerConfigurer.authorizationServer().getEndpointsMatcher()) .with(OAuth2AuthorizationServerConfigurer.authorizationServer(), Customizer.withDefaults()) .authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated());自定义扩展示例
若后续需要调整授权服务器行为,比如自定义客户端认证转换器,可直接在OAuth2AuthorizationServerConfigurer上配置,这也是新写法的优势:var authorizationServerConfigurer = OAuth2AuthorizationServerConfigurer.authorizationServer(); // 自定义客户端认证逻辑 authorizationServerConfigurer.clientAuthentication(clientAuth -> clientAuth.authenticationConverter(customClientAuthenticationConverter()) ); http .securityMatcher(authorizationServerConfigurer.getEndpointsMatcher()) .with(authorizationServerConfigurer, Customizer.withDefaults()) .authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated());
内容的提问来源于stack exchange,提问作者Roar S.
相关产品推荐
相关产品推荐

