基于Struts+Hibernate的Web项目权限设计(1)

 

在系统的设计和应用中权限管理是不可缺少的一部分。随着系统的越来越复杂,使用系统的用户越来越多,对权限管理的设计和实现也要求越来越灵活。在我做的一个基于Struts+hibernateWeb应用中就遇到了这个问题。

在解决这个问题之前,我在网上搜索了相关的资料,有很多前辈提出了很好的解决方案和实现过程。可以参考如下网址的讨论内容:

http://info.tlw.cn/16054.htm

http://blog.csdn.net/fswan/archive/2004/11/02/164063.aspx

http://dev.csdn.net/Develop/article/21/21673.shtm

http://www.jdon.com/jive/article.jsp?forum=46&thread=10122

http://tech.ccidnet.com/pub/article/c1077_a74011_p1.html

 

 

 

下面简单说明一下我做的项目的架构(这里假设您对Struts开发已经有一定的了解):系统中使用**PreAction**ProcessAction类继承了strutsAction类,作为此系统的基类,所有需要使用Action类的地方都从这两个类进行派生,**PreAction类用于初始化页面,**ProcessAction用于处理页面的请求,而且每个页面都必须由**PreAction入,从**ProcessAction出,不允许直接访问Jsp页面。

结合我做的项目,我对权限设计进行了如下的划分:

1:)权限代码

在此系统中,我为每个功能点指定一个权限代码,这些功能点是系统可以完成的具体功能,例如页面上的每个链接和按钮它所执行的操作——添加、删除、修改、浏览、查询等功能。功能点和权限代码一一对应。它不同于资源,因为一个功能它可能利用了很多的资源。

 

 

 

2:)角色

它是权限代码的集合。例如系统管理员的角色,它可以拥有所有的权限。来宾的角色它拥有部分供来宾访问的权限。

角色与角色之间没有继承或依赖的关系,它们是并行的。

 

 

 

3:)用户组

它是角色的集合,一个用户组至少包含一个角色,同时也可能包含多种角色。例如,领导组可能包含来宾角色、普通用户角色等。用户组之间没有继承或依赖关系。

 

 

 

4)用户

用户隶属于某个或多个用户组。该用户拥有它隶属的用户组的所有权限,如果它属于多个用户组,那么它包含的权限是用户组权限之和。

 

 

 

按照上面的概念和原则进行了数据库的表设计:

PERMISSION——权限表

ROLE——角色表

ROLEPERMISSION——角色权限对应关系表

GROUP——用户组表

GROUPROLE——组角色对应关系表

USERGROUP——用户组的对应关系表

注意:用户表不再图中。

(未完待续。。。。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值