委托认证就是将CAS对接到第三方服务进行认证,但需要三方认证流程符合规范的流程(OAuth、OIDC),CAS已经提供了现成的github、Facebook、QQ等的对接
我们从 Client 初始化流程,来看一下client的内部数据结构和认证流程
先把设计到的类型列一下:
OAuth20Client:OAuth20客户端,核心类
Pac4jOAuth20ClientProperties:定义通用属性:各种url啦、appid、secret啦、需要保留的profile属性啦(可以定义别名),跳转到授权URL时要加的额外参数啦(这个不太受用)
OAuth20Service:OAuth相关流程业务类,比如请求access_token、refresh_token、设置response_type等等
DefaultApi20:通过继承该类,定义请求URL,定义签名类型(authorization是放在请求头还是请求参数),以及创建 Service
OAuth20ProfileDefinition:profile定义,用于生成profile,将授权之后获取到的用户信息设置到profile里
OAuth20ProfileCreator:profile创建类,包含请求profile时的参数签名,根据access_token获取profile啦这些。。。
OAuth20Configuration:定义 key、secret、response_type等等,也定义了api、profile definition
其他:
OAuth20RedirectActionBuilder: