SecurityContextPersistenceFilter 第一个Filter HttpSessionContextIntegrationFilter
第一个用途: 判断用户的Session是否存在一个SecurityContext,不存在就创建
第二个用户: 在所有过滤器执行完后清空 SecurityContextHolder.clearContext();
LogoutFilter:登录注销,
AbstractAuthenticationProcessingFilter: 用户名和密码,成功跳转到默认成功页面,失败跳转到失败页面
DefaultLoginPageGeneratingFilter: 默认生成默认的登录页面,地址是:spring_security_login.html,制作样子
BasicAuthenticationFilter: 主要用于Basic验证,和AbstractAuthenticationProcessingFilter相似,只是验证方式不同
SecurityContextHolderAwareRequestFilter: 用于包装客户请求,
RememberMeAuthenticationFilter: 实现remember me功能 依赖Cookie实现的.为用户生成唯一标识保存在Cookie中
AnonymousAuthenticationFilter:为了保证统一下,保存匿名用户权限,一般关掉
ExceptionTranslationFilter:为了处理FilterSecurityInterceptor中抛出的异常,将请求重定向到对应页面
SessionManagementFilter: 防御会话伪造攻击,用于登录成功后销毁session,重新生成新Session
FilterSecurityInterceptor:用户的权限控制都包含在这个过滤器,功能1:用户尚未登录,抛出未登录认证,功能2:用户登录,但无访问当前资源,会抛出无访问当前资源的异常.功能3:用户登录,拥有访问当前资源的权限,放行
FilterChainProxy:按照顺序调用一组Filter,使这些Filter既能完成验证授权,又能符合SpringIoc的标准,很方便获取其他依赖资源
UserDetailService 接口实现,返回UserDetails---->可从数据返回.也可从其他存储用户数据地方返回
Authentication
权限集合--->用户表,权限表,用户权限表,用户角色关系表,权限角色关系表 构成的rbac模型
CachingUserDetailsService
获取UserDetails时----->1.从缓存中取,---2.缓存中不存在UserDetails时,则使用持有的UserDetails实现了来加载,然后将加载后的UserDetails存在缓存中
继承 AbstractAccessDecisionManager,不是实现