posts - 193,  comments - 520,  trackbacks - 0

一、             考虑实现

1、  系统权限考虑继续采用原先实现方式,在构造功能树和树状菜单时作出权限判断;

2、  数据库操作权限考虑应用 Acegi 扩展,在业务层对相应的浏览 / 增加 / 修改 / 删除的业务方法进行拦截;

3、  行级数据权限考虑采用 AOP 的方式在用户访问相关资源时根据用户权限动态构造 SQL 注入到业务方法里,再由业务方法传递到 DAO 里;

4、  列级数据权限考虑做入页面,这里不再讨论。

5、  大集中模式下的权限管理,本质也是行级数据权限,即在每次数据访问时都需要强制判断用户所属部门 Group

一、 权限管理详细解决方案

用户、用户组、角色设计如下:
Image00000.bmp

Principal 即为权限主体

1、  系统权限授权

web 页面:

页面上显示两棵树:左侧显示用户、用户组和角色树,右侧显示功能模块树,功能模块树的节点上跟两个复选框,分别是可见 / 可再授权。点击用户、用户组和角色树上的节点对相应权限主体进行授权。

很显然可再授权权限包含可见权限。

数据库实现:

ACL 实现,表设计如下:

资源 ID ,权限主体 ID ,权限主体 TYPE ,资源 TYPE ,资源操作权限,条件查询语句 queryStr

说明:

权限主体 TYPE  三种: user/group/role

资源 TYPE         两种: function/method  此时对系统权限来说是 function

条件查询语句 queryStr    数据范围控制   此时对系统权限该字段无效

对象:
Image00002.bmp

用户保存授权信息时,先删除该权限主体 ID 的授权记录,再更新。

2、  数据库操作权限授权

这里引入一个新的对象:数据库操作资源对象   DataResource

表设计如下:

ID NAME parentId resStr resType desc

说明如下:

ID

NAME 资源名称 例如:新增用户

parentId

resStr  业务方法地址 例如: com.way.sevice.UserService.addUser

resType 资源类型,分两种: abstract/detail  抽象 / 具体

desc  描述说明

例子:

对用户管理进行数据库操作权限授权

新建“用户管理”做父节点,选择资源类型为“抽象”

在“用户管理”下再依次新增“新增用户”、“浏览用户”、“修改用户”、“删除用户”四个子节点,选择资源类型为“具体”

如果系统自己来判断存储就是叶子节点是“具体”,其他为“抽象”

web 页面:

页面上显示两棵树:左侧显示用户、用户组和角色树,右侧显示数据库操作资源对象树,数据库操作资源对象树的叶子节点的一级父节点上跟一个数据范围限定 button ,点击后弹出窗口输入限定条件;叶子节点上跟一个复选框。点击用户、用户组和角色树上的节点对相应权限主体进行授权

授权信息存入 ACL 表中

资源 TYPE method

3、  行级数据权限授权

已在上面做了说明即数据范围限定

4、  大集中模式下的权限授权

其实所谓大集中模式控制的也不过是数据范围,考虑是所有相关表全部增加 groupId 字段,新增时添入该字段,读出时进行判断

web 页面:

“组织和用户管理”模块中,每个组织中都允许设定一个管理员,一旦设定管理员,该组织就进入大集中模式,即所有该组织的数据与其他同级组织互相隔离,仅上级组织可见。同时说明一点的是:该管理员与系统总的管理员权限一样,不同的是数据范围仅限制与该组织内部。

综述:

实际的授权部分采用了 ACL ,所以授权比较简单和直观

系统资源和数据库操作资源分开两个表存储,这样可能会给用户带来不便,也就是授权时还需要切换,但这种不便似乎不好解决,因为一个是粗粒度的一个是细粒度的。

Image00001.bmp



http://www.blogjava.net/ronghao 荣浩原创,转载请注明出处:)
posted on 2006-07-06 17:47 ronghao 阅读(3000) 评论(0)  编辑  收藏 所属分类: 权限相关

只有注册用户登录后才能发表评论。


网站导航:
 
<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

关注工作流和企业业务流程改进。现就职于ThoughtWorks。新浪微博:http://weibo.com/ronghao100

常用链接

留言簿(38)

随笔分类

随笔档案

文章分类

文章档案

常去的网站

搜索

  •  

最新评论

阅读排行榜

评论排行榜