1.整体系统布局

大的布局有两种方式,这两种方式都需要一个独立的SSO认证服务系统称为SSO服务端,而第一种是在SSO服务端只完成登录接口,返回是否登录成功的标识和数据,每个SSO客户端都需要独立的登录页面和登录接口(这个登录接口去调用SSO服务端的登录接口返回数据),而第二种则是整个登录系统(接口,页面)全部在SSO服务端,其实这两种方式都差不多。

第一种:

第二种:

2.实现方式

1.cookie+jwt,登录之后返回cookie,cookie中存的就是jwt,然后每次请求直接传jwt,并在过滤器中进行验证

2.token请求头,登录之后返回token,浏览器可使用cookie或localStorage存储,每次请求的时候将token带上,然后在后端过滤器进行验证

3.cookie+session,登录之后返回sessionId,然后在系统A中保存sessionId和用户的关系,每次请求带上SessionId

3.可使用的框架

1.shiro   2.cas   3.shiro+cas   4.spring security+oauth2

4.注意点:cookie是没有全局传输的使用方式的,只可以为其设置domain域,即可使用的域名(一般设置为二级域名,这样该系统下的所有子域都可共享了,如果有多个二级域名,则需要想办法将cookie复制过去,不能使用一级域名作为cookie的域,如.com),如果不太了解cookie域的可以参考博客:https://blog.csdn.net/zhouziyu2011/article/details/61200943/

遇到的问题或bug:

1.首先我用的是SpringBoot2.x搭建的项目,一般来说项目的domain域会设置成 .xx.com,注意xx前面有一个点,但是SpringBoot内置的tomcat解析不了,因为tomcat版本过高,使用的解析方式发生了变化。然后我就百度,一开始看到有说修改SpringBoot内置的tomcat版本,我照着方法修改后就出现问题了,主要是pom文件报错:

CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.1 or one of its dependencies could not be resolved: The following artifacts could not be resolved: com.google.code.findbugs:jsr305:jar:2.0.1, org.codehaus.plexus:plexus-compiler-api:jar:2.2: Failure to transfer com.google.code.findbugs:jsr305:jar:2.0.1 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact com.google.code.findbugs:jsr305:jar:2.0.1 from/to central (http://repo.maven.apache.org/maven2): The operation was cancelled。。。。。。

这个错误就是说jar包冲突了,然后我就又按照错误百度,或者按照经验删除错误的jar包,让maven重新去下载jar包,最后发现越搞越没用,依旧报错,然后一气之下删除了所有org文件夹下的jar包,因为我基本用的开源框架,所以jar包基本使用的都是org文件夹下的,结果就好了,项目终于有能启动了,恢复正常了,(所以在这里提醒大家碰到pom文件出问题了,你最好直接把一个大的文件夹删掉,否则没删对包,就只会浪费更多的时间)但是由于删除了大部分jar包,之前修改的tomcat版本其实也已经恢复成默认的了,然后又继续百度怎么解析domain。

2.然后大部分都说用下面这个方法:

然后我放在项目中根本就找不到那些类,因为我是用的SpringBoot2.x版本比较高,然后我就去SpringBoot官网去看,终于找到了

只要加上这段话就行了,作用就是改变tomcat的解析方式。

3.设置cookie的时候最好把path也设置一下,设置成"/",否则可能cookie没有效果。

4.因为是多系统,在后端需要使用RestTempalate或者HttpClient访问url获取数据时需要注意,这两个类在请求的时候是不会自动带上cookie的,所以需要手动添加上去,可参考:https://blog.csdn.net/zty1317313805/article/details/80096584

分布式多系统SSO单点登录相关推荐

  1. java ssm 多租户_(十一)java B2B2C 源码 多级分销springmvc mybatis多租户电子商城系统- SSO单点登录之OAuth2.0登录流程(2)...

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  2. 上手实操分布式系统下的SSO单点登录

    分布式核心问题系列目录 分布式核心问题 - SSO单点登录 分布式核心问题 - 分布式锁 分布式核心问题 - 分布式接口幂等性设计 分布式核心问题 - MyCat实现读写分离 ------------ ...

  3. sso单点登录系统(解决session共享)

    场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服 ...

  4. 互联网分布式微服务云平台规划分析--SSO单点登录系统

    介绍 鸿鹄云架构[SSO单点登录系统]为所有微服务提供统一的用户认证服务,系统本身属于微服务模式,使用JWT+Redis分布式存储方案,确保不同微服务.系统之间的安全通讯和统一用户校验.认证.在整个服 ...

  5. JAVA springboot ssm b2b2c多用户商城系统源码-SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  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. 手撸SSO单点登录(五)登录验证-OA系统页面刷新或者跳转新OA系统页面

    目标  上一章节手撸SSO单点登录(四)登录验证-首次登录已经成功登陆并且跳转至OA系统,当OA系统刷新,或者OA系统打开其他菜单是怎么实现无需登陆,直接验证通过,跳转页面或者刷新页面. 视频详细讲解 ...

  9. Shiro整合SSO单点登录系统

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37797991/article/ ...

最新文章

  1. C#发现之旅第九讲 ASP.NET验证码技术
  2. 设计模式之四:适配器模式(Adapter Pattern)
  3. 数学好的男生适合学计算机吗,数学好的男生适合读什么专业 2021前景好吗
  4. CSS页面布局解决方案大全
  5. Hadoop入门(十)Mapreduce高级shuffle之Sort和Group
  6. MMO游戏War Riders宣布将于基于区块链的游戏开发公司Immutable集成
  7. 如何在服务器上部署若依开源框架?(Linux版)
  8. 微软输入法怎么最小化到托盘_Windows下的五笔输入法哪个最好用?我来推荐几款...
  9. js生成二维码,js 解析二维码,jsqrcode,js从url生成二维码
  10. Win11用户好消息 影响win11性能运行的竟是它,关闭可提升性能
  11. D4 数据分析实例:分析movielens电影数据+pandas核心数据结构
  12. android电视工程模式,智能电视进入工厂/工程模式教程汇总!
  13. 202000 - AlphaGo如何进化为孤独求败?
  14. SpringBoot整合微信扫码登录
  15. 构架、框架和设计模式的理解
  16. python独热编码作用_关于sklearn独热编码
  17. USB接口PCB设计
  18. 个人简历制作时的自我评价应该怎么写?
  19. 单片机 stm32 差分升级 增量升级算法源码, 纯c编写跨平因为是程序源码
  20. 椭圆的长短轴分别沿着矩阵A的两个特征向量的方向

热门文章

  1. 最好的芳华遇到你,余生都是你
  2. Android主题与样式
  3. 游戏更新一直卡在计算机,游戏卡卡卡?教你解决电脑玩游戏一直跳ping的问题...
  4. html字符 编码转换,HTML字符编码
  5. Regsvr32命令修复系统故障实例
  6. 深度:中国车企遭遇最大危机!末尾淘汰赛开始【附下载】| 智东西内参
  7. 项目实战:ASP.NET:C/S架构 大学BBS论坛项目(推荐★★★)
  8. 做题总结——使徒袭来
  9. python中的django库遇到打不开manage.py的问题
  10. MATLAB二维图绘制