使用@EnableWebSecurity 注解还可以继承WebSecurityConfigurerAdapter类么,
时间: 2023-10-12 09:57:55 浏览: 173
是的,可以同时使用 @EnableWebSecurity 注解和继承 WebSecurityConfigurerAdapter 类来配置 Spring Security。这两种方式并不冲突,实际上,@EnableWebSecurity 注解本身就是为了引入 WebSecurityConfigurerAdapter 类的配置。
@EnableWebSecurity 注解用于启用 Spring Security 的 Web 安全功能,并自动应用名为 WebSecurityConfiguration 的配置类。而 WebSecurityConfiguration 类继承了 WebSecurityConfigurerAdapter 类,并提供了一些默认的安全配置。
如果你需要进一步自定义配置,可以继承 WebSecurityConfigurerAdapter 类,并重写其中的方法来覆盖或添加额外的配置。通过继承 WebSecurityConfigurerAdapter 类,你可以更灵活地定制 Spring Security 的行为,例如设置登录页面、自定义用户认证逻辑、配置访问规则等。
示例:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 自定义HTTP安全配置
http
.authorizeRequests()
.antMatchers("/public").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
}
```
在上面的例子中,我们使用 @EnableWebSecurity 注解启用了 Spring Security 的 Web 安全功能,并继承了 WebSecurityConfigurerAdapter 类来自定义配置。在 configure(HttpSecurity http) 方法中,我们定义了 HTTP 请求的安全规则,例如允许访问 "/public" 路径而不需要身份验证,其他路径需要身份验证等。
阅读全文