分布式多系统SSO单点登录
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单点登录相关推荐
- java ssm 多租户_(十一)java B2B2C 源码 多级分销springmvc mybatis多租户电子商城系统- SSO单点登录之OAuth2.0登录流程(2)...
上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...
- 上手实操分布式系统下的SSO单点登录
分布式核心问题系列目录 分布式核心问题 - SSO单点登录 分布式核心问题 - 分布式锁 分布式核心问题 - 分布式接口幂等性设计 分布式核心问题 - MyCat实现读写分离 ------------ ...
- sso单点登录系统(解决session共享)
场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服 ...
- 互联网分布式微服务云平台规划分析--SSO单点登录系统
介绍 鸿鹄云架构[SSO单点登录系统]为所有微服务提供统一的用户认证服务,系统本身属于微服务模式,使用JWT+Redis分布式存储方案,确保不同微服务.系统之间的安全通讯和统一用户校验.认证.在整个服 ...
- JAVA springboot ssm b2b2c多用户商城系统源码-SSO单点登录之OAuth2.0登录流程(2)
上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...
- 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是在多个应用系统中,用户只需要登录一次就可 ...
- 手撸SSO单点登录(五)登录验证-OA系统页面刷新或者跳转新OA系统页面
目标 上一章节手撸SSO单点登录(四)登录验证-首次登录已经成功登陆并且跳转至OA系统,当OA系统刷新,或者OA系统打开其他菜单是怎么实现无需登陆,直接验证通过,跳转页面或者刷新页面. 视频详细讲解 ...
- Shiro整合SSO单点登录系统
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37797991/article/ ...
最新文章
- C#发现之旅第九讲 ASP.NET验证码技术
- 设计模式之四:适配器模式(Adapter Pattern)
- 数学好的男生适合学计算机吗,数学好的男生适合读什么专业 2021前景好吗
- CSS页面布局解决方案大全
- Hadoop入门(十)Mapreduce高级shuffle之Sort和Group
- MMO游戏War Riders宣布将于基于区块链的游戏开发公司Immutable集成
- 如何在服务器上部署若依开源框架?(Linux版)
- 微软输入法怎么最小化到托盘_Windows下的五笔输入法哪个最好用?我来推荐几款...
- js生成二维码,js 解析二维码,jsqrcode,js从url生成二维码
- Win11用户好消息 影响win11性能运行的竟是它,关闭可提升性能
- D4 数据分析实例:分析movielens电影数据+pandas核心数据结构
- android电视工程模式,智能电视进入工厂/工程模式教程汇总!
- 202000 - AlphaGo如何进化为孤独求败?
- SpringBoot整合微信扫码登录
- 构架、框架和设计模式的理解
- python独热编码作用_关于sklearn独热编码
- USB接口PCB设计
- 个人简历制作时的自我评价应该怎么写?
- 单片机 stm32 差分升级 增量升级算法源码, 纯c编写跨平因为是程序源码
- 椭圆的长短轴分别沿着矩阵A的两个特征向量的方向
热门文章
- 最好的芳华遇到你,余生都是你
- Android主题与样式
- 游戏更新一直卡在计算机,游戏卡卡卡?教你解决电脑玩游戏一直跳ping的问题...
- html字符 编码转换,HTML字符编码
- Regsvr32命令修复系统故障实例
- 深度:中国车企遭遇最大危机!末尾淘汰赛开始【附下载】| 智东西内参
- 项目实战:ASP.NET:C/S架构 大学BBS论坛项目(推荐★★★)
- 做题总结——使徒袭来
- python中的django库遇到打不开manage.py的问题
- MATLAB二维图绘制