从Spring 2.X升级到3.X:替换已废弃方法的正确方式
Spring Security 3(对应Spring Security 6+)废弃方法替换方案
核心废弃方法替换说明
authorizeRequests()→authorizeHttpRequests():用于配置HTTP请求的授权规则,是Spring Security 6+的标准API。antMatchers()→requestMatchers():替代原有的Ant风格路径匹配,支持更多类型的请求匹配(如Ant路径、正则、MVC路径等),用法和原antMatchers()完全一致。csrf().disable()推荐改为lambda风格配置:csrf(csrf -> csrf.disable()),这是Spring Security 6+倡导的配置方式,替代原有的链式调用写法。- 原链式调用中的
and()可全部移除,通过lambda嵌套完成配置,代码结构更简洁易读。
修改后的完整SecurityFilterChain代码
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http // CSRF配置 .csrf(csrf -> csrf.disable()) // 请求授权规则配置 .authorizeHttpRequests(auth -> auth .requestMatchers(apiPublicPattern).permitAll() .requestMatchers(fileExtensions).permitAll() .anyRequest().authenticated() ) // 添加自定义过滤器 .addFilterBefore(compositeAuthenticationFilter(), BasicAuthenticationFilter.class) // 会话管理配置 .sessionManagement(session -> session .maximumSessions(1) .expiredUrl("/expired") .sessionRegistry(sessionRegistry()) ) // 异常处理配置 .exceptionHandling(exceptions -> exceptions .accessDeniedHandler(accessDeniedHandler()) ) // 登出配置 .logout(logout -> logout .logoutUrl("/logout") .logoutSuccessUrl("/") ) // 安全头配置 .headers(headers -> headers .contentSecurityPolicy(contentSecurityPolicy) ) // 注册认证提供者 .authenticationProvider(jwtBearerTokenAuthenticationProvider()) .authenticationProvider(apiKeyAuthenticationProvider()); return http.build(); }
关键说明
- 所有配置通过lambda表达式完成,替代了原有的
and()链式调用,这是Spring Security 6+的推荐配置风格,代码逻辑更清晰。 requestMatchers()完全兼容原antMatchers()的路径写法,无需修改已有的路径规则。- 其他模块如
sessionManagement、exceptionHandling等均采用lambda配置,统一了代码风格,也避免了方法废弃警告。
内容的提问来源于stack exchange,提问作者ksernow
相关产品推荐
相关产品推荐

