WebSecurityConfigurerAdapter无法解析,Spring Boot OAuth2.0配置遇阻
Spring Boot OAuth2.0 配置(替代废弃的WebSecurityConfigurerAdapter)
Spring Security 5.7.0版本开始,WebSecurityConfigurerAdapter被标记为废弃,官方推荐采用基于组件的配置方式,通过注册SecurityFilterChain类型的Bean来替代原有的继承重写逻辑。以下是适配你需求的最新配置写法:
@EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http // 配置请求授权规则,使用lambda传入自定义配置器 .authorizeHttpRequests(auth -> auth .antMatchers("/").permitAll() .anyRequest().authenticated() ) // 启用OAuth2登录功能,可在lambda内添加自定义配置(如登录页、处理器等) .oauth2Login(oauth2 -> oauth2 // 示例:自定义登录成功处理器(不需要可删除此段) // .successHandler(customOAuth2SuccessHandler()) ); return http.build(); } // 若需自定义OAuth2登录相关处理器,可额外注册对应的Bean(不需要可删除) // @Bean // public OAuth2AuthenticationSuccessHandler customOAuth2SuccessHandler() { // return new CustomOAuth2SuccessHandler(); // } }
关键改动说明:
- 不再继承
WebSecurityConfigurerAdapter,转而通过@Bean定义SecurityFilterChain来配置安全规则 authorizeHttpRequests()方法需传入lambda形式的自定义配置器,内部逻辑和原代码一致,只是写法调整为更清晰的函数式风格oauth2Login()同样支持通过lambda扩展配置,比如指定登录页面、自定义成功/失败处理器等,不需要额外配置时可简化为.oauth2Login()
如果需要配置用户认证相关逻辑(比如自定义UserDetailsService),也直接通过@Bean注册即可,无需重写旧版的configure(AuthenticationManagerBuilder)方法。
内容的提问来源于stack exchange,提问作者ANMOL KUMAR
相关产品推荐
相关产品推荐

