springboot 单点登录
1、springboot 单点登录
单点登录英文全称Single Sign On,简称就是SSO。它的解释是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统
2、流程图
3、流程解析
现在有认证服务器 ssoserver.com,客户端client1.com和客户端client2.com 两个不同域名的服务器,并且没有子域名关系(如果两个客户端有子域名关系,session进行统一存储,可以通过SpringSession手动去设置session的作用域,放大作用域,取父域名最为session的作用域,来完成session数据共享),进行统一登录认证的时候,客户端1和客户端2都需要到认证服务器去登录。登录流程如下:
- 当浏览器向客户端client1.com发出访问受保护资源的请求时
- 客户端client1.com收到访问请求后,会判断当前请求的用户是否登录,什么样是登录状态的?
- 请求的时候参数携带token,获取token之后,查询出用户信息保存到session中,下次可以通过cookie中的信息可以访问到用户数据。
- 已经存在session,通过cookie中的信息可以访问到用户数据。
- 如果请求接口的时候,用户没有登录,则让浏览器重定向到新的位置http://ssoserver.com:8080/login.html?redirect_url=http://client1.com:8081/employees,redirect_url之前是认证服务器的地址,后面是认证成功之后要跳转的地址。
- 接着去访问认证系统的登录页面,在登录页面会判断是否登录过,也就说判断当前浏览器中是否保存的有上一次登录成功之后留下的cookie信息,例如上一次成功之后留下来的sso_token信息
- 如果之前没有系统进行登陆过,则在浏览器上展示登录页面信息,输入账号密码,并且携带成功之后的回调地址进行登录认证
- 登录成功之后,会做两件事,一件事是留下客户端登录之后的痕迹,即在客户端上保留ssoserver.com的cookie信息,第二件事是携带登录成功之后的token信息,返回回调地址,会携带token进行接口的再次校验,校验通过之后,会将用户信息保存到session中。
- 在客户端client1.com登录成功之后,浏览器也向客户端client2.com也发出访问受保护资源的请求
- 客户端client2.com收到访问请求后,会判断当前请求的用户是否登录
- 如果客户端client2.com判断用户没有登录,则让浏览器重定向到新的位置http://ssoserver.com:8080/login.html?redirect_url=http://client2.com:8081/boss,但是因为之前客户端client1.com登录成功之后,留下的有cookie信息,当再次访问该域名下的接口时,会携带cookie信息,接口认证通过之后,会携带token返回回调地址,在client2.com认证通过之后,会根据token信息获取到用户信息,然后将这些用户数据保存到session中。
- 之后无论哪个系统访问,自己的session里面都保存了token对应的用户信息,就不用去登录。
springboot 单点登录相关推荐
- SpringBoot 整合 Shiro 实现动态权限加载更新+ Session 共享 + 单点登录
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源: juejin.im/post/5d087d60518825 ...
- 单点登录系统实现基于SpringBoot
今天的干货有点湿,里面夹杂着我的泪水.可能也只有代码才能让我暂时的平静.通过本章内容你将学到单点登录系统和传统登录系统的区别,单点登录系统设计思路,Spring4 Java配置方式整合HttpClie ...
- VUE+SpringBoot+JWT实现token验证,SSO单点登录
Session的产生: 在说session是啥之前,我们先来说说为什么会出现session会话,它出现的机理是什么?我们知道,我们用浏览器打开一个网页,用到的是HTTP协议,htpp协议是无状态的,什 ...
- springboot redis shiro 实现 单点登录
大家好,我是烤鸭: 今天给大家分享简单的单点登录的实现方式. 环境及jar包: springboot 1.5.10 redis 2.9.0 (可以用tomcat的session,但 ...
- C#session共享+redis_技术干货分享:基于SpringBoot+Redis的Session共享与单点登录
categories: 架构 author: mrzhou tags: SpringBoot redis session 单点登录 基于SpringBoot+Redis的Session共享与单点登录 ...
- SpringBoot+MyBatis+Redis实现SSO单点登录系统(二)
SpringBoot+MyBatis+Redis实现SSO单点登录系统(二) 三.代码 配置文件配置数据库,redis等相关的信息. # See http://docs.spring.io/sprin ...
- SpringBoot+MyBatis+Redis实现SSO单点登录系统(一)
SpringBoot+MyBatis+Redis实现SSO单点登录系统(一) 一.SSO系统概述 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可 ...
- SpringBoot 整合Shiro实现动态权限加载更新+Session共享+单点登录
作者:Sans_ juejin.im/post/5d087d605188256de9779e64 一.说明 Shiro是一个安全框架,项目中主要用它做认证,授权,加密,以及用户的会话管理,虽然Shir ...
- SpringBoot 简单实现仿CAS单点登录系统
SpringBoot 简单实现仿CAS单点登录系统 新境界开源开源SSO项目介绍 新境界开源SSO项目实现原理大致如下: 新境界开源SSO项目登录流程介绍 新境界开源SSO项目授权登录流程介绍 新境界 ...
最新文章
- Visual Studio 2017 15.7预览版发布
- springMVC请求流程详解
- c# 泛型List的定义、作用、用法
- python模块调用的用法_python模块怎么使用
- pcie数据反_PCIe事务层の详解(一)
- 利用JDBC开发图书管理系统
- Hammer.js分析(一)——基础结构
- 360路由器v2刷第三方固件_不走弯路:小米路由器3G 刷Padavan固件简单教程
- 向量转置的怎么求导_向量求导
- 奇虎360 2017校招笔试题
- 经管之家账号被封,显示IP地址不在允许范围内
- 2.4. Prompting
- Binder源码阅读指南之java层,作为Android开发程序员
- STEP 7 Micro/WIN V4.0 SP9 for s7-200
- PVLAN-配置案例(图)
- vm虚拟服务器添加网卡,win7系统下vmware虚拟机添加加载无线网卡的方法
- hihocoder王胖浩与三角形【海伦公式+分类讨论】
- python内置颜色条_用于多个子图的Python颜色条
- 2021年中科院接收毕业生统计!哪些高校最多?
- emmagee工具怎么玩转app压力测试监控