单点登录和权限系统结合注入到自己的系统中
2014-07-16 10:54
239 查看
最近在弄单点登录和权限管理系统相结合,放入到自己的系统中。单点登录采用CAS框架,而权限管理,据所知对于权限管理的开源框架也很多,不过公司自己写的权限管理框架,为了让其他的系统能很好的和这个权限管理系统对接,权限管理只是针对其他系统的菜单和按钮进行控制,通过控制其他系统菜单和点击菜单下的按钮隐藏和显示来控制权限,缺点是针对具体的某个系统从功能上的某些方面控制权限是十分的困难的。
如何让系统对接上CAS和权限管理系统呢?
在这里使用的是Filter进行过滤控制,就像进入家门需要几道门,大门的门禁,二门的门禁,然后是自己家的门。所以这第一道门就是CAS,如果用户没有登录权限就别说其他的权限了,所以第一个filter是针对CAS的,包括CAS
登录系统,CAS登出系统,CAS票据验证;第二个Filter是权限管理系统的filter,通过这个fiter,查看用户是否有url来判断用户有怎样的权限,是不存在的用户,还是只读用户,还是可读可写用户。
那具体的实现流程?
对于CAS就不再赘述了,网上有很多这样的文章,笔者也实现了CAS单点登录,可以修改CAS的登录页面,也定制了自己的登录登出页面,有些不足之处需要改正。对于CAS能跟着文档进行操作,但是形成思想写下来,行文流水还是有些困难,在后续的研究中会继续写CAS的博文。
对权限管理系统和其他系统对接?
大脑内存小,想了想也难以能一下子说出来,就画了这样一张图,算是最原始的涂鸦吧。
1 首先是系统要使用权限管理系统,需要在权限系统中录入该系统的标识,如testSystem2.0;之后建立系统角色,建立角色时可选择角色属于哪个系统,在选择属于哪个系统的时候,可以选择该系统下的所有的菜单和按钮;角色建立完毕,便可以建立用户组,一个用户组可以选择一个系统,
同时可以选择属于这个系统的哪个角色;新建用户,那么这个用户只能属于某一个系统的其中的一个角色, 不能选择同时一个系统的多个角色。
2 登录vms的时候,用户名和密码在cas上进行验证,验证输入的用户名和密码是否正确,也就是第一个filter过滤。
3 验证用户名密码成功后, 进行第二个filter过滤,根据用户名和系统标识可以在权限管理系统中找到,权限管理系统会返回一个json串给vms。vms取得后解析json成为html格式的,显示在左侧的菜单栏。对于buttons来说vms存放到自己的session中一份,vms中定义
一个a标签的的隐藏格式, 取得buttons的url, 再取得所有的button对象,和url中对比,存在的则显示,不存在的则隐藏该按钮对象。
4 对于权限的filter,如果用户通过输入url访问,他不能访问到的地址,会返回一个错误的没有权限的友好提示。
注:本篇博客仅仅是顺顺自己的思路,勿喷~
如何让系统对接上CAS和权限管理系统呢?
在这里使用的是Filter进行过滤控制,就像进入家门需要几道门,大门的门禁,二门的门禁,然后是自己家的门。所以这第一道门就是CAS,如果用户没有登录权限就别说其他的权限了,所以第一个filter是针对CAS的,包括CAS
登录系统,CAS登出系统,CAS票据验证;第二个Filter是权限管理系统的filter,通过这个fiter,查看用户是否有url来判断用户有怎样的权限,是不存在的用户,还是只读用户,还是可读可写用户。
那具体的实现流程?
对于CAS就不再赘述了,网上有很多这样的文章,笔者也实现了CAS单点登录,可以修改CAS的登录页面,也定制了自己的登录登出页面,有些不足之处需要改正。对于CAS能跟着文档进行操作,但是形成思想写下来,行文流水还是有些困难,在后续的研究中会继续写CAS的博文。
对权限管理系统和其他系统对接?
大脑内存小,想了想也难以能一下子说出来,就画了这样一张图,算是最原始的涂鸦吧。
1 首先是系统要使用权限管理系统,需要在权限系统中录入该系统的标识,如testSystem2.0;之后建立系统角色,建立角色时可选择角色属于哪个系统,在选择属于哪个系统的时候,可以选择该系统下的所有的菜单和按钮;角色建立完毕,便可以建立用户组,一个用户组可以选择一个系统,
同时可以选择属于这个系统的哪个角色;新建用户,那么这个用户只能属于某一个系统的其中的一个角色, 不能选择同时一个系统的多个角色。
2 登录vms的时候,用户名和密码在cas上进行验证,验证输入的用户名和密码是否正确,也就是第一个filter过滤。
3 验证用户名密码成功后, 进行第二个filter过滤,根据用户名和系统标识可以在权限管理系统中找到,权限管理系统会返回一个json串给vms。vms取得后解析json成为html格式的,显示在左侧的菜单栏。对于buttons来说vms存放到自己的session中一份,vms中定义
一个a标签的的隐藏格式, 取得buttons的url, 再取得所有的button对象,和url中对比,存在的则显示,不存在的则隐藏该按钮对象。
4 对于权限的filter,如果用户通过输入url访问,他不能访问到的地址,会返回一个错误的没有权限的友好提示。
注:本篇博客仅仅是顺顺自己的思路,勿喷~
相关文章推荐
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(19)-权限管理系统-用户登录
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(19)-权限管理系统-用户登录
- MSSQL db_owner角色注入直接获得系统权限- -
- db_owner角色注入直接获得系统权限
- 利用已有数据库配合ASP.NET2.0内置用户 角色 授权系统打造自己的权限分配程序(2)
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现统一身份认证(Single Sign On,单点登录)附源码
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多个子系统的单点登录(网站入口方式)附源码
- msSQL注入通杀,只要有注入点就有系统权限
- 学焊接专业的编程爱好者应用好通用权限管理系统写出了自己工作中需要的小软件
- 解决Linux系统下以PL/SQL工具以sysdba登录报ora-01031权限不足问题
- 通用权限管理系统与国标的结合之路
- 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分布式管理(每个公司管理每个公司自己的数据)
- MSSQL db_owner角色注入直接获得系统权限
- 分享一下自己动手做出来的后台权限管理系统
- 用Adapter模式重构以前系统的登录权限验证
- 利用已有数据库配合ASP.NET2.0内置用户 角色 授权系统打造自己的权限分配程序(1)
- dbowner提权,只要有注入点就有系统权限
- MSSQL db_owner注入获得系统权限
- 为什么登陆不上WIN 7系统的电脑?提示无权限,登陆失败,未授权用户在计算机上请求登录
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中后一个登录的把前一个登录的踢掉功能的实现