Spring Boot 3.2.0中Spring Security过时API替换方案咨询
Spring Boot 3.2(Spring Security 6.1+)WebSecurityConfig 过时方法修复方案
从Spring Boot 2.7.x升级到3.2.x后,对应的Spring Security版本更新到6.1+,原有配置里的大量API已过时,以下是修改后的完整代码及对应说明:
修改后的完整代码
@Configuration @EnableWebSecurity @RequiredArgsConstructor public class WebSecurityConfig { private final JwtAuthenticationFilter jwtAuthenticationFilter; @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http // 启用默认CORS配置,替代原过时的cors().and() .cors(Customizer.withDefaults()) // 禁用CSRF,替代原过时的csrf().disable() .csrf(csrf -> csrf.disable()) // 禁用HTTP Basic认证,替代原过时的httpBasic().disable() .httpBasic(basic -> basic.disable()) // 配置无状态会话,替代原过时的sessionManagement().sessionCreationPolicy().and() .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) // 配置请求授权规则,替代原过时的authorizeRequests() .authorizeHttpRequests(auth -> auth // 允许指定路径无需认证,替代原过时的permitAll() .requestMatchers("/", "/api/v1/auth/**").permitAll() .requestMatchers(HttpMethod.GET, "/api/v1/board/**").permitAll() // 其余所有请求需要认证 .anyRequest().authenticated() ); http.addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); return http.build(); } }
关键修改点说明
- 注解修正:把原代码中的
@Configurable换成@Configuration——这是Spring配置类的标准注解,@Configurable是用于AspectJ织入的,这里属于误用。 - 链式调用改用Lambda风格:Spring Security 6.1+废弃了原有的
and()链式拼接方式,改用Lambda配置更清晰:- 原
.cors().and()→.cors(Customizer.withDefaults())(如果需要自定义CORS规则,可以在Lambda中配置自己的CorsConfigurationSource) - 原
.csrf().disable()→.csrf(csrf -> csrf.disable()) - 原
.httpBasic().disable()→.httpBasic(basic -> basic.disable()) - 原
.sessionManagement().sessionCreationPolicy(...).and()→.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
- 原
- 授权配置更新:
- 原
authorizeRequests()替换为authorizeHttpRequests()——新方法适配了更灵活的请求匹配和授权逻辑 - 原过时的
permitAll()属于旧的授权器实现,现在authorizeHttpRequests下的requestMatchers().permitAll()是新的有效方法,功能完全一致
- 原
- 构建方法更新:原
getOrBuild()替换为build()——前者已被标记为过时,直接用build()构建SecurityFilterChain即可
内容的提问来源于stack exchange,提问作者Seo_Now
相关产品推荐
相关产品推荐

