Spring Filters Filter介绍本文主要用于快速介绍Spring Filters及Filter Chain的相关概念,因为Filter是Spring Security用于实现认证和授权的底层实现方式
- 任何Spring Web应用本质上只是一个servlet
- Security Filter在HTTP请求到达你的Controller之前过滤每一个传入的HTTP请求
- 未认证是401
- 未授权是403
- 注意:上述是通过一个过滤器实现了 提取用户名密码 / 验证用户名密码 / 校验授权 等内容,而Spring Security实际是使用多个过滤器形成过滤器链进行处理
Spring Security 是通过多个Filter形成过滤器链进行的认证和授权
- BasicAuthenticationFilter - 在请求中找一个Basic Auth HTTP头,如果找到,则尝试用该头中的用户名和密码验证用户
- UsernamePasswordAuthenticationFilter - 如果在请求参数或者POST的Request Body中找到用户名/密码,则尝试用这些值对用户进行身份验证
- DefaultLoginPageGeneratingFilter - 默认登录页面生成过滤器。用于生成一个登录页面,如果你没有明确地禁用这个功能,那么就会生成一个登录页面。这就是为什么在启用Spring Security时,会得到一个默认登录页面的原因
- DefaultLogoutPageGeneratingFilter - 如果没有禁用该功能,则会生成一个注销页面
- FilterSecurityInterceptor - 过滤安全拦截器。用于授权逻辑


![[3天速成Spring Security] - 02 Spring过滤器Filter及过滤器链Filter Chain [3天速成Spring Security] - 02 Spring过滤器Filter及过滤器链Filter Chain](http://www.mshxw.com/aiimages/31/297458.png)
