Spring Security 提供了 30 多个过滤器。默认情况下Spring Boot 在对 SpringSecurity 进入自动化配置时,会创建一个名为 SpringSecurityFilerChain 的过滤器,并注入到Spring容器中,这个过滤器将负责所有的安全管理,包括用户认证、授权、重定向到登录页面等
一、过滤器整理
过滤器 | 过滤器作用 | 默认是否加载 |
ChannelProcessingFilter | 过滤请求协议 HTTP、HTTPS | NO
|
WebAsyncManagerIntegrationFilter | 将WebAsyncManger 与SpringSecurity 上下文进行集成 | Yes |
SecurityContextPersistenceFilter | 在处理请求之前,将安全信息加载到 SecurityContextHolder 中 | Yes |
HeaderWriterFilter | 处理头信息加入响应中 | Yes |
CorsFilter | 处理跨域问题 | NO |
CsrfFilter | 处理CSRF攻击 | Yes |
LogoutFilter | 处理注销登录 | YES |
OAuth2AuthorizationRequestRedirectFilter | 处理OAuth2认证重定向 | NO |
Saml2WebSsoAuthenticationRequestFilter | 处理SAML认证 | NO |
X509AuthenticationFilter | 处理X509认证 | No‘’ |
AbstractPreAuthenticatedProcessingFilter | 处理OAuth2认证 | No‘’ |
Saml2WebSsoAuthenticationFilter | 处理SAML认证 | No‘’ |
UsernamePasswordAuthenticationFilter | 处理表单登录 | Yes |
OpenIDAuthenticationFilter | 处理OpenID 认证 | No |
DefaultLoginPageGeneratingFilter | 配置默认登录页面 | YES |
DefaultLogoutPageGeneratingFilter | 配置默认注销页面 | YES |
ConcurrentSessionFilter | 处理 Session 有效期 | No |
DigestAuthenticationFilter | 处理HTTP摘要认证 | No |
BearerTokenAuthenticationFilter | 处理OAuth2认证的Access Token | NO |
BasicAuthenticationFilter | 处理HttpBasic登录 | YES |
RequestCacheAwareFilter | 处理请求缓存 | YES |
SecurityContextHolder<br />AwareRequestFilter | 包装原始请求 | YES |
JaasApilntegrationFilter | 处理JAAS认证 | No |
RememberMeAuthenticationFilter | 处理RememberMe登录 | NO |
AnonymousAuthenticationFilter | 配置匿名认证 | YES |
OAuth2AuthorizationCodeGrantFilter | 处理OAuth2认证中授权码 | No |
SessionManagementFilter | 处理session 并发问题 | Yes |
ExceptionTranslationFilter | 处理认证/授权中的异常 | Yes |
FilterSecurityInterceptor | 处理授权相关 | Yes |
SwitchUserFilter | 处理账户切换 | No |