springsecurity 6.3版本没有 WebSecurityConfigurerAdapter吗?
时间: 2024-08-13 15:10:18 浏览: 69
在Spring Security 6.3版本中,`WebSecurityConfigurerAdapter`这个类确实已经被移除或不再作为推荐的最佳实践。从Spring Security 5.x开始,官方倾向于使用基于方法(Method-Based Configuration)的方式来配置安全,这种方式更加灵活和模块化,而不是传统的基于XML的配置。
`WebSecurityConfigurerAdapter`是一个遗留的类,主要用于较早版本的Spring Security,它将配置代码封装在一个单继承自`WebSecurityConfigurerAdapter`的类中。然而,在Spring Security 6.3及以后,推荐使用Java Config(即@Configuration classes)和`@Configuration`注解,配合`@Order`, `@Bean`以及`Secured`注解等,进行更为现代和易于维护的网络安全设置。
如果你想在Spring Security 6.3以上版本中继续使用类似的功能,你可以创建一个实现了`WebFluxConfigurer`接口的类,或者直接在`@Configuration`类中配置方法(如`http`, `authorizeRequests`, 和 `formLogin` 等)。如果你有进一步的问题,例如如何迁移到新的配置模式,或者具体的代码示例,可以告诉我,我会给出详细的指导。
相关问题
Spring Security 6.3.3版本没有WebSecurityConfigurerAdapter ,你确定这个类在这个版本还存在?如果不存在我该如何接入Spring Security
对不起,我的信息有误。Spring Security 5.x引入了`WebSecurityConfiguration`作为替代`WebSecurityConfigurerAdapter`的方式,而到了6.x及更高版本,它进一步简化了配置流程。实际上,`WebSecurityConfigurerAdapter`在Spring Security 6.x中仍然可用,但它不是推荐的最佳实践。
如果你想使用`WebSecurityConfigurerAdapter`,尽管在6.3.3版本中官方已经不再强调这种方式,但在某些场景下,比如迁移现有项目,你可以在`SecurityConfig`类中继续使用。例如:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
// 这里依旧可以按照以往的方式配置权限、登录等
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
}
```
但是,为了跟上Spring Security的最新趋势,建议你学习如何使用`WebSecurityConfigurer`接口或`@Order annotated classes`进行配置,因为它们更为简洁,并且更容易维护。
如果需要集成Spring Security,可以从以下几个方面入手:
1. 添加依赖
2. 配置用户服务
3. 实现`AuthenticationManager`
4. 定义授权规则
如果你想要详细了解如何从头开始搭建Spring Security,可以参考Spring官方文档:https://docs.spring.io/spring-security/site/docs/current/reference/html5/
spring-boot-starter-security中为什么没有WebSecurityConfigurerAdapter类?
spring-boot-starter-security中没有WebSecurityConfigurerAdapter类是因为这个类位于spring-security-config模块中。spring-boot-starter-security只包含了spring-security-core和spring-security-web两个模块,用于实现基本的安全功能和Web安全功能。如果需要使用更高级的安全配置,可以添加spring-security-config模块。