本文主要是介绍Security OAuth2 SSO单点登录源码剖析(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 单点登录简介
- SSO客户端
- @EnableOAuth2Sso注解
- @EnableOAuth2Client注解
- OAuth2SsoDefaultConfiguration
- OAuth2SsoCustomConfiguration
- ResourceServerTokenServicesConfiguration
- 过滤器
- OAuth2ClientContextFilter
- OAuth2ClientAuthenticationProcessingFilter
- SSO服务端
Security OAuth2 SSO单点登录源码剖析 - 自己总结
单点登录简介
SSO客户端
@EnableOAuth2Sso注解
@EnableOAuth2Client注解
使用@Import注解引入了OAuth2ClientConfiguration配置,使用@Bean方式定义了OAuth2ClientContextFilter过滤器
,嵌入到Web容器中(注意,是Web容器,并不是security的过滤器链中),当后续的过滤器抛出UserRedirectRequiredException这种类型的异常时,就会让用户重定向到认证中心去做登录。那么,就要保证OAuth2ClientContextFilter过滤器一定是要排在FilterChainProxy的前面的,从【OAuth2授权流程和源码解析】的【FilterChainProxy与其它的web的Filter的顺序】章节,可以知道默认的springSecurityFilterChain的排序值为-100,如果要排在它的前面,那么就需要小于-100,我们可以看到在OAuth2AutoConfiguration自动配置类中引入了OAuth2RestOperationsConfiguration配置
类,这个配置类中就注入了上面使用@Bean方式定义的OAuth2ClientContextFilter过滤器,并且使用FilterRegistrationBean将它包装并交给spring容器,注意到它设置的order恰好就是:-100-10 = -100,比-100要小
,因此,OAuth2ClientContextFilter排在springSecurityFilterChain的前面是没有问题的。
OAuth2SsoDefaultConfiguration
OAuth2SsoCustomConfiguration
ResourceServerTokenServicesConfiguration
过滤器
OAuth2ClientContextFilter
OAuth2ClientAuthenticationProcessingFilter
SSO服务端
这篇关于Security OAuth2 SSO单点登录源码剖析(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!