活动地址:CSDN21天学习挑战赛 相关文章:
- OAuth2的定义和运行流程
- Spring Security OAuth实现Gitee快捷登录
- Spring Security OAuth实现GitHub快捷登录
- Spring Security的过滤器链机制
- Spring Security OAuth Client配置加载源码分析
- Spring Security内置过滤器详解
前言
在前面的示例中,不知道你发现没有,打印出来的过滤器有重复的。
这是为什么?
带着问题,我们来分析一下源码。
源码分析
在以前的文章中,我们已经知道了过滤器会在AbstractConfiguredSecurityBuilder中的configure()中加载
我们进去打个断点看下,重启进入断点
看configurers有5个值,我们暂且不管这5个Configurer是干什么用的,后面再说,看左边的堆栈比较容易理解,认证管理器,原来是HttpSecurity在加载的时候,也会去调用doBuild(),这5个Configurer进行逐个调式后也并没有发现创建过滤器的地方,因此我们不再继续深入。
断点继续往下执行,终于看到了我们熟悉的几个过滤器
这么多过滤器你可以一个个去调式,但这也太费时间了,直接看OAuth2AuthorizationRequestRedirectFilter吧,创建一个对象总的用构造器吧,把这几个构造器全打上断点。
去掉前面的端点,直接进入了OAuth2AuthorizationRequestRedirectFilter的断点,这里就让我发现了秘密
原来在加载OAuth2LoginConfigurer的时候,也创建了一个OAuth2AuthorizationRequestRedirectFilter对象