浏览 6134 次
锁定老帖子 主题:又遇到了让人痛恨的权限控制问题
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-25
有谁有好的方法吗?通用的,可配置的,能够将权限验证和业务方法分离的解决方案 PS:我说的细粒度访问权限控制指的是类似这种情况,当我修改我自己的博客文章时,应用系统必须验证我是不是“我所要修改文章”的作者 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-10-26
所谓的
引用 但大多数这种权限控制都是和业务耦合很紧密的,很难分出来。
其实是没有把什么是业务,什么是权限划分好. 拿你的例子来说,修改文章是业务,至于是谁可以修改,那是权限的问题. 只存在"谁""修改文章"的问题,不存在"我""修改文章的问题" ACL,RBAC等的模型非常清晰,非常通用,如果你设计出来的权限模型和其有较大差别,那么你还需要继续苦读RBAC. |
|
返回顶楼 | |
发表时间:2006-10-26
你需要将你所谓的细粒度权限分析清楚。
就我的经验而言,权限一般分为两类: 1.功能权限。 针对某个一功能,是否能访问。比如此用户是否能访问读取客户资料的功能。这个权限比较基础,不是yes就是no,所以有人又称Y/N权限。 2.数据权限。 在允许访问某一功能权限的基础上,控制可访问的数据范围。比如用户能访问读取客户资料的功能,但他只能访问本人录入的,或分配给本部门的客户资料。(楼主所指就是这种情况) 我自己开发了一个权限管理系统,对于功能权限,是可配置的,这一点跟JAAS在web.xml配置是类似的;对于数据权限,我采用可插入的SQL过滤条件来处理。(我以前所在的项目的经验证明,如果在读取出所有数据再一条条检查权限,性能会很差。) |
|
返回顶楼 | |
发表时间:2006-11-27
Lucas Lee 写道 你需要将你所谓的细粒度权限分析清楚。 可插入的SQL过滤条件?怎么实现的,通过sql拼装吗?
就我的经验而言,权限一般分为两类: 1.功能权限。 针对某个一功能,是否能访问。比如此用户是否能访问读取客户资料的功能。这个权限比较基础,不是yes就是no,所以有人又称Y/N权限。 2.数据权限。 在允许访问某一功能权限的基础上,控制可访问的数据范围。比如用户能访问读取客户资料的功能,但他只能访问本人录入的,或分配给本部门的客户资料。(楼主所指就是这种情况) 我自己开发了一个权限管理系统,对于功能权限,是可配置的,这一点跟JAAS在web.xml配置是类似的;对于数据权限,我采用可插入的SQL过滤条件来处理。(我以前所在的项目的经验证明,如果在读取出所有数据再一条条检查权限,性能会很差。) |
|
返回顶楼 | |
发表时间:2006-11-28
写两条SQL语句
其中一条是由AOP注入的...(如果不可用就返回失败...) 另一条是现实的SQL... |
|
返回顶楼 | |
发表时间:2006-12-01
也同意权限分控制权限和数据权限,目前我作的项目就这么作的,用自定义标签来生成 增加、编辑、删除、查询的按钮;
在查询的过程中再调用公共的类来判断他的查询数据范围; |
|
返回顶楼 | |
发表时间:2006-12-01
问题的关键是数据权限如何设计?特别是需要动态调整数据权限的时候
|
|
返回顶楼 | |