SpringSocial简介
⒈常用的pom依赖
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-core</artifactId>
<version>1.1.6.RELEASE</version>
</dependency>
⒉一些常用接口及实现




1.ServiceProvider =》AbstractOAuth2ServiceProvider
服务提供商抽象接口,针对每一个服务提供商,例如QQ、微信、微博等,都需要提供一个ServiceProvider实现。
SpringSocial给我们提供了一个AbstractOAuth2ServiceProvider抽象类,它帮我们实现了一些共有的东西,我们实现服务提供商的时候只需要继承这个抽象类就可以了。
2.OAuth2Operations =》 OAuth2Template
OAuth2Operations 接口封装了OAuth2协议的从①步到第⑤步,实际上OAuth2协议的第①步到第⑤步是一个标准的流程,第⑥步是一个个性化的流程,因为第⑥步每一个服务提供商所提供的用户信息数据结构是不一样的。SpringSocial给我们提供了一个OAuth2Operations标准的实现类OAuth2Template。
3.Api(SpringSocial没有提供,需要我们自己来写) =》 AbstractOAuth2ApiBinding
因为每一个服务提供商对用户基本信息的调用都是不同的,所以需要我们自己去写一个Api接口来封装获取用户信息(第⑥步)的方法。SpringSocial给我们提供了一个AbstractOAuth2ApiBinding抽象类来帮助我们更快的完成第⑥步的实现。
4.ConnectionFactory =》OAuth2ConnectionFactory
负责创建我们Connection实例,也就是包含前6步获取到的用户信息的对象。为了创建Connection实例,ConnectionFactory 需要系统前6步的流程,走前6步的流程就需要ServiceProvider,因此,ConnectionFactory包含着一个ServiceProvider实例,在开发中,我们需要调用ConnectionFactory的ServiceProvider实例来完成前6步的流程,将获取到的用户信息封装成一个Connection。
5.Connection =》 OAuth2Connection
封装我们前6步获取到的用户信息,由ConnectionFactory创建(一个连接工厂)。Connection 是一个固定的数据结构(字段名和字段都是固定的),每一个服务提供商的用户数据定义都是不一样的,我们需要通过ApiAdapter将每个服务商不一样的数据结构转化成Connection这样一个标准的数据结构。
6.ApiAdapter
顾名思义,就是在我们的Api接口和Connection接口之间做一个适配,将每个服务商不一样的数据结构转化成Connection这样一个标准的数据结构。
7.UsersConnectionRepository =》JdbcUsersConnectionRepository
将Connection 信息(即前6步获取到的用户信息)存储到数据库UserConnection表中。
SpringSocial简介的更多相关文章
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
随机推荐
- Spring_事务管理
转自:https://www.ibm.com/developerworks/cn/java/j-master-spring-transactional-use/index.html 事务管理是应用系统 ...
- Neo4j社区版配置文件
#*****************************************************************# Neo4j configuration## For more d ...
- MySQL最优配置模板( 5.6&5.7)(运维那点事)
MySQL 5.6&5.7配置文件(姜总提供) [mysql] default-character-set=utf8mb4 user = root password = 123456 port ...
- 6、JPA-映射-单向一对多
一个用户对应多个订单 实体类 Customer package com.jpa.yingshe; import javax.persistence.*; import java.util.HashSe ...
- 9.组合模式(Composite Pattern)
动机(Motivate): 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素 ...
- python 面向对象(四)反射
####################总结########## 1. isinstance: 判断xxx是否是xxx类型的(向上判断) type: 返回xx对象的数据类型 issubclass: 判 ...
- Linux-CentOS 查看(监控)服务器网卡流量
1.使用系统自带的命令: watch more /proc/net/dev 2. 使用nload命令,需要自行安装 1)# yum install flex byacc libpcap ncurses ...
- springMVC中a标签传递多个参数到后台的应用
1.js页面:返回json填充HTML部分代码 <a class='byCard' href="+path+"/static/toCardView/"+ data. ...
- Elasticsearch分片优化
原文地址:https://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index 大多数ElasticSearch用户在创建索引 ...
- LeetCode(193. Valid Phone Numbers)(sed用法)
193. Valid Phone Numbers Given a text file file.txt that contains list of phone numbers (one per lin ...