Spring Security常见过滤器

Spring Security常见过滤器

这里主要介绍 SpringSecurity 常见的过滤器的作用,方便以后查阅!!!

一、简介

Spring Security是一个功能强大且高度可定制的,主要负责为Java程序提供声明式的 身份验证和访问控制 的安全框架。其前身是Acegi Security,后来被收纳为Spring的一个子项目,并更名为了Spring Security。

Spring Security的底层主要是基于 Spring AOP 和 Servlet 过滤器 来实现安全控制,它提供了全面的安全解决方案,同时授权粒度可以在 Web请求级和方法调用级 来处理身份确认和授权。

二、常见过滤器

1、WebAsyncManagerIntegrationFilter

org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter
其主要用于集成 SecurityContext到 Spring异步执行机制中的 WebAsyncManager。

2、SecurityContextPersistenceFilter

org.springframework.security.web.context.SecurityContextPersistenceFilter
其主要是使用 SecurityContextRepository在 session中保存或更新一个SecurityContext,并将 SecurityContext给以后的过滤器使用,来为后续 filter建立所需的上下文。
SecurityContext中存储了当前用户的认证以及权限信息。

3、HeaderWriterFilter

org.springframework.security.web.header.HeaderWriterFilter
其主要是向请求的 Header中添加相应的信息,可在 http标签内部使用 security:headers来控制。

4、CsrfFilter

org.springframework.security.web.csrf.CsrfFilter
csrf又称跨域请求伪造,SpringSecurity会对所有 post请求验证是否包含系统生成的 csrf的 token信息,
如果不包含,则报错。起到防止csrf攻击的效果。

5、LogoutFilter

org.springframework.security.web.authentication.logout.LogoutFilter
其主要用于实现用户退出,清除认证信息。默认匹配 URL为 /logout的请求。

6、UsernamePasswordAuthenticationFilter

org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter
其主要用于认证操作,默认匹配URL为 /login且必须为POST请求。

7、DefaultLoginPageGeneratingFilter

org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter
如果没有在配置文件中指定认证页面,则由该过滤器生成一个默认认证页面。

8、DefaultLogoutPageGeneratingFilter

org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter
由此过滤器可以生产一个默认的退出登录页面

9、BasicAuthenticationFilter

org.springframework.security.web.authentication.www.BasicAuthenticationFilter
此过滤器会自动解析 HTTP请求中头部名字为 Authentication,且以 Basic开头的头信息。

10、RequestCacheAwareFilter

org.springframework.security.web.savedrequest.RequestCacheAwareFilter
通过HttpSessionRequestCache内部维护了一个 RequestCache,用于缓存 HttpServletRequest。

11、SecurityContextHolderAwareRequestFilter

org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter
针对 ServletRequest进行了一次包装,使得 request具有更加丰富的 API。

12、AnonymousAuthenticationFilter

org.springframework.security.web.authentication.AnonymousAuthenticationFilter
当 SecurityContextHolder中认证信息为空,则会创建一个匿名用户存入到 SecurityContextHolder中。
Spring Security为了兼容未登录的访问,也走了一套认证流程,只不过是一个匿名的身份。

13、SessionManagementFilter

org.springframework.security.web.session.SessionManagementFilter
其主要用于限制同一用户开启多个会话的数量。

14、ExceptionTranslationFilter

org.springframework.security.web.access.ExceptionTranslationFilter
异常转换过滤器位于整个 springSecurityFilterChain的后方,用来转换整个链路中出现的异常。ExceptionTranslationFilter过滤器会拦截处理 AccessDeniedException和 AuthenticationException并添加到HTTP响应中。

15、FilterSecurityInterceptor

org.springframework.security.web.access.intercept.FilterSecurityInterceptor
获取所配置资源访问的授权信息,根据 SecurityContextHolder中存储的用户信息来决定其是否有权
限。

关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值