webgate单点登录原理
项目代码 会不定期更新,之后会拆成 前段mvvm ,后端mvc 框架,如果需要持续关注的同学们,请打开链接后,点击 fork
项目地址:https://github.com/Wenhaoran/webgate
在用户登录系统后,生成一个随机数 ticket , 并 根据当前 账户登录信息,以及 当前账户的默认角色信息, 保存到全局 map中。
key = ticket ,value = 账户+角色。
查询当前角色对应的菜单按钮,并 拼接 菜单的 html 时,链接增加后缀 ?ticket = 刚才生成的随机数。
在点击菜单,访问系统时,请求会被拦截, 获取 项目名称(webgate),路径名称(/pages/component/form/index),ticket ,调用 接口,查询 当前 ticket是否存在。如果不存在,跳转登录界面,如果 ticket存在,则会验证,当前ticket 对应的角色,是否有权限,访问 当前项目的 当前路径,如果 没有权限,则 显示 权限不足界面,如果有权限,则显示正常界面。
至于 链接最后的 &pt_rtype=m ,是在 权限不足的时候进行判断,是否过滤此次请求,因为, 过滤器会拦截所有请求, 而 有些请求,是 执行查询语句,并不是请求页面,所以,应该进行选择性的拦截,&pt_rtype=m ,就是进行 选择性拦截控制。
下面粗略说代码实现,如需看具体实现,请去github下载代码:
CommonController login , 接收登录请求的方法,判断用户是否存在,用户名是否正确,生成ticket 的方法,并把当前账户的,角色,等等信息放到session中。
PermissionFilter doFilter ,拦截所有请求,获取 项目名,路径,以及 ticket ,调用接口,判断是否有权限。
RestController 整个controller 所有方法,均为接口方法, 其中 getPermissionsBak 方法,为验证权限的方法。
Service 中的 WebMenuList 类,为,拼接 菜单html类。
webgate单点登录原理相关推荐
- cas跨域单点登录原理_CAS实现SSO单点登录原理
1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...
- CAS单点登录原理简单介绍
1. SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统. ...
- SSO单点登录原理剖析
转载于:http://www.cnblogs.com/gxbk629/p/4473569.html CAS实现SSO单点登录原理 1. CAS 简介 1.1. What is CAS ? ...
- 10.单点登录原理及JWT实现
单点登录原理及JWT实现 一.单点登录效果 首先我们看通过一个具体的案例来加深对单点登录的理解.案例地址:https://gitee.com/xuxueli0323/xxl-sso?_from=g ...
- java单点登录跨域_深入浅出让你理解跨域与SSO单点登录原理与技术
原标题:深入浅出让你理解跨域与SSO单点登录原理与技术 一:SSO体系结构 SSO SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互 ...
- [转]单点登录原理与简单实现
一.单系统登录机制 1.http无状态协议 web应用采用browser/server架构,http作为通信协议.http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关 ...
- cas单点登录原理碎碎念
2019独角兽企业重金招聘Python工程师标准>>> 也许有一天,你去面试,当面试官问你做cas的经验的时候,你会怎么描述? cas单点登录的原理? 单点登录是分为基于sessio ...
- CAS教程-第一篇-CAS单点登录原理解析
转载自:http ://www.cnblogs.com/lihuidu/p/6495247.html 1,基于饼干的单点登录的回顾 基于Cookie的的单点登录核心原理: 将用户名密码加密之后存于饼干 ...
- (SSO)单点登录原理和总结
一:什么是单点登录(single Sign-On) SSO 是一种统一认证和授权机制,指访问统一服务器不用应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后, 再访问其他应用中 ...
最新文章
- 使用CSS隐藏HTML元素的4种常用方法
- SilverLight学习笔记--建立Silverlight自定义控件(5)--绑定动画效果
- 2003服务器系统屏蔽广告,电脑总是乱弹广告弹窗?教你彻底关闭
- linux进程--虚拟地址空间布局(十一)
- 基于OpenCL的深度学习工具:AMD MLP及其使用详解
- shell的基础学习
- python 读取txt文件没读到400行_400行Python代码实现文语处理助手(3) - 音频显示-嵌入式系统-与非网...
- mysql根据语句自动实现索引_mysql 语句的索引和优化
- 2k2实用球员_2KOL2王朝不知道用谁?五大位置低价实用球员大解析!
- 鸿蒙系统下载地址_华为鸿蒙系统下载
- 斗鱼直播实时数据爬取
- WiFi技术简述与发展
- 【服务器数据恢复】服务器raid5磁盘阵列分区丢失的数据恢复案例
- try catch promise.reject
- linux分析rna-seq,RNA-seq 分析流程(一)linux部分
- 软件测试人才培养全景图新版本
- linux网卡加vlan标签,如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡
- 没有项目管理经验,怎么报考PMP?
- 2021最热门的后端编程语言排行榜出炉!
- 计算机电脑Windows系统中了faust勒索病毒,phobos勒索家族介绍,Windows用户注意