两个完全独立的系统可以做单点登录吗

目前有两个各自独立的项目网盘和论坛,现在要实现实现单点登录,但是两个系统的用户结构不同,可以做单点登录吗

0

2个回答

楼主说是可以实现的,不过登录之后由于用户库不一样会有无权限的问题,具体 分析一下

要实现单点
1,通过分布式缓存做到session共享(如redis),即:两个系统共享登录的session信息。
2,前台请求将sessionId写入请求的header里边。sessionid存储的cookie中
3,这样当登录了一个系统之后,后台保存了登录信息到redis里边,而且登录校验的时候后台先通过请求的sessionid上redis里边查询
是否已经有登录信息了。如果有则获取登录信息,如果没有再校验用户名密码登录。
4,此时登录另外一个系统,从cookie中获取sessionid传到后台校验。
5,问题:两个系统必须是同源的,因为cookie不能非同源访问。即:必须是一个顶级域名下得二级域名

如果两个系统是完全独立的,这个时候就要借助另外一个用户中心的系统来实现,实现原理跟上面描述的一样。

其实即使这样实现了,还是无法做到权限共享,因为一个系统在A登录,但是在B中无此用户,登录之后A再B系统里边没有任何权限。
所以另外一种实现方式比较简单粗暴。那就是定时同步两个系统的用户。
1,定时同步两个系统的用户
2,在两个系统分别加上登录另外一个系统的一个单点连接,连接中带着用户名和密码(当然要加密)
3,点击后则跳转到另外一个系统,因为带着用户名和密码,所以后台接收到之后直接过个校验。
以上是完全独立的两个系统实现单点的一种方案。很多erp就是这么实现的

1

你这个和如今的两大社交软件qq微信的问题是一样的,可以认为假如在qq中已经注册帐号,那么我们可以在微信中同样使用qq登录,不过是存在一个权限问题的。
1.新建一张中间表,只在中间表存放用户名、密码、来源(来自那个系统)、是否锁定等信息。当用户登录时,首先检索中间表,如果中间表成功,则验证成功,并更加登录系统不同,去加载权限信息等等。如果中间表检索失败,则依次去检索当前登录系统的数据库,和另一个系统,如果成功则停止检索,并加载相因系统的信息。如果不成功,则提示用户注册。

我也是个菜鸟。。。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
多系统session 共享实现单点登录
以tomcat服务器为例: 1.设置server.xml如下: <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"&a
shiro多系统单点登录
shiro多系统单点登录最近做项目遇到了多个系统权限用的是shiro框架,需要做成单点登录,虽然shiro为单点登录提供了shiro-cas的方案,但是不太符合我们现有项目的框架,现在和大家分享一下我是如何实现单点登录。整体思路是参考cas。框架图: 流程介绍 用户第一次访问系统A 系统A的ssoFilter发现当前session没有用户信息就重定向到登录服务器http://loginservic
A,B两个系统单点登录问题
A,B两个系统单点登录问题: 描述:在A系统登录后,点击A系统的某个模块,登录到B系统。 解决思路:在B系统的后台代码获取B系统的用户名和密码,当点击A系统的某个模块时将用户名和密码通过url登录到B系统,单点退出问题: 描述:点击A系统的退出按钮,同时退出B系统; 解决思路: 在A系统的带有退出按钮的jsp页面,找到退出方法,将退出成功后执行的方法改为退出B系统, 找到B系统的登录界面
【单点登录】求多系统下各个系统用户绑定并实现单点登录的解决方案
[color=red]背景说明:[/color] 目前有系统A,系统B,系统C,三套系统,每一套系统下都有一套用户系统。 A系统里有账户:zhangsan,lisi,wangwu B系统里有账户:张三001,李四,王五 C系统下有账户:0586,0485,0299 而现实中:A系统中的zhangsan就是B系统中的张三001和C系统中的0586 ...
分布式多系统SSO单点登录
1.整体系统布局   大的布局有两种方式,这两种方式都需要一个独立的SSO认证服务系统称为SSO服务端,而第一种是在SSO服务端只完成登录接口,返回是否登录成功的标识和数据,每个SSO客户端都需要独立的登录页面和登录接口(这个登录接口去调用SSO服务端的登录接口返回数据),而第二种则是整个登录系统(接口,页面)全部在SSO服务端,其实这两种方式都差不多。     第一种:  第二种: ...
redis实现单点登录系统
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。
多系统单点登录(CAS整合)
声明:本文章仅是本人记录作以后备用,不建议作为学习cas的参考文章,毕竟每人的思路不一样,此文章会有好多地方写得过于简单,网路上很多关于cas的文章写得比此文好好多。 首先CAS有服务器端(本人用4.0.0版本)和客户端(3.3.3版本) 服务器端: 服务器端作为统一认证的地方,所以各个系统的用户要统一。 认证的方式有3种,本人采用JDBC的认证方式(AbstractJdbcUsernam
多系统单点登录(sso)设计
单点登录 sso 淘宝天猫sso 设计
装两个独立的双系统,在笔记本电脑上
本人笔记本电脑的硬盘配置: 250G的固态硬盘, 1T的机械硬盘 我的电脑经常被公司的其他人借走,对于别人的电脑都不是怎么爱惜,软件乱装甚至病毒也一大堆,一些蠕虫病毒杀都杀不完,每次电脑换回来我恨不得都要重装一次系统,由此我便想到可以装双系统。 我先是直接在电脑上装,装完之后下次再开机便可以在开机的时候选择进入选择系统的界面(一点都不隐蔽啊)选择那个系统,但是进去之后发现硬盘是...
架构师教你:如何实现两个完全独立闭环业务系统的融合。
本篇文章讲述的是京东服务市场和京麦服务市场融合的项目内容,两个系统完全是独立的闭环业务系统,都有自己完整的服务商流程、服务发布(服务类商品)流程、订单支付流程等,如何实现两个系统的融合,是我们面临的最大挑战,期间有过多版方案的争吵,最终的实现也是曲折的。 梳理系统 首先对服务市场和插件市场进行了系统的功能梳理,并对页面、功能、流程、数据的融合进行了架构拆解。 最终架构 在明确系统融...
java实现完全跨域SSO单点登录
java实现SSO 什么是SSO SSO(Single Sign On)单点登录是实现多个系统之间统一登录的验证系统,简单来说就是:有A,B,C三个系统,在A处登录过后,再访问B系统,B系统就已经处于了登录状态,C系统也是一样。举个生活中栗子:你同时打开天猫和淘宝,都进入login界面,都要求你登录的,现在你在淘宝处登录后,直接在天猫处刷新,你会发现,你已经登录了,而且就是你在淘宝上登录的用户...
完全跨域单点登录DEMO
详情见http://blog.csdn.net/ghsau/article/details/20545513
完全跨域下单点登录的一种解决方案
根据oums单点登录解决方案介绍 一文我们知道单点登录有两种模型,一种是共同父域下的单点登录(例如域名都是 xx.a.com),还有就是完全跨域下的单点登录(例如域名是xx.a.com,xx.b.com),本文我们讲一下完全跨域下的单点登录该怎么实现。   基于安全考虑,想通过cookie来实现这个功能是不太可能的了(也许有其他黑科技可以实现,这里不做讨论)。这里介绍的方案是参考shiro框架的跨
java实现可跨浏览器单点登录
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
手把手带你实现一个可用的单点登录系统
怎么能够快速实现一个 SSO 系统,这是很多在企业里开发登录模块的朋友经常遇到的问题。中文网络上有太多的讨论,但能够引导大家真正去实现一个 SSO 系统的却凤毛麟角。本文立足于 SSO 系统的实现,只讲实现,不扯概念,帮助大家构建出一个可用的 SSO 系统。 本场 Chat 您将收获: 了解一个 SSO 系统需要具备什么功能 怎么同时支持自有账号和第三方授权进行登录 为什么不能在账号认证后立即颁...
【SSO】单点登录系统实现
一、前言      小编在前一篇博客中向大家介绍了使用单点登录的演变过程,最后一步的时候小编向大家展示了分布式架构。其中就用到了单点登录系统。这篇博客继续接上一篇博客,实现一下单点登录系统。二、环境准备 Eclipse Redis 三、单点登录流程图      这个是简单的单点登录流程图,就那淘宝来说,当我们进步淘宝首页的时候是没有登录的,点击登录的时候,会跳转到用户登录界面。此时的用户登录界面就是
SSO单点登录-分布式系统实战
什么是单点登录SSO(Single Sign-On)SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。单点登录解决了什么问题解决了用户只需要登录一次就可以访问所有相互信任的应用系统,而不用重复登录。例如CSDN中的论坛应用,博客应用,下载应用模块。我们只要在CSDN中...
如何实现跨域跨编程语言 —— 真实生产环境上的SSO-单点登录范例(1)
源码下载地址:https://github.com/zhengzizhi/microservice-store-localhost.git [root@cloud ~]# hostname cloud.com [root@cloud ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 local...
单点登录在项目中的进一步理解
tomcat+cas作为单点,然后使用virgo(云)做项目的容器。 工作流程:当第一次访问项目某个页面(client)时,由于用户没有登录,会被重定向到单点,输入用户名和密码,然后跳转到所访问的页面。当第二次再访问时,就不需要输入用户密码了。这个时候直接由单点来提供。 单点的好处:一劳永逸!
shiro框架实现单点登录
import org.apache.shiro.session.Session; import org.apache.shiro.session.mgt.eis.SessionDAO; public class MyShiroRealm extends AuthorizingRealm { private static final Logger logger = LoggerFact...
基于oauth2.0的单点登录
1、在认证中心进行系统注册 2、 根据注册参数,在系统中设置参数 oauth.oa.key=admineap oauth.oa.secret=99aaa0bed18a4533bb6ca3fbf91739fd oauth.oa.scope=billjiang oauth.oa.authorize_url=http://localhost:8105/oauth/authorize?client...
cas单点登录系统:客户端(client)详细配置(包含统一单点注销配置)
Cas由两部分组成,Cas Server和Cas Client。Cas Server是Cas自己的服务端,而Cas Client是Cas客户端,往往客户端需要和我们具体的业务系统进行集成,这里我们主要详述cas 客户端的配置以及实例 第一步: 我们得有一个现成的web项目,然后我们要加入cas-client-core-xxx.jar到classpath; maven项目用这个: org
用Redis做单点登录(理论)
登录时,把登录用户的登录时间,保存在redis和session中,用户每次请求时,通过拦截器,都去验证用户保存到redis和session中的登录时间是否相同,如果相同,则不拦截,如果不同,则删除当前用户的session,并退出登录状态。当用户在第二个浏览器中登录同一个账户时,redis会保存用户最新的登录时间,当用户的账号在第一个浏览器中再次发起请求时,就会被拦截器检测到用户的登录时间和sessi
绝对完全跨域统一单点登录登出
应用场景:多个系统下同属于一个用户,当用户登录了web1系统,那么访问web2,web3. . . . 时候,用户就无需再次登录。如:淘宝与天猫,登出也如此,一个系统登出,其他系统的登录也随之失效,这就是统一单点登录登出。这里配置三个web系统,一个用户中心系统为栗子配置hosts实现跨域:127.0.0.1 ssofront.ljtest.xxxx.com #...
利用过滤器和cookie实现简单的单点登录
单点登录就是我们开发一个web系统时,会使用前后台,后台各模块分离的成model的模式,所以一个大的系统可能会分成很多web项目来写,有同学会说:那就登录一个就可以都访问就好了,可是session正常是不能跨域的,也就是说在别的项目模块已经获取不到你登录模块的session了,cookie也是相同域名可以读取,但是cookie可以设置domain(“.xxx/xx”)以“点”开头,设置的域就能看见
开发单点登录系统(SSO)时需要注意的几个问题
一、单点登录系统需要支持jsonp请求 1、为什么?        单点登录系统主要是向其他系统提供用户身份验证服务,因此需要提供对外接口,而外部系统通过接口访问时,必然涉及跨域问题,因此需要单点登录系统支持jsonp消息转换,即能正确处理跨域请求。否则,请求接收到的数据解析失败,chrome debug中提示“Uncaught SyntaxError: Unexpected token
单点登录系统流程
什么是单点登录系统 (Single Sign On)? 在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
Shiro整合SSO单点登录系统
前言shiro是一个非常强大的权限管理框架,关于shiro与cas整合的示例有很多,但是我们平时开发的时候,很多公司并不是使用cas来做SSO的,而是自己公司会用自己开发的。本文就主要针对这种方式的整合。新增SSO相关的properties#sso服务器登录地址,service参数表示登录成功后要跳转的地址 ssoServiceUrl=http://www.authserver.com/auth/l
jsonp、cookies实现单点登录(完全跨域)
单点登录实现的目标:在一个套系统的任意一个系统中登录之后,访问其他子系统能直接登录。 在同一主域名下的所有系统可以共享主域名的cookies,所以再一台服务器中登录之后,将token信息存入到主域名下的cookies中,任意一个子系统访问会自动带上这个token信息,能达到单点登录的效果。 这里主要实现完全跨域的情况下如何实现单点登录:也就是两个系统的域名完全分离,不能共用cookies信息,...
单点登录
简单的介绍几句 将用户信息存到redis里面去,key是随机生成的token和指定的后缀 value 是用户信息 首先用户输入用户名和密码,后台得到的用户的账号去数据库中找到用户信息,如果没有直接返回该用户错误,有的话利用shiro的验证机制, 拿数据库中用户的账号跟密码去生成token,与用户输入的账号 和密码生成的token是否一致,如果一致就登录成功。 我们随机生成一个token,然后...
SSO系列之——同域下单点登录系统介绍
Single-Sign-On即单点登录,从一个页面登录,就可以访问其他互信系统,避免用户重新登录,例如登录了百度,则百度云等其他百度旗下其他网站均可免登录访问。在整个业务服务群中起到了辅助、集成的作用。  SSO体系结构 客户端调用模块 认证中心 认证中心是SSO系统的核心,它先验证用户是否有权限访问系统,如果有让用户访问系统资源;如果没有,提供一个登录页面。
单点登录实现Ajax登录
单点登录实现Ajax登录
单点登录系统开发
一、SSO(单点登录系统简介) 基本介绍 单点登录SSO(Single Sign On)就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉
[Java提问帖]没有源码怎么实现单点登录
有这么个问题想问下:项目经理提了一个需求:1公司的几个后台管理的项目,2没有源代码,3数据库也是分开的,但是想把他们做成单点登录 ,有没有什么好办法解决?已经踩过的坑先说下,想用httpclient模仿请求,但是cookie不能跨域,问题就无解了经理这么语重心长的跟我说的:先别急着说不行,先试试看,这个我虽然不懂得技术,但是不难,你要把它实现!(肯定语气)...
Android端单点登录的具体实现
单点登录指的是同一个账户(id)不能在一个以上的设备上登录对应的用户系统(排除web端和移动端可以同时登录的情况),例如:用户m在A设备登录并保持登录状态,然后又在B设备登录,此时A应该要强制下线,m无法在A设备上继续执行用户相关的操作服务端服务端需要集成Token,每次在app登录时为app分配新的token,如果在某次http请求中app传递token不是最新的,则视为需要重新登录(或者根据自己
NP完全问题的证明-算法概论课后习题8.15
题目: 证明如下问题是NP-完全的: 输入:两个图G1 = (V1, E1) 和G2 = (V2, E2) :预算b。 输出:两个节点集合V1’∈ V1 和V2’∈ V2和它们被移除后,将在两图中分别留下至少b个节点,且图的剩余部分完全一样 解析: 可将最大独立集问题归约到此问题,比如若要求任意图G(V, E)中大小为d的独立集,可以令G1 = (V, E),再令G2(V,∅)的顶点
web项目缓存配置及单点登录借助redis实现
最近项目在做多工程之间的缓存及单点登录时用到redis,心得总结如下: Redis 有三个主要使其有别于其它很多竞争对手的特点: Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的;  Redis相比许多键值数据存储系统有相对丰富的数据类型;  Redis可以将数据复制到任意数量的从服务器中;  Redis优点 异常快速 : Red
单点登陆同一个用户不同浏览器登陆处理
单点登陆,实现同账户登陆,会把上一个给挤掉代码,上一个操作时会给出挤掉的提示消息
两个独立项目之间的页面访问
1.将文件配置在web.config中 2.后台 public string Historyp= BRC.LibraryII.Configuration.GetWebConfigValue("Historyp"); 3.前台 ' target="_blank">页面预览 现有两个项目分别是a项目和b项目,现在要做的效果是在a项目中访问b项目中的
session共享和单点登录 springboot的实践和思考
我这两天公司需要一个收银台项目,让我写,我就直接把以前学的springboot搭建项目用上了,确实很方便,一个小时搭建完成。我就正常使用,没有问题 但是今天出现一个问题,同事说我需要在你这个项目中获得商城项目的用户信息,我就想到了session共享。 突然我想到了session共享和单点登录的区别: 特意去查询了一下: 个人感觉: 单点登录:就是在认证身份系统中进行登录,他的所有子系统(