j2ee设计 权限管理
PDM系统客户端用户身份的识别与验证是PDM系统安全的门户,合法用户的权限分配与管理是PDM系统信息安全的关键.从PDM系统权限管理的方面给出了一个设计实现方案:首先借助...
PDM系统客户端用户身份的识别与验证是PDM系统安全的门户,合法用户的权限分配与管理是PDM系统信息安全的关键.从PDM系统权限管理的方面给出了一个设计实现方案:首先借助UML对系统进行分析和建模;然后给出了基于J2EE和Web结构的系统实现案例.
谁有案例? 展开
谁有案例? 展开
1个回答
2013-04-16
展开全部
不知大家在做项目时是否遇到我同样的问题,这就是如何控制整个系统的权限。权限控制起来有粗有细,有的按模块分配权限,稍好点也就是定死几个权限操作来分配,然而又几乎没有通用的权限系统可以使用,往往要做新项目时,为了省时省力,就只好将那个又老又笨的权限控制模块搬来搬去了。
所以,我希望做一个功能强大而且部署简单类似于组件式的权限管理系统,设计也早有了腹稿,只是苦于一直没有时间(好像这是懒人的惯用借口J)。最近终于逮着机会可以稍作休整,可以安心地将设计重新修改,并将它付诸实现了。
闲话不多说,先简要介绍一下该权限管理系统的特点,该系统采用了struts1.1+tiles+Oracle9i的架构,其中的权限树用到了DTree。功能上做到了灵活授权,操控细致,权限可以细到按钮及超链级别(需要配合扩展的struts标签),而且部署简单,下面谈谈我自己的设计经验。
该系统主要功能如下:
1、 自定义操作动作(如增加、删除、修改、审核等,不再是以前见过的那种粗粒度的按模块分配权限,或者稍微先进点的规定死某几个操作了)。
2、 无限级功能模块管理,自定义模块排序,可以更好地对整个系统中所有模块进行分类管理。
3、 灵活地为各模块分配操作,即每个模块有哪些操作需要被控制(将步骤1中添加的操作按需分配给各模块)。
4、 对所有用户基础信息进行管理,实行有效期机制,过期自动失效,在有效期间亦可强制停止用户使用。
5、 自定义角色,可以起个听起来通俗易懂的名字。
6、 任意角色可任意组合系统权限功能点(比如某个模块里他只能修改数据而不能添加或删除等其它操作)
7、 一个用户可有多个角色(多身份),一个角色也可以被多个用户拥有(同身份)(多对多),灵活授权。
8、 按角色给用户授权,当授权对象数量庞大的时候就可大显身手了(比如给公司全体员工授权)。
9、 按用户分配角色,当某个用户以多种身份出现在系统中的时候,希望分配多个角色。
10、 用户及角色分级管理,下级用户只能拥有上级用户权限的子集,可无限级,而除了超级管理员外其它用户都只能看到属于自己管理范围内(自己创建的)用户,也只能分配自己管理范围内(自己创建)的角色,这样可以做到各司其职,管理清晰。
从数据库结构来看,一共设计了七个表(table),表名及功能分别如下:
1、 操作表
用来存放用户自定义的各种功能操作,比如新增、修改、删除等,以前见过的设计是将操作直接放在模块下面管理,这就导致了常见的操作通常要重复添加N次(比如大部分模块都会有新增修改等操作),如果模块比较多就显得非常繁琐且容易出错。现在把它放在一个单独的表里面进行管理就可以避免这一问题出现,流程也更加清晰。
2、 模块表
顾名思义就是将系统中的各模块进行管理,支持无限级模块
3、 模块操作关联表
各模块有什么样的操作就在这里体现,在模块与操作之间建立起关联形成权限点,以便给角色授权。
4、 角色表
对角色基本信息进行管理。用户可以自定义成各种各样的角色,比如局长、校长、总经理等。
5、 角色权限表
将角色与系统中的权限点关联起来,也就是完成授权的动作。
6、 用户表
将用户的最基本的信息进行管理(在正常的业务系统中可进行扩展用户信息),比如姓名、有效期等。
7、 用户角色表
在用户与角色之间建立起关联,给用户授予哪些角色权限(同一用户可以有多个角色),也可以按角色添加用户,比如将“员工”角色授予公司所有人,而不用按用户一个一个地授权。
所以,我希望做一个功能强大而且部署简单类似于组件式的权限管理系统,设计也早有了腹稿,只是苦于一直没有时间(好像这是懒人的惯用借口J)。最近终于逮着机会可以稍作休整,可以安心地将设计重新修改,并将它付诸实现了。
闲话不多说,先简要介绍一下该权限管理系统的特点,该系统采用了struts1.1+tiles+Oracle9i的架构,其中的权限树用到了DTree。功能上做到了灵活授权,操控细致,权限可以细到按钮及超链级别(需要配合扩展的struts标签),而且部署简单,下面谈谈我自己的设计经验。
该系统主要功能如下:
1、 自定义操作动作(如增加、删除、修改、审核等,不再是以前见过的那种粗粒度的按模块分配权限,或者稍微先进点的规定死某几个操作了)。
2、 无限级功能模块管理,自定义模块排序,可以更好地对整个系统中所有模块进行分类管理。
3、 灵活地为各模块分配操作,即每个模块有哪些操作需要被控制(将步骤1中添加的操作按需分配给各模块)。
4、 对所有用户基础信息进行管理,实行有效期机制,过期自动失效,在有效期间亦可强制停止用户使用。
5、 自定义角色,可以起个听起来通俗易懂的名字。
6、 任意角色可任意组合系统权限功能点(比如某个模块里他只能修改数据而不能添加或删除等其它操作)
7、 一个用户可有多个角色(多身份),一个角色也可以被多个用户拥有(同身份)(多对多),灵活授权。
8、 按角色给用户授权,当授权对象数量庞大的时候就可大显身手了(比如给公司全体员工授权)。
9、 按用户分配角色,当某个用户以多种身份出现在系统中的时候,希望分配多个角色。
10、 用户及角色分级管理,下级用户只能拥有上级用户权限的子集,可无限级,而除了超级管理员外其它用户都只能看到属于自己管理范围内(自己创建的)用户,也只能分配自己管理范围内(自己创建)的角色,这样可以做到各司其职,管理清晰。
从数据库结构来看,一共设计了七个表(table),表名及功能分别如下:
1、 操作表
用来存放用户自定义的各种功能操作,比如新增、修改、删除等,以前见过的设计是将操作直接放在模块下面管理,这就导致了常见的操作通常要重复添加N次(比如大部分模块都会有新增修改等操作),如果模块比较多就显得非常繁琐且容易出错。现在把它放在一个单独的表里面进行管理就可以避免这一问题出现,流程也更加清晰。
2、 模块表
顾名思义就是将系统中的各模块进行管理,支持无限级模块
3、 模块操作关联表
各模块有什么样的操作就在这里体现,在模块与操作之间建立起关联形成权限点,以便给角色授权。
4、 角色表
对角色基本信息进行管理。用户可以自定义成各种各样的角色,比如局长、校长、总经理等。
5、 角色权限表
将角色与系统中的权限点关联起来,也就是完成授权的动作。
6、 用户表
将用户的最基本的信息进行管理(在正常的业务系统中可进行扩展用户信息),比如姓名、有效期等。
7、 用户角色表
在用户与角色之间建立起关联,给用户授予哪些角色权限(同一用户可以有多个角色),也可以按角色添加用户,比如将“员工”角色授予公司所有人,而不用按用户一个一个地授权。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询