【Spring Social】学习笔记(二)-Spring Social对OAuth2协议的实现

请大家前看上一个博客,大致了解一下OAuth2协议的流程,嘿嘿!

对于OAuth2协议的流程,Spring Social已经很好的封装了默认的实现,对于变动的组件也定义好了接口让开发者去适配;

Spring Social提供了哪些组件?【Spring Social】学习笔记(二)-Spring Social对OAuth2协议的实现

说明:

  1. OAuth2Operations接口:对OAuth协议中,授权、获取Token流程步骤的接口,Spring Social提供了默认的实现类OAuth2Template;
  2. AbstractOAuth2ApiBinding:在使用Token向服务提供商请求用户基本信息的时候,由于每个服务提供商所提供的用户信息都不同,因此需要单独定义一个规则(接口),Spring Social提供了AbstractOAuth2ApiBind ing用来处理该步骤;
  3. Service Provider接口:对服务提供商的抽象接口,Spring Social提供了抽象实现AbstractOAuth2ServiceProvider,由于它实现了整个OAuth2协议流程,因此他需要OAuth2Operations实现对象和AbstractOAuth2ApiBinding实现对象共同协助;
  4. Connection接口:封装了服务提供商返回的用户信息;
  5. UsersConnectionRepository接口:Connection接口是一个统一的表示用户信息的接口,但是每个服务提供商所返回的用户信息都是不同的,因此在数据库中有一个userconnection表来关联第三方应用的User和服务提供商的User(Connection用户信息),该表的主键有三个(如上图)。而Spring Social提供了UsersConnectionRepository接口来操作这张表,默认实现是JdbcUsersConnectionRepository类;

 

类图展示:

 

【Spring Social】学习笔记(二)-Spring Social对OAuth2协议的实现

图画的不好,对于画图我真不咋专业,大家先看个大概,现在只需要知道这些组件的用途即可,后续我们开发一个QQ登录的demo大家就明白流程了,之所以用QQ是因为QQ的实现接口最规范,学习OAuth比较好。