Spring Security 的 WebSecurityConfigurerAdapter 类的替代
时间: 2024-01-11 19:06:57 浏览: 173
Spring Security 的 WebSecurityConfigurerAdapter 类是用于配置 Spring Security 的基本安全性的重要类。它提供了很多方法来配置安全性,例如配置认证方式、授权规则、跨域资源共享等。如果需要替代 WebSecurityConfigurerAdapter 类,可以使用以下两种方式:
1. 使用注解
Spring Security 提供了一些注解,用于配置安全性。您可以在 Spring Security 配置类上使用这些注解,以替代 WebSecurityConfigurerAdapter 类。例如,您可以使用 @EnableWebSecurity 注解来启用 Spring Security,并使用 @Configuration 注解来标记配置类。
2. 实现接口
您还可以实现 Spring Security 提供的一些接口来配置安全性。例如,您可以实现 AuthenticationManagerBuilder 接口来配置认证方式,实现 HttpSecurity 接口来配置授权规则。这种方式可以在不继承 WebSecurityConfigurerAdapter 类的情况下实现安全性配置。
总的来说,使用注解和实现接口都可以替代 WebSecurityConfigurerAdapter 类,具体取决于您的需求和偏好。
相关问题
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter的替代
在Spring Security 5.0之后,建议使用实现了接口SecurityConfigurer的配置类来配置WebSecurity。这些配置类需要注入到WebSecurityConfigurerAdapter中。
例如,可以创建一个类实现SecurityConfigurer接口,如下所示:
```
@Configuration
@EnableWebSecurity
public class SecurityConfig implements SecurityConfigurer<DefaultSecurityFilterChain, HttpSecurity> {
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
}
```
然后,在WebSecurityConfigurerAdapter中注入该配置类,如下所示:
```
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private SecurityConfig securityConfig;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.apply(securityConfig);
}
}
```
通过以上方式,可以实现类似WebSecurityConfigurerAdapter的功能。
spring security 2.7.9 版本 websecurityconfigureradapter被注销
Spring Security 2.7.9版本中的WebSecurityConfigurerAdapter被注销了。这意味着在该版本中不再建议使用这个类来配置Spring Security。相反,建议使用更现代化的方式来配置安全性。
在较新的Spring Security版本中,我们可以使用更灵活的方式来配置安全性,例如使用Java配置或注解配置来替代WebSecurityConfigurerAdapter。这种方式可以更好地适应不同的应用程序需求,并提供更强大的安全功能。
使用Java配置方式的示例代码如下:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasRole("USER")
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.logout();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("admin").password("{noop}admin").roles("ADMIN")
.and()
.withUser("user").password("{noop}user").roles("USER");
}
}
在上面的示例代码中,我们使用Java配置的方式来定义HTTP请求的授权规则,并通过方法configure(AuthenticationManagerBuilder)来定义用户的认证规则。这种方式更直观且易于扩展。
总结来说,Spring Security 2.7.9版本中的WebSecurityConfigurerAdapter类被注销了,我们应该使用更现代化的方式来配置安全性,如Java配置或注解配置。这将提供更灵活和强大的安全功能。
阅读全文