这里主要介绍 SpringSecurity 常见的过滤器的作用,方便以后查阅!!!
Spring Security是一个功能强大且高度可定制的,主要负责为Java程序提供声明式的 身份验证和访问控制 的安全框架。其前身是Acegi Security,后来被收纳为Spring的一个子项目,并更名为了Spring Security。
Spring Security的底层主要是基于 Spring AOP 和 Servlet 过滤器 来实现安全控制,它提供了全面的安全解决方案,同时授权粒度可以在 Web请求级和方法调用级 来处理身份确认和授权。
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter
其主要用于集成 SecurityContext到 Spring异步执行机制中的 WebAsyncManager。
org.springframework.security.web.context.SecurityContextPersistenceFilter
其主要是使用 SecurityContextRepository在 session中保存或更新一个SecurityContext,并将 SecurityContext给以后的过滤器使用,来为后续 filter建立所需的上下文。
SecurityContext中存储了当前用户的认证以及权限信息。
org.springframework.security.web.header.HeaderWriterFilter
其主要是向请求的 Header中添加相应的信息,可在 http标签内部使用 security:headers来控制。
org.springframework.security.web.csrf.CsrfFilter
csrf又称跨域请求伪造,SpringSecurity会对所有 post请求验证是否包含系统生成的 csrf的 token信息,
如果不包含,则报错。起到防止csrf攻击的效果。
org.springframework.security.web.authentication.logout.LogoutFilter
其主要用于实现用户退出,清除认证信息。默认匹配 URL为 /logout的请求。
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter
其主要用于认证操作,默认匹配URL为 /login且必须为POST请求。
org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter
如果没有在配置文件中指定认证页面,则由该过滤器生成一个默认认证页面。
org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter
由此过滤器可以生产一个默认的退出登录页面
org.springframework.security.web.authentication.www.BasicAuthenticationFilter
此过滤器会自动解析 HTTP请求中头部名字为 Authentication,且以 Basic开头的头信息。
org.springframework.security.web.savedrequest.RequestCacheAwareFilter
通过HttpSessionRequestCache内部维护了一个 RequestCache,用于缓存 HttpServletRequest。
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter
针对 ServletRequest进行了一次包装,使得 request具有更加丰富的 API。
org.springframework.security.web.authentication.AnonymousAuthenticationFilter
当 SecurityContextHolder中认证信息为空,则会创建一个匿名用户存入到 SecurityContextHolder中。
Spring Security为了兼容未登录的访问,也走了一套认证流程,只不过是一个匿名的身份。
org.springframework.security.web.session.SessionManagementFilter
其主要用于限制同一用户开启多个会话的数量。
org.springframework.security.web.access.ExceptionTranslationFilter
异常转换过滤器位于整个 springSecurityFilterChain的后方,用来转换整个链路中出现的异常。ExceptionTranslationFilter过滤器会拦截处理 AccessDeniedException和 AuthenticationException并添加到HTTP响应中。
org.springframework.security.web.access.intercept.FilterSecurityInterceptor
获取所配置资源访问的授权信息,根据 SecurityContextHolder中存储的用户信息来决定其是否有权
限。
关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。