Spring Security 5迁移至Spring Security 6的HttpSecurity代码替代方案咨询
Spring Security 6 替代写法及关键变化
以下是对应Spring Security 6的配置代码:
http .authorizeHttpRequests(auth -> auth .requestMatchers("/hub/**").access("hasPermission('SOME_LAYER', '')") .anyRequest().authenticated() ) .exceptionHandling(exceptions -> exceptions .accessDeniedHandler(accessDeniedHandlerClass) ) .sessionManagement(session -> session .sessionCreationPolicy(SessionCreationPolicy.NEVER) );
关键变化说明
- 替换授权入口:用
authorizeHttpRequests()替代Spring Security 5中的authorizeRequests(),这是6.x版本标准化的HTTP授权配置入口。 - 移除
.and()链式分隔:6.x版本推荐使用Lambda表达式嵌套配置,无需再用.and()拼接不同配置模块,代码结构更紧凑易读。 - 合并授权规则:原代码中拆分的两次
authorizeRequests调用可合并到同一个authorizeHttpRequests块中,避免规则顺序引发的潜在问题,逻辑更清晰。 - 统一配置风格:
exceptionHandling、sessionManagement等模块均采用Lambda表达式进行内部配置,保持整体代码风格一致。
内容的提问来源于stack exchange,提问作者Avinash kumar
相关产品推荐
相关产品推荐

