您的位置:首页 > 其它

单点登录和权限系统结合注入到自己的系统中

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访问,他不能访问到的地址,会返回一个错误的没有权限的友好提示。

注:本篇博客仅仅是顺顺自己的思路,勿喷~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐