我需要一个 SecurityConfig 文件来验证角色,而无需使用已弃用的“WebSecurityConfigurerAdapter”。
这是我的 spring security 的 pom.xml 依赖项:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>6.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
这是我的 SecurityConfig.java 类:
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;
@EnableWebSecurity
public class SecurityConfig {
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf.disable())
.authorizeRequests(auth -> {
auth.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasRole("USER")
.anyRequest().authenticated();
})
.httpBasic();
return http.build();
}
}
为了了解背景,我观看了这个视频。
我运行 mvn clean、验证并尝试使用 File -> Invalidate Cache 清除 IntelliJ 缓存,但没有成功。 antMatchers 方法上仍然存在“无法解析‘ExpressionInterceptUrlRegistry’中的方法‘antMatchers’”的问题。
在 Spring Security 5.8 中,已弃用
antMatchers
、mvcMatchers
和 regexMatchers
方法,取而代之的是新的 requestMatchers
方法。上述已弃用的方法已在 Spring Security 6.0 中删除
查看迁移指南