论坛首页 Java版 企业应用

权限管理角色优先级问题

浏览 6457 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-07-14
建议参考acgei的投票策略: 一个用户有几种角色,是否要全部满足才拥有权限,还是只要有一个满足就拥有权限。
   
0 请登录后投票
最后更新时间:2008-07-14
这个和自身需求有关,你可以取and关系,也可以取or关系。
   
0 请登录后投票
最后更新时间:2008-07-14
dianthus 写道
为安全起见,遵循权限最小原则
   
0 请登录后投票
最后更新时间:2008-07-14
这个应该根据客户的业务需求而定,谁给钱听谁的
   
0 请登录后投票
最后更新时间:2008-07-14
问题简单化:不要拒绝权限.
   
0 请登录后投票
最后更新时间:2008-07-15
这关角色什么事,分明是某个资源上某项操作所代表的权限的优先级么?
就好比apache里的
    <Directory "d:/webroot">
        Order Allow,Deny
        Allow from all
        Deny from 192.168.1.119
    </Directory>
你把他改成Order Deny,Allow,意义就完全不同了。
zisidemao 写道
角色管理中设计角色优先级的问题不是很明白例如:
角色1对资源A有删除权限
角色2对资源A没有删除权限

用户1同时拥有角色1和角色2,这时用户1应该对资源A到底有没有删除权限呢?

现在有2种说法
1.是用户1应该有删除的权限,用户1的权限是角色1和角色2的综合碰到冲突后认为都有权限.例如:
涛哥=用户1
人大代表=角色1
军委主席=角色2
资源=调动军队
人大代表没有调动军队的权限,而军委主席有调动军队的权限,则涛哥有调动军队的权限

2.是应该在role表中加一个优先级,在提取权限时判断用户1的角色1和角色2哪个优先级高,如果角色1优先级高则有删除权限,角色2优先级高则无删除权限.

我对这里的这个优先级的概念不是很清楚,那位朋友具体做过这方面的东西可以讲讲么?


“角色2对资源A没有删除权限”不是指“角色2对资源A具有不允许删除的权限”,你这个例子里根本没有这种冲突。如果要优先级,或者说“互斥”,应该是在“权限”上面作处理,而非角色,角色只是具有某一组权限集合的称谓。
   
0 请登录后投票
最后更新时间:2008-07-15
你也说了角色1只是没有删除的权限,又不是反对删除,一用户多角色是很正常的
   
0 请登录后投票
最后更新时间:2008-07-15
我觉得一个用户拥有多个角色的情况,检查权限的时候应该是对每个角色进行检测,直到有一个角色拥有该权限或者全部角色都检测完为止。
   
0 请登录后投票
最后更新时间:2008-07-15
zisidemao 写道
角色管理中设计角色优先级的问题不是很明白例如:
角色1对资源A有删除权限
角色2对资源A没有删除权限

用户1同时拥有角色1和角色2,这时用户1应该对资源A到底有没有删除权限呢?

现在有2种说法
1.是用户1应该有删除的权限,用户1的权限是角色1和角色2的综合碰到冲突后认为都有权限.例如:
涛哥=用户1
人大代表=角色1
军委主席=角色2
资源=调动军队
人大代表没有调动军队的权限,而军委主席有调动军队的权限,则涛哥有调动军队的权限

2.是应该在role表中加一个优先级,在提取权限时判断用户1的角色1和角色2哪个优先级高,如果角色1优先级高则有删除权限,角色2优先级高则无删除权限.

我对这里的这个优先级的概念不是很清楚,那位朋友具体做过这方面的东西可以讲讲么?



我觉得:

没有删除权限的角色就不考虑。有权限就操作。几个角色对应一个人就看这个角色集合拥有的权限了,而不考虑他没有什么权限。

你的问题是:把“不能删除”考虑为一种权限。我觉得多余。
   
0 请登录后投票
最后更新时间:2008-07-15
acegi中使用投票策略来控制。
常用的有3种投票策略,

1.所有投票人中,有一个同意则通过。
2 所有投票人中,过半同意则通过。
3.所有投票人中,全部同意才通过。

角色1对资源A有删除权限
角色2对资源A没有删除权限

角色作为投票人存在。
用户1同时拥有角色1和角色2对其进行投票,在策略1中,用户1有删除权限,因为有一个投票通过。在策略2中,无删除权限,因为没有过半。在策略3中,无删除权限,因为有一个反对。
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐