一、简介

关于OAuth可以参考《理解OAuth 2.0》中的进行理解,这里的Spring Social就是一个遵循oauth协议的框架,所以可以用它来做第三方的登录。那么spring security 与 oath social是什么关系呢?没关系!

我们知道在spring security中被认定为认证成功的标志是 根据用户信息构建Authentication放入SecurityContext中。而在Social中只要引导用户走完oath的所有流程,最后根据用户信息构建Authentication放入SecurityContext中即完成了第三方登录 操作。social的原理就是基于我们之前学习过的过滤链原理,在过滤器链上增加了一个 SocialAuthenticationFilter,拦截到有需要第三方登录的请求则开始引导完成所有的流程,就完成了第三方登录。

二、social基本概念和原理

我们先来看一下OAuth运行的基本流程

1-5步都是协议化流程步骤,这里只介绍与我们要写代码相关的流程,实现这些节点就可以运行了。

  • OAuth2Operations(OAuth2Template):封装了1-5的步骤
  • Api(AbstractOAuth2ApiBinding):对第6步提供了支持
  • Connection (OAuth2Connection):包含用户信息的对象,
  • ConnectionFactory(OAuth2ConnectionFactory):ServiceProvider 创建Connection,要走1-5的流程,所以包含ServiceProvider;ApiAdapter OAuth2Connection是固定结构的数据,对第三方api返回的数据进行匹配,读取用户信息。

那么服务提供的信息是如何与业务系统中的用户是如何关联的呢?在 social 中是存在数据库中的,存放的是业务系统的userid与服务商用户的一个对应关系。由谁来操作这个数据库中的表呢?UsersConnectionRepository(JdbcUsersConnectionRepository)。官网(https://projects.spring.io/spring-social/)中页面信息提供了

  • Main Projects 官网已发布的项目,如连接Facebook的项目(上面讲的基本上都实现了,可能只需要简单的配置即可)
  • Incubator Projects 孵化中的项目,也就是正在开发中的
  • Community Projects 社区项目,非官网提供,但是放在这里应该质量还算是比较好的吧

spring security——Spring Social简介(五)相关推荐

  1. Spring Security + Spring Session Redis——【SecurityContext】和【AuthenticationToken】JSON反序列化问题解决方案

    前置 Spring Session + Redis--自定义JSON序列化解决方案 问题描述 Spring Security + Spring Session使用中Redis,默认序列化方式是JdkS ...

  2. Spring Security+Spring Data Jpa 强强联手,安全管理只有更简单!

    Spring Security+Spring Data Jpa 强强联手,安全管理没有简单,只有更简单! 这周忙着更新 OAuth2,Spring Security 也抽空来一篇. Spring Se ...

  3. Spring Security权限框架简介

    一.框架介绍 Spring 是一个非常流行和成功的 Java 应用开发框架.Spring Security 是基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案.一般来说,Web  ...

  4. Spring Security +Spring Session Redis+JJWT

    重要提示 这样集成弄完一波后,导致Spring Security并发控制并没有生效,请大佬们慎重参考下面内容. 问题 希望使用Spring Security对Spring Boot进行保护,并且,使用 ...

  5. Spring Security技术栈学习笔记(十三)Spring Social集成第三方登录验证开发流程介绍

    开发第三方登录,我们必须首先要了解OAuth协议(本文所讲述的OAuth协议指的是OAuth2协议),本文首先简单介绍OAuth协议,然后基于Spring Social来阐述开发第三方登录需要做哪些准 ...

  6. Spring Security技术栈学习笔记(十四)使用Spring Social集成QQ登录验证方式

    上一篇文章<Spring Security技术栈开发企业级认证与授权(十三)Spring Social集成第三方登录验证开发流程介绍>主要是介绍了OAuth2协议的基本内容以及Spring ...

  7. Spring Security 架构简介

    一.技术概述 1.1 Spring vs Spring Boot vs Spring Security 1.1.1 Spring Framework Spring Framework 为开发 Java ...

  8. Spring Security(一)- SpringSecurity 框架简介

    文章目录 一.SpringSecurity 框架简介 1. 概要 2. Spring Security 与 Shiro 对比 2.1 Spring Security 2.2 SpringSecurit ...

  9. Spring Security技术栈开发企业级认证与授权-笔记

    Spring Security 慕x网课程笔记:包括内容如下 MySQL Workbench 官方客户端:sql客户端security oauth2 social spring security sp ...

最新文章

  1. 【AI研究院】360无死角认识一下女神的线上美容院-“美图秀秀”
  2. java实例_图例 | Java混合模式分析之火焰图实例
  3. 教师编学科知识计算机,教师考试信息技术学科知识考什么_谈信息技术学科教师应该怎样教学...
  4. 江夏学院计算机,福建江夏学院计算机作业.doc
  5. oracle status
  6. 【LiveVideoStack线上分享】— 海外复杂网络环境下的视频播放体验优化
  7. [Java基础]System类的常用方法
  8. python报考软考哪个比较好_软考高级考哪个好?哪个比较热门?
  9. mysql undo log回收_MySQL5.7 可以回收(收缩)undo log回滚日志物理文件空间
  10. 采集新浪微博数据建设网络舆情监测系统
  11. SQL 存储过程封装代码生成器
  12. PLSQL Developer 13链接oracle安装与配置手册
  13. 123457123456#0#-----com.yuming.FromPuzzleGame01--前拼后广--宝宝农场拼图cym
  14. 到底什么是非线性优化?
  15. excel多条件计数python_Excel统计满足条件的不重复值个数的8种方法,第三种方法最适合新手!我真的入门了!...
  16. 高斯勒让德求积公式matlab通用程序,数值分析——Gauss-Legendre 求积分(Matlab实现)...
  17. java编程水仙花数_Java 编程找出所有的水仙花数(水仙花数)。
  18. 【Google Play】创建和管理内部测试版本 ( 创建内部测试版本 | 检查并发布内部测试版本 )
  19. NB-IoT技术实战开发----keil安装和使用
  20. 单片机控制直流电机c语言代码,用51单片机控制直流电机

热门文章

  1. 简单病毒脚本的原理分析
  2. 人体五脏排毒最简单有效的方法
  3. 计算机等级考试电子邮件的保存,计算机基础知识电子邮件使用技巧集锦(二)
  4. 5 meta tags for making your website into a iOS Web App
  5. 流行学习一LLE_机器学习
  6. 根据体质喝茶养生的学问
  7. grpc-go源码剖析十二之平衡器基本原理介绍
  8. 汽车连杆精工加机床solidworks设计鳞辊输送机3D图纸 Solidworks设计伺服冲料机 proe可打开夹具夹紧机构3D数模图纸 x_t格式粉尘料位检测机构辊子输送机STP
  9. 如何将ArcGis进行中英文切换
  10. 为什么不能合到一起?