求帮助:将旧版Spring Security授权代码迁移至Spring Security 6
Spring Security 旧代码转6.x版本实现
旧版代码
http.authorizeRequests().antMatchers("/resources/**", "/static/**").permitAll().antMatchers("/api/**") .authenticated().and().httpBasic().and().antMatcher("/tdgp/**").authorizeRequests().anyRequest() .hasAnyRole("Admin", "BasicUser").and().formLogin().loginPage("/login").and().rememberMe() .key("rememebrKey").rememberMeParameter("spring_security_remember_me") .rememberMeCookieName("rememberme").useSecureCookie(false);
转换后的Spring Security 6.x代码
http // 配置静态资源放行及API路径认证规则 .authorizeHttpRequests(auth -> auth .requestMatchers("/resources/**", "/static/**").permitAll() .requestMatchers("/api/**").authenticated() ) // 开启HTTP Basic认证 .httpBasic(Customizer.withDefaults()) // 针对/tdgp/**路径单独配置权限 .securityMatcher("/tdgp/**") .authorizeHttpRequests(auth -> auth .anyRequest().hasAnyRole("Admin", "BasicUser") ) // 配置自定义登录页面 .formLogin(form -> form .loginPage("/login") ) // 配置记住我功能细节 .rememberMe(remember -> remember .key("rememebrKey") .rememberMeParameter("spring_security_remember_me") .rememberMeCookieName("rememberme") .useSecureCookie(false) );
关键变化说明
- 废弃旧版
authorizeRequests(),改用authorizeHttpRequests()结合Lambda表达式配置权限规则 - 替换
antMatchers()为requestMatchers(),路径匹配API更规范;antMatcher()替换为securityMatcher()用于指定专属权限控制的路径范围 - 不再依赖
.and()链式拼接配置,各功能模块(认证、登录、记住我)通过对应方法的Lambda参数独立完成细节配置 - 使用
Customizer.withDefaults()快速启用HTTP Basic认证,也可传入自定义配置逻辑调整参数
内容的提问来源于stack exchange,提问作者Raju Patil
相关产品推荐
相关产品推荐

