SpringSecurity过滤器链加载原理
SpringSecurity过滤器链加载原理
通过前面十五个过滤器功能的介绍,对于SpringSecurity简单入门中的疑惑是不是在心中已经有了答案了呀? 但新的问题来了!我们并没有在web.xml中配置这些过滤器啊?它们都是怎么被加载出来的?
DelegatingFilterProxy
我们在web.xml中配置了一个名称为springSecurityFilterChain的过滤器DelegatingFilterProxy,接下我直接对 DelegatingFilterProxy源码里重要代码进行说明,其中删减掉了一些不重要的代码,大家注意我写的注释就行了!
第二步debug结果如下
由此可知,DelegatingFilterProxy通过springSecurityFilterChain这个名称,得到了一个FilterChainProxy过滤器,最终在第三步执行了这个过滤器。
FilterChainProxy
注意代码注释!注意代码注释!注意代码注释!
第二步debug结果如下图所示,惊不惊喜?十五个过滤器都在这里了!
再看第三步,怀疑这么久!原来这些过滤器还真是都被封装进SecurityFilterChain中了。
SecurityFilterChain
最后看SecurityFilterChain,这是个接口,实现类也只有一个,这才是web.xml中配置的过滤器链对象!
总结
通过此章节,我们对SpringSecurity工作原理有了一定的认识。但理论千万条,功能第一条,探寻底层,是 为了更好的使用框架。
那么,言归正传!到底如何使用自己的页面来实现SpringSecurity的认证操作呢?要完成此功能,首先要有一套 自己的页面!
SpringSecurity过滤器链加载原理相关推荐
- SpringBoot 手写过滤器amp;加载第三方过滤器
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_36367789/article/details/81665638 如何手写一个过滤器呢.假设我 ...
- SpringSecurity过滤器链汇总
SpringSecurity过滤器链 认证过程 转载于:https://www.cnblogs.com/chenny3/p/10226123.html
- 内嵌WEB服务器加载原理
内嵌WEB服务器加载原理 理解里面的tomcat是如何启动的 Startup.bat Server.start() 1,概述 我们在使用springboot项目的时候并没有使用外部的tomcat,那么 ...
- datax底层原理_Datax 插件加载原理
Datax 插件加载原理 插件类型 Datax有好几种类型的插件,每个插件都有不同的作用. reader, 读插件.Reader就是属于这种类型的 writer, 写插件.Writer就是属于这种类型 ...
- 浅析Android字体加载原理
浅析Android字体加载原理 前言 之前在处理系统字体问题的时候,可借鉴的资料很少,遇到了很多坑,不得不了解Android字体加载原理,现抽空写一篇总结,来加深自己对这块的理解. 内容 概述 And ...
- Springboot 拦截器链 - 加载拦截器
Springboot 拦截器链 - 加载拦截器 1.创建拦截器 // 创建拦截器需要实现 HandlerInterceptor 接口 @Slf4j public class HandleInterce ...
- Unity导表工具Luban插件的数据加载原理与优化
文章目录 1. 配置Luban并测试 2. Luban 数据加载原理 3. 根据工程进行懒加载优化 3.1 增加公共接口与接口实现方法 3.2 外部提供获取数据的方法 3.3 对Luban中的导表模板 ...
- 【Docker镜像文件加载原理生产中重新制作并提交镜像文件案例演示】
一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...
- 老调重弹:JDBC系列之驱动加载原理全面解析)
前言 最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来,好好总结一番,作为自己的笔记,也是给读 ...
最新文章
- 基于RFID的防伪系统设计
- OpenStack 关闭安全组
- mysqldump导入导出mysql数据库
- 前端学习(2887):如何短时间内实现v-for proxy代理
- 将方孔分段的lisp_AutoLisp编写工程地质剖面图小工具
- 毕设题目:Matlab瑕疵检测
- java hssfworkbook 乱码_java各种乱码汇总
- AppData、Roaming、Locallow等文件夹中常见大文件夹有哪些、有什么用以及如何清理方法参考资料
- FIN断开-TCP segment of a reassembled PDU-原因分析
- DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided
- hadoop tyarn冲突_hadoop集群启动yarn时出现的问题和解决方法
- 使用proteus仿真验证基尔霍夫定律
- HTML标签与CSS样式
- 抓包工具有哪些你知道吗?今天给你们介绍四款最受欢迎的抓包神器
- python操作sqlite数据库
- 构建maven时No archetypes currently available的解决方法
- 【knex】 knex.js中 orderBy多个字段排序
- mybatis的JavaType和ofType区别
- 俄罗斯邮箱Mail.ru的登录及获取邮箱内容(c#实现)
- 如何升级或更换PC的无线卡