使用spring-boot-starter-security时antMatchers方法找不到的问题
问题解决:Spring Security 3.0.2路由权限配置报错
错误原因
你使用的Spring Boot 3.0.2配套Spring Security 6.x版本,该版本彻底移除了旧版的authorizeRequests()和antMatchers()方法,改用全新的HTTP请求授权API,因此IDE会提示找不到对应方法。
修正后的SecurityConfig代码
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @Configuration @EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .sessionManagement(session -> session .sessionCreationPolicy(SessionCreationPolicy.STATELESS) ) .authorizeHttpRequests(auth -> auth .requestMatchers("/secure/**").authenticated() .anyRequest().permitAll() ) .csrf(csrf -> csrf.disable()); return http.build(); } }
关键修改说明
- 用
authorizeHttpRequests()替代旧的authorizeRequests(),采用Spring Security 6推荐的Lambda风格配置 - 用
requestMatchers()替代antMatchers(),实现相同的路由匹配逻辑 - 无状态会话、关闭CSRF的配置保持不变,最终实现仅
/secure/**路由需要身份认证,其余路由公开访问的需求
内容的提问来源于stack exchange,提问作者Arnob
相关产品推荐
相关产品推荐

