1、springboot 单点登录

单点登录英文全称Single Sign On,简称就是SSO。它的解释是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统

2、流程图





3、流程解析

现在有认证服务器 ssoserver.com,客户端client1.com和客户端client2.com 两个不同域名的服务器,并且没有子域名关系(如果两个客户端有子域名关系,session进行统一存储,可以通过SpringSession手动去设置session的作用域,放大作用域,取父域名最为session的作用域,来完成session数据共享),进行统一登录认证的时候,客户端1和客户端2都需要到认证服务器去登录。登录流程如下:

  1. 当浏览器向客户端client1.com发出访问受保护资源的请求时
  2. 客户端client1.com收到访问请求后,会判断当前请求的用户是否登录,什么样是登录状态的?
    1. 请求的时候参数携带token,获取token之后,查询出用户信息保存到session中,下次可以通过cookie中的信息可以访问到用户数据。
    2. 已经存在session,通过cookie中的信息可以访问到用户数据。
  3. 如果请求接口的时候,用户没有登录,则让浏览器重定向到新的位置http://ssoserver.com:8080/login.html?redirect_url=http://client1.com:8081/employees,redirect_url之前是认证服务器的地址,后面是认证成功之后要跳转的地址。
  4. 接着去访问认证系统的登录页面,在登录页面会判断是否登录过,也就说判断当前浏览器中是否保存的有上一次登录成功之后留下的cookie信息,例如上一次成功之后留下来的sso_token信息
  5. 如果之前没有系统进行登陆过,则在浏览器上展示登录页面信息,输入账号密码,并且携带成功之后的回调地址进行登录认证
  6. 登录成功之后,会做两件事,一件事是留下客户端登录之后的痕迹,即在客户端上保留ssoserver.com的cookie信息,第二件事是携带登录成功之后的token信息,返回回调地址,会携带token进行接口的再次校验,校验通过之后,会将用户信息保存到session中。
  7. 在客户端client1.com登录成功之后,浏览器也向客户端client2.com也发出访问受保护资源的请求
  8. 客户端client2.com收到访问请求后,会判断当前请求的用户是否登录
  9. 如果客户端client2.com判断用户没有登录,则让浏览器重定向到新的位置http://ssoserver.com:8080/login.html?redirect_url=http://client2.com:8081/boss,但是因为之前客户端client1.com登录成功之后,留下的有cookie信息,当再次访问该域名下的接口时,会携带cookie信息,接口认证通过之后,会携带token返回回调地址,在client2.com认证通过之后,会根据token信息获取到用户信息,然后将这些用户数据保存到session中。
  10. 之后无论哪个系统访问,自己的session里面都保存了token对应的用户信息,就不用去登录。

springboot 单点登录相关推荐

  1. SpringBoot 整合 Shiro 实现动态权限加载更新+ Session 共享 + 单点登录

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源: juejin.im/post/5d087d60518825 ...

  2. 单点登录系统实现基于SpringBoot

    今天的干货有点湿,里面夹杂着我的泪水.可能也只有代码才能让我暂时的平静.通过本章内容你将学到单点登录系统和传统登录系统的区别,单点登录系统设计思路,Spring4 Java配置方式整合HttpClie ...

  3. VUE+SpringBoot+JWT实现token验证,SSO单点登录

    Session的产生: 在说session是啥之前,我们先来说说为什么会出现session会话,它出现的机理是什么?我们知道,我们用浏览器打开一个网页,用到的是HTTP协议,htpp协议是无状态的,什 ...

  4. springboot redis shiro 实现 单点登录

    大家好,我是烤鸭: 今天给大家分享简单的单点登录的实现方式. 环境及jar包: springboot     1.5.10 redis    2.9.0    (可以用tomcat的session,但 ...

  5. C#session共享+redis_技术干货分享:基于SpringBoot+Redis的Session共享与单点登录

    categories: 架构 author: mrzhou tags: SpringBoot redis session 单点登录 基于SpringBoot+Redis的Session共享与单点登录 ...

  6. SpringBoot+MyBatis+Redis实现SSO单点登录系统(二)

    SpringBoot+MyBatis+Redis实现SSO单点登录系统(二) 三.代码 配置文件配置数据库,redis等相关的信息. # See http://docs.spring.io/sprin ...

  7. SpringBoot+MyBatis+Redis实现SSO单点登录系统(一)

    SpringBoot+MyBatis+Redis实现SSO单点登录系统(一) 一.SSO系统概述 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可 ...

  8. SpringBoot 整合Shiro实现动态权限加载更新+Session共享+单点登录

    作者:Sans_ juejin.im/post/5d087d605188256de9779e64 一.说明 Shiro是一个安全框架,项目中主要用它做认证,授权,加密,以及用户的会话管理,虽然Shir ...

  9. SpringBoot 简单实现仿CAS单点登录系统

    SpringBoot 简单实现仿CAS单点登录系统 新境界开源开源SSO项目介绍 新境界开源SSO项目实现原理大致如下: 新境界开源SSO项目登录流程介绍 新境界开源SSO项目授权登录流程介绍 新境界 ...

最新文章

  1. Visual Studio 2017 15.7预览版发布
  2. springMVC请求流程详解
  3. c# 泛型List的定义、作用、用法
  4. python模块调用的用法_python模块怎么使用
  5. pcie数据反_PCIe事务层の详解(一)
  6. 利用JDBC开发图书管理系统
  7. Hammer.js分析(一)——基础结构
  8. 360路由器v2刷第三方固件_不走弯路:小米路由器3G 刷Padavan固件简单教程
  9. 向量转置的怎么求导_向量求导
  10. 奇虎360 2017校招笔试题
  11. 经管之家账号被封,显示IP地址不在允许范围内
  12. 2.4. Prompting
  13. Binder源码阅读指南之java层,作为Android开发程序员
  14. STEP 7 Micro/WIN V4.0 SP9 for s7-200
  15. PVLAN-配置案例(图)
  16. vm虚拟服务器添加网卡,win7系统下vmware虚拟机添加加载无线网卡的方法
  17. hihocoder王胖浩与三角形【海伦公式+分类讨论】
  18. python内置颜色条_用于多个子图的Python颜色条
  19. 2021年中科院接收毕业生统计!哪些高校最多?
  20. emmagee工具怎么玩转app压力测试监控

热门文章

  1. linux修改显示日期格式,centos面板日期格式调整
  2. Adobe Photoshop CC 2018之ps钢笔工具抠图(☆☆☆)
  3. Java线程状态及转换
  4. PFX提取 cer 提取 公钥和私钥及PHP读取cer 文件和pfx文件证书
  5. 【JPA】SpringData JPA
  6. ansys workbench网格
  7. 在自己的数据集上训练CrowdDet过程记录
  8. 歌曲光辉岁月和弦走向探究
  9. LruCache的深入解析
  10. 关于NullPointerException的小实例