SpringSecurity 默认配置
大约 1 分钟
SpringSecurity 默认配置
1、文档参考
2、默认配置
Spring Security 是如何知道我们要要求所有的用户都要进行身份验证的?Spring Security 如何知道我们要支持基于表单的认证?
实际上,有一个配置类(称为 SecurityFilterChain
)在幕后被调用。它被配置为以下的默认实现。
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.anyRequest().authenticated()
)
.formLogin(Customizer.withDefaults())
.httpBasic(Customizer.withDefaults());
return http.build();
}
默认配置(如上例所示):
- 确保对我们的应用程序的任何请求都需要用户进行认证
- 让用户通过基于表单的登录进行认证
- 让用户用HTTP基本认证(HTTP Basic authentication)进行认证
3、配置过滤器分析
默认情况,有15个过滤器

注释表单授权方式
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.anyRequest().authenticated()
)
// .formLogin(Customizer.withDefaults())
.httpBasic(Customizer.withDefaults())
;
return http.build();
}
启动执行过滤器如下:

相比少了
- UsernamePasswordAuthenticationFilter
- DefaultLoginPageGeneratingFilter
- DefaultLogoutPageGeneratingFilter
注释使用基本授权方式

相比默认少了
- BasicAuthenticationFilter