Spring Security 6.1+中cors()、and()、csrf()弃用问题求解
Spring Security 6.1+ 弃用方法替代方案
Spring Security 6.1起弃用了旧的链式调用风格(如and()、无参cors()、无参csrf()),推荐使用lambda表达式风格的DSL配置,以下是你的代码改造后的版本:
@Override protected void configure(HttpSecurity http) throws Exception { http // 指定当前配置生效的路径范围,替代原antMatcher .securityMatcher("/page/book", "/page/food", "/page/password") // 配置CORS,替代原cors().configurationSource()链式调用 .cors(cors -> cors.configurationSource(request -> new CorsConfiguration().applyPermitDefaultValues())) // 禁用CSRF,替代原csrf().disable() .csrf(csrf -> csrf.disable()); }
关键改动说明:
- 移除
and():新版本通过lambda结构自然分隔不同配置块,不再需要and()来连接链式调用 securityMatcher替代antMatcher:antMatcher已被标记为弃用,securityMatcher是更通用的路径匹配入口,用于指定当前HttpSecurity配置生效的请求路径范围- 配置项改用lambda:
cors、csrf等方法现在接受对应的配置器lambda,直接在内部完成配置,替代旧的链式调用
这种配置风格是Spring Security 6.x版本的标准写法,不仅解决了弃用警告,还让配置结构更清晰、可读性更强。
内容的提问来源于stack exchange,提问作者Olivia
相关产品推荐
相关产品推荐

