环境
SpringBoot版本:2.7.16
SpringSecurity版本:5.7.11
pig4cloud版本:3.7.1-JDK8
流程图
概述
登录哀求过来之后还是先在DelegatingFilterProxy中跟踪,然后执行到FilterChainProxy;会通过哀求路径举行匹配,找到对应能支持的SecurityFilterChain;然后获取到此SecurityFilterChain的所有Filter;然后依次逐个执行;在这个链上统共有19个Filter;重要有两个起认证作用,别的因为各种限定匹配条件全部放过;其余各Filter具体作用参照:pig4cloud哀求分发流程和pig4cloud的Filter;首先会通过OAuth2ClientAuthenticationFilter 调用 RegisteredClientRepository (数据库存储) 来判断传入的客户端是否准确;
然后OAuth2TokenEndpointFilter通过OAuth2ClientAuthenticationFilter的上文对象举行认证对象的组装,然后通过一系列认证操纵生成认证对象举行返回;
一、FilterChainProxy
1. 通过哀求地点举行匹配之后,找到对应的FilterChainProxy,可以看到这个SecurityFilterChain有19个Filter;
2. 然后通过虚拟的FilterChain举行对Filters逐个执行doFilter方法;可以看到,第一个就是DisableEncodeUrlFilter;
一、OAuth2ClientAuthenticationFilter 举行客户端认证
1. 执行到OAuth2ClientAuthenticationFilter 这个Filter的时候跟进doFilter方法;
可以看到会先进入其父类OncePerRequestFilter执行公共操纵;
2. 跟进其子类的实现doFilterIn
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |