SpringSecurity常用过滤器介绍

过滤器是一种典型的AOP思想

SecurityContextPersistenceFilter

首当其冲的一个过滤器,作用之重要,自不必多言。

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

WebAsyncManagerIntegrationFilter

此过滤器用于集成SecurityContext到Spring异步执行机制中的WebAsyncManager

HeaderWriterFilter

向请求的Header中添加相应的信息,可在http标签内部使用security:headers来控制(仅限于JSP页面)

CsrfFilter

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

LogoutFilter

匹配URL为/logout的请求,实现用户退出,清除认证信息。

UsernamePasswordAuthenticationFilter

认证操作全靠这个过滤器,默认匹配URL为/login且必须为POST请求。

DefaultLoginPageGeneratingFilter

如果没有在配置文件中指定认证页面,则由该过滤器生成一个默认认证页面。

DefaultLogoutPageGeneratingFilter

由此过滤器可以生产一个默认的退出登录页面

BasicAuthenticationFilter

此过滤器会自动解析HTTP请求中头部名字为Authentication,且以Basic开头的头信息。

RequestCacheAwareFilter

通过HttpSessionRequestCache内部维护了一个RequestCache,用于缓存HttpServletRequest

SecurityContextHolderAwareRequestFilter

针对ServletRequest进行了一次包装,使得request具有更加丰富的API

AnonymousAuthenticationFilter

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

当用户以游客身份登录的时候,也就是可以通过设置某些接口可以匿名访问

SessionManagementFilter

SecurityContextRepository限制同一用户开启多个会话的数量

ExceptionTranslationFilter

异常转换过滤器位于整个springSecurityFilterChain的后方,用来转换整个链路中出现的异常

FilterSecurityInterceptor

获取所配置资源访问的授权信息,根据SecurityContextHolder中存储的用户信息来决定其是否有权 限

该过滤器限制哪些资源可以访问,哪些不能够访问

SpringSecurity常用过滤器介绍相关推荐

  1. Hbase API中常用类介绍和使用

    网上Hbase的介绍有很多,案例也不少.自己写了个Demo,进行一些简单的总结. HBase 常用类介绍. JAVA API 和 HBase数据库模型之间的关系 JAVA 类 Hbase 数据模型 H ...

  2. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍

    C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无 ...

  3. 【第九篇】SpringSecurity核心过滤器-SecurityContextPersistenceFilter

    SpringSecurity核心过滤器-SecurityContextPersistenceFilter 一.SpringSecurity中的核心组件   在SpringSecurity中的jar分为 ...

  4. 大白菜软件常用功能介绍

    大白菜软件常用功能介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.刻录光盘介绍 1.选择你需要的刻录的光盘 2.点击刻录光盘 3.确认之后点击刻录 4.等待刻录完成 转载于 ...

  5. webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server

    一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...

  6. linux系统防火墙相关问题及常用命令介绍

    今天介绍关于linux系统防火墙:centos5.centos6.redhat6系统自带的是iptables防火墙,centos7.redhat7自带firewall防火墙,ubuntu系统使用的是u ...

  7. TF:tensorflow框架中常用函数介绍—tf.Variable()和tf.get_variable()用法及其区别

    TF:tensorflow框架中常用函数介绍-tf.Variable()和tf.get_variable()用法及其区别 目录 tensorflow框架 tensorflow.Variable()函数 ...

  8. openresty开发系列13--lua基础语法2常用数据类型介绍

    openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔) 布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...

  9. Linux系统IO分析工具之iotop常用参数介绍

      Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...

最新文章

  1. 前端面经笔记 2021.8.28
  2. 直博清华的小姐姐!本科就发表了SCI,享受朝九晚五的学习生活,做自己的小太阳!...
  3. /scripts/checkkconfigsymbols.sh
  4. crontab命令使用记录(精,反弹shell)
  5. Tomcat启动项目没问题,网页一片空白
  6. 4015-基于递归的折半查找(C++)
  7. 【hadoop】Yarn【label-based scheduling】实战总结
  8. 品牌直播启动的三个关键点
  9. asp.net 页面数据导入word模板
  10. 支持Delphi2009/2010的DES加密单元
  11. 1.6. 6.x Mini 安装后需要做的一些事
  12. RK3288 查看时钟树
  13. php 解析今日头条视频,今日头条的视频地址解析方法
  14. 一阶线性微分方程的初等积分法
  15. chrome设置socket5代理
  16. 微信小程序开发入门手册
  17. Maven导入依赖时显示Duplicated tag: ‘dependencies‘ (position: START_TAG seen ...</properties>\r\n\r\n <depen
  18. dhcp应该开启还是关闭(dhcp应该开启还是关闭)
  19. 穿透多层代理获得真实ip
  20. ddr5和ddr6的显卡插口区别 ddr5和ddr6差距有多大

热门文章

  1. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
  2. 畅谈程序人生暨孙鑫老师与读者交流会
  3. ESFramework介绍之(31)―― 消息分类及对应的处理器
  4. [Python设计模式] 第1章 计算器——简单工厂模式
  5. 知道这些面试技巧,让你的测试求职少走弯路
  6. 莫比乌斯反演定理证明
  7. Swift里计数相关的小细节
  8. 在Linux服务器上配置phpMyAdmin--允许空密码
  9. Eclipse用户使用IntelliJ IDEA的常见问答
  10. 2016个人阅读计划