【单点登录】java实现完全跨域SSO单点登录

本文详细介绍了如何使用Java实现SSO(Single Sign On)单点登录,包括SSO的概念、实现思想、登录和退出流程,以及解决跨域问题的方法。通过创建统一验证中心,利用JWT进行用户信息加密,实现一处登录,全部访问的功能。
摘要由CSDN通过智能技术生成

【转自】https://blog.csdn.net/zhangjingao/article/details/81735041

java实现SSO

什么是SSO

SSO(Single Sign On)单点登录是实现多个系统之间统一登录的验证系统,简单来说就是:有A,B,C三个系统,在A处登录过后,再访问B系统,B系统就已经处于了登录状态,C系统也是一样。举个生活中栗子:你同时打开天猫和淘宝,都进入login界面,都要求你登录的,现在你在淘宝处登录后,直接在天猫处刷新,你会发现,你已经登录了,而且就是你在淘宝上登录的用户。说明他们实现了SSO,并且持有相同的信息。

当然这个特性意味着它的使用场景是:同一公司下的不同子系统,因为对于SSO来说,每一个子系统拥有的信息都一样,是用户的全部信息,如果是不同公司,那这肯定不合适。现在的天猫和淘宝就是这样的一套SSO。

实现思想

SSO简单来说就是一句话:一处登录,全部访问。
现在有两个系统分别是:a.comb.com,我们要实现他们的SSO,那么我们就需要一个统一验证中心sso.com,我们所有的登录和身份验证都在sso.com中操作。看图看传统登录方式和SSO方式的差别如下:
传统与SSO方式对比

我们需要将统一信息存在cookie中。

登录部分:

在用户第一次访问a.com时,到达a.com的服务器,服务器请求sso.com/ssocheck验证,验证失败,a.com的服务器到达login界面,用户在login界面输入用户名和密码,到达a.com的服务器,请求sso.com/login验证,验证通过生成token(包括用户登录信息),然后携带token和所有子系统路径返回a.com的服务器,a.com的服务器到达首页,同时请求自己和所有子系统的addcookie方法,将token添加到自己的cookie中。
在用户访问b.com时,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值