springSecurity6配置SecurityFilterChain
时间: 2023-07-04 16:13:27 浏览: 162
在 Spring Security 6 中,可以通过以下方式配置 SecurityFilterChain:
1. 创建一个配置类,用 @EnableWebSecurity 注解标注该类,并实现 WebSecurityConfigurer 接口。
2. 在配置类中,重写 configure(HttpSecurity http) 方法,通过 HttpSecurity 对象配置安全策略。
3. 在 configure(HttpSecurity http) 方法中,可以使用以下方法配置安全策略:
- authorizeRequests():指定哪些请求需要被保护,哪些请求不需要被保护。
- formLogin():配置表单登录相关的设置。
- csrf():配置 CSRF 相关的设置。
4. 还可以通过其他方法配置需要的安全策略,例如:添加自定义的认证提供者、添加自定义的过滤器等。
以下是一个简单的示例:
```
@EnableWebSecurity
public class SecurityConfig implements WebSecurityConfigurer<HttpSecurity> {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("USER", "ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.permitAll()
.and()
.csrf().disable();
}
}
```
在上面的示例中,配置了三个安全策略:
1. /admin/** 路径下的请求需要 ADMIN 角色才能访问。
2. /user/** 路径下的请求需要 USER 或 ADMIN 角色才能访问。
3. 其他请求需要认证才能访问。
同时,配置了表单登录相关的设置,禁用了 CSRF 防护。
阅读全文