You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Security中WebSecurityConfigurerAdapter废弃后如何重构自动配置类

Spring Security废弃WebSecurityConfigurerAdapter后的自动配置重构

针对你升级Spring Boot后遇到的WebSecurityConfigurerAdapter废弃问题,需要从条件注解和Bean实现两部分重构自动配置类,具体方案如下:

1. 替换@ConditionalOnMissingBean的判断条件

原代码中@ConditionalOnMissingBean(WebSecurityConfigurerAdapter.class)是判断是否存在自定义的WebSecurityConfigurerAdapter Bean,现在Spring Security推荐使用SecurityFilterChain作为安全配置的核心Bean,因此需要将条件改为检查是否存在自定义的SecurityFilterChain:

@ConditionalOnMissingBean(SecurityFilterChain.class)

2. 重构安全配置Bean的实现

不再返回废弃的WebSecurityConfigurerAdapter,而是直接返回SecurityFilterChain,使用Spring Security推荐的lambda风格API配置HttpSecurity:

完整重构后的代码示例

@Configuration
public class MyAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean(SecurityFilterChain.class)
    public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {
        // 这里替换为你原来在WebSecurityConfigurerAdapter#configure(HttpSecurity)中的配置逻辑
        http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/actuator/**").permitAll()
                .anyRequest().authenticated()
            )
            .formLogin(form -> form
                .loginPage("/login")
                .permitAll()
            )
            .logout(logout -> logout.permitAll());
        
        return http.build();
    }

    // 如果原来有WebSecurity的配置(比如忽略静态资源),添加这个Bean
    @Bean
    @ConditionalOnMissingBean(WebSecurityCustomizer.class)
    public WebSecurityCustomizer defaultWebSecurityCustomizer() {
        // 替换为你原来在WebSecurityConfigurerAdapter#configure(WebSecurity)中的忽略规则
        return web -> web.ignoring().requestMatchers("/static/**", "/public/**");
    }
}

关键说明

  • 新的配置方式直接基于SecurityFilterChain,这是Spring Security 5.4+官方推荐的无适配器配置方案,避免依赖废弃类。
  • 如果你的自动配置需要兼容旧版本的WebSecurityConfigurerAdapter配置,Spring Security会自动将旧的适配器实例适配为SecurityFilterChain,但建议优先使用新API。

内容的提问来源于stack exchange,提问作者VichynewSTB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 08:09:16