Spring cloud oauth2.0 源码学习

一、源码结构:

Spring cloud oauth2.0 源码学习_第1张图片

client  复杂应用客户端的管理

common   公共类

config  配置层

http.converter  转换层

provider  复杂管理认证服务器和资源服务器

1、client包:

Spring cloud oauth2.0 源码学习_第2张图片

典型的类:

(1) OAuth2ClientAuthenticationProcessingFilter :负责对客户端的访问进行过滤,验证token处理等操作。

(2)JdbcClientTokenServices:里面封装对oauth_client_token表的一系列操作(如增删改查),此表保存的是此client的token信息。

(3)OAuth2RestTemplate:实现了OAuthRestOperations接口,主要是用来去调用受保护的资源,会自己带上当前token的信息。

2、common公共包:

Spring cloud oauth2.0 源码学习_第3张图片

这一层主要是对json字符串处理、解析和实例化等操作

 

(4)converter 层:略

(5)provider层:

最核心的一层,里面包含了endpoint、认证、以及四种授权方式的管理

Spring cloud oauth2.0 源码学习_第4张图片

1、approval包:包含了授权的信息

2、authntication包:这个包说一下OAuth2AuthenticationProcessingFilter类,这个类主要负责当资源服务器接收到请求此类将进行过滤校验等操作

OAuth2AuthenticationManager这个类是重点

(3)client包:这里只讲一个JdbcClientDetailsService一个类,打开此类的源码可以看到它里面声明了很多的sql语句。此类主要是关系着client信息的管理。以jdbc的方式进行读取

(4)code、implicit、password、refresh层这里就不再展开,就是对应着四种授权方式的管理

(5)endpoint层:此层很重要,代码里面定义了基本的接口地址,如/oauth/authorize、/oauth/token、/oauth/confirm_access等等
 

 

 

你可能感兴趣的:(Spring,cloud)