论坛首页 Java企业应用论坛

一个简易实用的web权限管理模块的应用与实现

浏览 99825 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-12-25  
加油!期待可以看到更为出色的表现.
0 请登录后投票
   发表时间:2008-12-25  
我想说明的是,用户的权限不能在后台只简单地看成对数据库操作的权限,还应该包括信息以及应用功能模块的使用.如果是门户网站,还应考虑对其他接入系统的接口支持,可能是不同厂商也可能是不同的技术包括非JAVA语言编写的应用.
0 请登录后投票
   发表时间:2008-12-25  
hanjs 写道
这个只是功能权限上,如果全面的话,最好也支持user与function直接关联。

因为有的时候,一个人与其他人都是同一个role,突然要给这个人多增加个菜单,要怎么办?如果新增一个角色,对于一个人还可以,如果是多个人呢而且是新增不同的菜单?这样管理起来很麻烦。

好的功能管理还应该提供复制、对换的功能



user与function直接关联并不难实现,增加一个FUNCTIONS字段即可。
这是个相对简易的权限管理模块,在文中已经说过,并没有实现菜单的管理。我觉得菜单结构与功能模块的结构应该是分开管理的,但是他们可以有映射关系。
0 请登录后投票
   发表时间:2008-12-25  
yuxiaoxu 写道
我想说明的是,用户的权限不能在后台只简单地看成对数据库操作的权限,还应该包括信息以及应用功能模块的使用.如果是门户网站,还应考虑对其他接入系统的接口支持,可能是不同厂商也可能是不同的技术包括非JAVA语言编写的应用.


这里用户的权限并不是狭义的“对数据库操作的权限”,本质上是对web访问点(可以理解为访问路径)的控制。完备的权限管理系统对于“资源”和“功能”的管控是分开的。前者可能细化到某些静态的文档、资料等信息的管理。
对其他接入系统的接口支持,我觉得归根到底也可以用解析web访问地址的方式来进行。
0 请登录后投票
   发表时间:2008-12-25  
Augustan 写道
Lucas Lee 写道
有个问题:
角色跟功能权限的关系没有描述啊?
实体关系图里也没有,界面里也没提及?

有提及:
四、角色(role):角色对应着某些功能(function)的集合,被分配一个角色意味着有权执行这些功能。角色表中的字段"functions"记录相关的功能id,id之间用逗号隔开。
这种联系无法在图中用箭头直接表述出来。
图片中那棵带选择框的树,就是为某个角色分配相应的功能。


哦。
但是界面上没有维护角色和功能关系的截图吧?
你这种用逗号分隔的方式,不符合数据库范式。还是少用为好。比如未来我如果要查某个权限分配给哪些角色了,你这个就麻烦了。注意,按字符串匹配是麻烦的,比如有角色A有权限a1,a11,a111,我查a1权限,如果直接按like就会匹配三个。
0 请登录后投票
   发表时间:2008-12-25  
Lucas Lee 写道
Augustan 写道
Lucas Lee 写道
有个问题:
角色跟功能权限的关系没有描述啊?
实体关系图里也没有,界面里也没提及?

有提及:
四、角色(role):角色对应着某些功能(function)的集合,被分配一个角色意味着有权执行这些功能。角色表中的字段"functions"记录相关的功能id,id之间用逗号隔开。
这种联系无法在图中用箭头直接表述出来。
图片中那棵带选择框的树,就是为某个角色分配相应的功能。


哦。
但是界面上没有维护角色和功能关系的截图吧?
你这种用逗号分隔的方式,不符合数据库范式。还是少用为好。比如未来我如果要查某个权限分配给哪些角色了,你这个就麻烦了。注意,按字符串匹配是麻烦的,比如有角色A有权限a1,a11,a111,我查a1权限,如果直接按like就会匹配三个。

    那棵选择框树,不就体现了角色和功能的关系么?在角色列表中,当点击某个角色的设置按钮(小钥匙图标)时,就会转到选择框树的页面。 该角色含有哪些功能,选择框前会打勾。当然也可以重新设置。
    以逗号隔开的方式存储主要是为了简化数据库设计,避免过多的表和表间关系,否则我们至少还要一个体现角色和功能之间关系的表。 理论正确虽然好,但也要见机行事。如果我并不常用权限来查角色,那这样也未尝不好。何况你讲的这个可以通过其他方式解决,比如在数据库端写一个分割字符窜的函数或者存储过程,化一条记录为多条,然后再查找就方便多了。而我目前使用的办法是利用hibernate的自定义用户类型,每个角色都有一个功能列表,反过来查还是比较容易的。
0 请登录后投票
   发表时间:2008-12-25  
很不错的东西,收藏了
0 请登录后投票
   发表时间:2008-12-25  
这是我看到比较完整的关于权限方面的文章了,不错。
0 请登录后投票
   发表时间:2008-12-25  
结合了rbac的吧,不错的啊,顶
1 请登录后投票
   发表时间:2008-12-25  
很好,以后用到的时候再仔细看看
1 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics