如何迁移从旧版 WebSecurityConfigurerAdapter 到 Java Config
时间: 2024-08-20 13:00:36 浏览: 54
WebSecurityConfigurerAdapter 是Spring Security 3.x到4.x版本中的配置方式,而Java Config则是从4.x开始引入的一种更为现代和简洁的配置风格。如果你需要将项目从旧版的`WebSecurityConfigurerAdapter`迁移到Java Config,可以按照以下步骤进行:
1. **移除WebSecurityConfigurerAdapter**:首先,在你的`src/main/resources`目录下的`spring-security.xml`或其他配置文件中,删除所有`WebSecurityConfigurerAdapter`相关的配置。
2. **创建Java Config类**:在你的`src/main/java`目录下,创建一个新的或现有的`SecurityConfig.java`(或者其他合适的命名)类,作为Spring Security的配置入口点。使用`@EnableWebSecurity`注解开启Web安全功能,并通过`configure(HttpSecurity http)`方法进行配置。
```java
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 这里将WebSecurityConfigurerAdapter的配置移动到configure方法中
@Override
protected void configure(HttpSecurity http) throws Exception {
// 替代原来的WebSecurityConfigurerAdapter配置代码,如HTTP基本认证、OAuth2、JWT等
http.authorizeRequests()
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.failureUrl("/login?error");
}
}
```
3. **依赖注入其他配置**:如果之前在`WebSecurityConfigurerAdapter`中有依赖注入的地方,记得在Java Config中添加相应的@Configuration和@Bean注解,或者直接在`SecurityConfig`类中创建bean实例。
4. **测试应用**:清理项目的构建过程,确保你的应用能够正常启动并验证新配置是否生效。
阅读全文
相关推荐


















