权限设计javaweb

来源:互联网 发布:手机能申请淘宝网店吗 编辑:程序博客网 时间:2024/05/18 01:49

权限是企业应用中常见限制关系,比如说有项目,成员两种类,成员对项目的权限不一,对不同项目还有不同权限,怎么设计这样的系统呢?

对于这样的系统一种常见的处理方式是固化,就是按等级给定权限,比如部门经理拥有所有项目的CRUD权限,项目经理只对自己的项目有CRUD权限,一般成员只有R权限,这样的设计不能完全反映现实的关系。只能用于非常僵化的场合。

实际上,项目,成员的关系类似于房间的门和人的关系,载它们之间加上钥匙一切都迎刃而解。

钥匙定义如下
class Key{
       int projectId;// 项目的唯一ID
       boolean create;
       boolean read;
       boolean update;
       boolean delete;
}

钥匙串定义如下:
class KeyBunch{
      Map  buch;// 里面放的钥匙的hashMap
      
      boolean isCanAccess(Project project){
           .....
      }
}

然后把钥匙串作为Member类的一个子项就可以了,Key由Project类生成,然后附加到Member类的KeyBunch中,其它函数可以根据情况书写.

这样,有了Key类和KeyBunch类,Project类和Member类的权限关系就变得合乎自然了,Project类和Member类也进一步解耦.

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chinayaosir/archive/2009/10/19/4697552.aspx

原创粉丝点击