XXL-SSO分布式单点登录框架-Cookie逻辑解析
Posted IT-老牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XXL-SSO分布式单点登录框架-Cookie逻辑解析相关的知识,希望对你有一定的参考价值。
文章目录
1.XXL-SSO登录逻辑
代码逻辑描述
- 访问pro.com,获取pro.com域的cookie(xxl_sso_sessionid,由userId_随机数码组成)为空,从请求参数获取cookie为空;
- 获取用户信息为空,重定向sso服务;
- sso服务,获取sso.com域cook’ie为空,获取用户信息为空,跳转登陆页
- 登录页输入用户名密码登陆,登陆成功,
1、创建用户对象,
2、创建sessionid(userId_user版本号),
3、response设置cookie,
4、radis设置key(xxl_sso_sessionid,#,usrid组成),用户对象, 失效时间
- 重定向pro.com?xxl_sso_sessionid=xxl_sso_sessionid;
- 获取pro.com域的cookie(xxl_sso_sessionid,由userId_随机数码组成)为空,从请求参数获取cookie,根据cookie查询raids获取用户对象;
- 如果当前时间超过刷新时间一半的时候,重新设置radis数据的有效时间;设置pro.com,cookie值
- 跳转请求页面;
- 访问pro1.com,获取pro1.com,cookie以及url参数cookie失败,获取对象失败,重定向sso.com服务
- sso服务,获取sso.com域cook’ie,根据cookie查询raids获取用户对象
- 重定向pro1.com?xxl_sso_sessionid=xxl_sso_sessionid;
- 后面逻辑与6,7,8相同
- 再次访问pro.com,pro1.com,只需要验证本域下的cookie;
2.XXL-SSO注销逻辑
代码逻辑
- 用户注销pro.com,销毁pro.com下的cookie;重定向sso.com,销毁sso.com下的cookie,删除radis下的用户信息,跳转登录页。
- 用户访问pro1.com,从pro1.com下获取cookie,从raids查询用户信息失败,无法返回用户信息登陆失败,重定向sso.com服务,获取sso.com域下cookie失败,从raids查询用户信息失败,跳转登陆页。
cookie可能会受到防跨站请求伪造(CSRF)攻击,token可以解决这个问题
举个CSRF攻击的例子,在网页中有这样的一个链接
(http://bank.com?withdraw=1000&to=tom),假设你已经通过银行的验证并且cookie中存在验证信息,同时银行网站没有CSRF保护。一旦用户点了这个图片,就很有可能从银行向tom这个人转1000块钱。
但是如果银行网站使用了token作为验证手段,攻击者将无法通过上面的链接转走你的钱。(因为攻击者无法获取正确的token)
以上是关于XXL-SSO分布式单点登录框架-Cookie逻辑解析的主要内容,如果未能解决你的问题,请参考以下文章