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

Spring Boot新版本中WebSecurityConfigurerAdapter弃用后的替代方案

替代WebSecurityConfigurerAdapter的Spring Security配置方案

从Spring Security 5.7.0版本开始,WebSecurityConfigurerAdapter被标记为弃用,官方推荐使用基于Bean的组件配置方式来实现安全规则,替代原来的继承重写模式。

你原来的配置逻辑可以通过注册SecurityFilterChain Bean来完全实现,对应代码如下:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfiguration {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            // 配置请求授权规则
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/**/favicon.ico", "/css/**", "/js/**", "/images/**", "/webjars/**")
                .permitAll() // 指定路径允许匿名访问
                .anyRequest()
                .authenticated() // 其他所有请求必须认证
            )
            // 启用默认表单登录
            .formLogin();

        return http.build();
    }
}

关键改动说明

  • 移除了对WebSecurityConfigurerAdapter的继承,改用@Configuration + @EnableWebSecurity注解标记配置类
  • 用SecurityFilterChain类型的Bean替代原来的configure(HttpSecurity)方法,所有HttpSecurity的配置逻辑都在这个Bean方法里完成
  • 新版API中authorizeRequests()已被弃用,替换为authorizeHttpRequests(),用法逻辑一致但更符合当前的设计规范
  • 表单登录的配置保持简洁,.formLogin()会启用Spring Security默认的表单登录页面和认证流程,和原代码效果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:52:38