权限设计javaweb
2010-11-22 11:13
141 查看
权限是企业应用中常见限制关系,比如说有项目,成员两种类,成员对项目的权限不一,对不同项目还有不同权限,怎么设计这样的系统呢?
对于这样的系统一种常见的处理方式是固化,就是按等级给定权限,比如部门经理拥有所有项目的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
对于这样的系统一种常见的处理方式是固化,就是按等级给定权限,比如部门经理拥有所有项目的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
相关文章推荐
- java web 权限管理系统设计与实现
- javaweb 项目的系统权限管理,怎么设计?shiro简单了解
- Java Web角色权限设计
- Java Web角色权限设计
- JavaWeb 案例——访问权限控制
- 基于web信息管理系统的权限设计分析和总结
- 【《深入解析Java Web技术内幕》学习思维导图】第13章 Spring框架的设计理念与设计模式分析
- IT书籍力荐--安全 WEB设计 软考 计算机等级考试 JAVA技术2
- Java实现权限管理-项目设计
- java项目 用户权限设计篇
- 【简记】Java Web 内幕——NIO,IO调优,IO设计模式
- Java Web开发之一:用好的技术设计来犒赏自己
- JavaWeb项目开发案例精粹-第3章在线考试系统-001设计
- java &|~<< 位运算设计权限代码!查询权限、增加权限、删除权限
- JAVA_WEB设计模式4
- java web设计中 使用接口的好处
- JAVAWEB开发之Servlet3.0新特性的使用以及注解的详细使用和自定义注解的方法、动态代理的使用、利用动态代理实现细粒度的权限控制以及类加载和泛型反射
- Java Web 开发环境搭建与数据库设计1
- java用户角色权限设计