J2EE中的用户权限模型(RBAC)的设计

 
J2EE 中的 用户权限模型 (RBAC) 的设计
本文的读者对象
假定您是一个开发人员, 并且有 J2EE 的开发经验, 同事对关系型数据库有一些了解, 你还必须了解一些关于 servlet filter 的应用。
 
您是否经常在做同一个轮子
所有写过 B/S 应用的人, 都会遇到一个问题, 就是如何实现一个用户登录, 判断这个用户的权限是否可以做某一个操作, 再深入一点, 我们可以还要计算这个用户对一个事务的操作必须是在某一个范围里面, 譬如对用户的管理是只能管那些官职是处级干部等, 你是否在多个项目里面, 每次都碰到大体一致的需求, 而您还在每次都想设计出一个通用的用户模型?但是每次都不得不重新编码来适合一个新的项目奇怪的用户权限需求?
 
分析问题
我接下来以一个例子来说明这个模型的设计思想,假设我们在做一个学校的信息管理系统,我们的使用者有学生:祝英台(美术系) 和梁山伯(哲学系) 老师, 唐伯虎 (美术系)和秋香(哲学系) 还有两个系主任, 一个吴孟达(美术系系主任), 一个是周星星,还有一个校长(督学):周润发 还有一个学校信息中心的主任 就叫做张朝阳吧, 他最喜欢搞 IT 了。
假设: 对用用户权限这个“轮子”(因为我也在写已经很多前辈写过的文章)包含一下的东西:
用户
User
角色
Role
业务对象
Business
操作
Operator
范围
Score
 
用户就是我们的使用者:祝英台,梁山伯,唐伯虎,秋香,周星星等
角色就是系统里面设置一种岗位, 譬如例子里面的学生, 教师和系主任和校长
业务对象:如课程管理是一个业务对象
操作: 是指和一个业务对象有关系的操作, (课程)查询(课程)增加, (课程)删除等
范围:是最难的一个部分, 只得是具体的一个业务和操作所可以管辖的范围, 譬如对于吴孟达先生, 他是美术系系主任, 他可以操作美术系的课程, 他老人家可能最喜欢管理的是人体素描, 艺术人体摄影这些课程, 而周星星管理的是哲学, 他可以管马克思主义哲学,社会主义经济学等, 而周润发是个老江湖, 他什么都可以管。
 
 
好了, 我们 就课程内容管理来 列一张表描述一下权限
 
角色
权限
范围
学生
查看课程内容
自己选择的课程
教师
添加,删除,查看, 修改自己的课程
查看其他教师课程
自己教授的课程
系主任
添加,查看,删除 修改自己的课程
查看本系其他教师课程
查看其他系的课程
在本系是完全权限
 
校长(督学)
查看所有的课程
具有完全权限
管理员
查看所有的课程
具有完全权限
 
表格模型
 
l        User 用户信息存放, 主要是 UserId password
l        Roles 角色信息
l        UserRole 用户属于什么角色, 一个用户可以是多个角色
l        Business 业务表 对应 RBAC 中的资源
l        Opeartions 操作表
l        Popedom 权限表
l        RolePopedom 角色具有什么权限的表格 这个表格中的 ScopString 记录了这个角色的默认范围
l        UserPopedomScope :当一个用户的某一个权限, 偏离了角色的默认权限范围, 可以在这个地方进行定义
l        URLAccess :对应的 Jsp ServLet 的访问权限, 如果一个页面需要权限 Id=PId1 Id=Pid2 来访问, 则可以写成 Pid1&PId2 如果是 Pid1||Pid2 则标识主要其中一个权限即可。
 

 


 

 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值