springSecurity提供的过滤器
- SecurityContextPersistenceFilter 两个主要职责:请求来临时,创建
SecurityContext
安全上下文信息,请求结束时清空SecurityContextHolder
。 - CsrfFilter 在spring4这个版本中被默认开启的一个过滤器,用于防止csrf攻击
- LogoutFilter 处理退出登录的过滤器
- UsernamePasswordAuthenticationFilter 表单提交了username和password,被封装成token进行一系列的认证,便是主要通过这个过滤器完成的,在表单认证的方法中,这是最最关键的过滤器。
- AnonymousAuthenticationFilter 匿名身份过滤器,这个过滤器个人认为很重要,需要将它与UsernamePasswordAuthenticationFilter 放在一起比较理解,spring security为了兼容未登录的访问,也走了一套认证流程,只不过是一个匿名的身份。
- SessionManagementFilter 和session相关的过滤器,内部维护了一个SessionAuthenticationStrategy,两者组合使用,常用来防止
session-fixation protection attack
,以及限制同一用户开启多个会话的数量 - ExceptionTranslationFilter 异常翻译过滤器,这个过滤器本身不处理异常,而是将认证过程中出现的异常交给内部维护的一些类去处理
- FilterSecurityInterceptor 这个过滤器决定了访问特定路径应该具备的权限,访问的用户的角色,权限是什么?访问的路径需要什么样的角色和权限?这些判断和处理都是由该类进行的