过滤器
官网中已经将spring security的所有过滤器全部列出了,我整理成一下表格
过滤器 | 作用 | 默认是否加载 |
---|---|---|
ChannelProcessingFilter | 过滤请求http、https | 否 |
WebAsyncManagerIntegrationFilter | 将WebAsyncManager与spring security上下文进行 集成 | 是 |
SecurityContextPersistenceFilter | 在处理请求前,将安全信息加载到Security ContextHolder中 | 是 |
HeaderWriterFilter | 处理头信息加入响应中 | 是 |
CorsFilter | 处理跨域问题 | 是 |
CsrfFilter | 处理csrf攻击 | 是 |
LogoutFilter | 处理注销登录 | 是 |
OAuth2AuthorizationRequestRedirectFilter | 处理oauth2认证重定向 | 否 |
Saml2WebSsoAuthenticationRequestFilter | 处理saml认证 | 否 |
X509AuthenticationFilter | 处理509认证 | 否 |
AbstractPreAuthenticatedProcessingFilter | 处理预认证 | 否 |
CasAuthenticationFilter | 处理cas单点登录 | 否 |
OAuth2LoginAuthenticationFilter | 处理oauth2认证 | 否 |
OAuth2AuthorizationRequestRedirectFilter | 处理oauth2认证重定向 | 否 |
Saml2WebSsoAuthenticationFilter | 处理saml认证 | 否 |
UsernamePasswordAuthenticationFilter | 处理表单登录 | 是 |
OpenIDAuthenticationFilter | 处理OpenID认证 | 否 |
DefaultLoginPageGeneratingFilter | 配置默认登录页面 | 是 |
DefaultLogoutPageGeneratingFilter | 配置默认登出页面 | 是 |
ConcurrentSessionFilter | 处理session有效期 | 否 |
DigestAuthenticationFilter | 处理http摘要认证 | 否 |
BearerTokenAuthenticationFilter | 处理oauth2认证的AccessToken | 否 |
BasicAuthenticationFilter | 处理HttpBasic登录 | 是 |
RequestCacheAwareFilter | 处理请求缓存 | 是 |
SecurityContextHolderAwareRequestFilter | 包装原是请求 | 是 |
JaasApiIntegrationFilter | 处理jass认证 | 否 |
RememberMeAuthenticationFilter | 处理rememberme登录 | 否 |
AnonymousAuthenticationFilter | 处理匿名认证 | 是 |
OAuth2AuthorizationCodeGrantFilter | 处理oauth2认证中的授权码 | 否 |
SessionManagementFilter | 处理session并发问题 | 是 |
ExceptionTranslationFilter | 处理认证授权中的异常 | 是 |
FilterSecurityInterceptor | 处理授权相关 | 是 |
SwitchUserFilter | 处理账户切换问题 | 否 |
可以看出spring security提供了30多个过滤器,默认情况下springboot对spring security进行自动化配置时,会创建一个名为SpringSecurityFilterChain的过滤器,并注入到spring容器中,这个过滤器将负责所有安全管理,包括用户认证、授权、重定向到登陆页等。
具体加载顺序可以debug源码