'org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter' 已弃用 ,这种为题怎么解决
时间: 2024-11-27 21:12:03 浏览: 4
SpringSecurity_day03.pdf
`WebSecurityConfigurerAdapter` 是 Spring Security 4.x 到 5.x 版本中用于配置 Web 安全的注解方式。然而,在 Spring Security 5.0 之后,官方推荐使用基于 Java 的配置而不是传统的 XML 配置。从版本 5.6 起,这个类被标记为 `@Deprecated`,表示它将在未来的某个版本中移除。
如果你现在正在使用的项目依赖了较旧版本的 Spring Security 并遇到了此类警告,可以按照以下步骤处理:
1. **迁移到基于Java的配置**:开始使用 `WebSecurity` 接口及其子接口如 `HttpSecurity` 来编写安全配置。这是一个更现代、更模块化的方式。
```java
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.http.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.and()
.logout()
.logoutSuccessUrl("/");
}
// 如果有自定义过滤器链,可以在 configure(HttpSecurity http) 方法中添加
@Override
public void configure(HttpSecurityInterceptorRegistry registry) {
registry.addInterceptor(new MyCustomInterceptor());
}
}
```
2. **更新依赖**:确保你的 Maven 或 Gradle 依赖是最新的 Spring Security 版本,如 5.7+ 或更高。
3. **消除Deprecation警告**:如果升级过程中报错,可能需要调整代码以适应新版本的变化。Spring Security 文档通常会提供迁移指南。
阅读全文