权限管理系统方案

  • 格式:doc
  • 大小:175.50 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

权限管理系统

一、系统功能分析

1. 系统的功能模块

系统主要完成权限授予及权限验证的功能,权限授予实现某个用户对模块的某个功能的操作许可,组成权限数据库。为用户分配角色来实现授权。权限验证实现通过实现定义好的权限数据库,判断该用户是否对某个模块的某个功能具有操作权限,权限验证采用过滤器来设计,用户在应用系统中进行所有操作都需要经过这一层过滤器。

系统设计包括以下5个模块:

➢人员管理:创建、更新、删除、查询人员信息、人员角色维护。

➢功能管理:创建、更新、删除、查询功能信息。

➢模块管理:创建、更新、删除、查询模块信息、模块功能维护。

➢角色管理:创建、更新、删除、查询角色信息、角色权限维护。

➢验证权限:判断用户对某一个模块的操作是否合法。

图 1系统功能结构图

2. 技术选型

系统采用业界常用的J2EE框架进行组合。要求成熟稳定的系统框架以满足系统的松耦合性、扩性和可维护性。权限管理系统采用Struts+Hibernate+Spring 三种框架组合开发。

表示层和控制层框架:选择业界广泛使用而且成熟稳定的Struts。

业务逻辑层框架:选择轻量级Spring Framework。

持久层框架:选择Hibernate。

3. 系统逻辑结构分析

系统采用Struts+Hibernate+Spring架构进行开发。在体系结构上将系统划分为四个层次:表示层、控制层、业务层、持久层。表示层和控制层融合紧密,采用struts框架;持久层采用Hibernate框架;业务层和持久层统一使用spring 框架支撑。

Struts框架接收来自表示层请求“xxxAction.do”,请求参数封装在“xxxForm”

中,struts依据配置信息调用控制层实例“xxxAction”的相关方法,该方法从“xxxForm”中取回请求参数,并从Spring Bean容器中获取业务层接口“xxxManager”的一个实例“xxxManagerImpl”。在Spring Bean容器初始化“xxxManagerImpl”实例时,会根据beanid=“xxxDAO”获取对应的“xxxDAO”的一个实例,并赋值给“xxxManagerImpl”的“xxxDAO”接口。xxxManagerImpl实例会调用持久层接口“xxxDAO”实例的方法完成具体的操作,并返回操作结果。

图 2权限管理模型结构图

➢表示层(view):

表示层主要负责在前台JSP页面上展示控制层提供的数据,提供操作界面,将用户的操作请求提交给控制层。

➢控制层(Controller):

控制具体的业务流程。接受来自表示层的用户操作请求,调用业务层的接口完成用户请求的处理,并将处理结果和数据保存到request对象中,控制流程转向表示层输出处理结果和数据。表示层和控制层结合起来开发,采用struts框架,

控制层的配置是在struts-config.xml配置文件中定义的,控制层和表示层之间的接口也需要在该文件中定义。

➢业务层(Manager) :

业务层主要负责业务模块的逻辑应用设计,采用Spring框架。首先需要规划业务层向控制层提供的接口,然后设计器接口的实现类,业务层接口的具体实现需要调用到已定义的DAO层的接口。接着在Spring的配置文件中配置接口与实现的关联,以及设置相关的DAO接口。在控制层中只需要调用业务层接口就可以很方便的进行业务处理。封装业务层的业务逻辑有利于业务逻辑的独立性和可重用性。

➢持久层(DAO) :

接受业务层的调用,完成数据的持久化工作。采用Hibernate技术实现,业务层和持久层都采用Spring框架,首先需要定义业务层与持久层之间的接口,然后在设计接口的实现,最后在Spring的配置文件中定义此接口关联的实现类。在业务层中调用此接口来进行数据业务的处理,而不关心此接口的具体实现类是哪个类,所有接口实现调用的部细节全部封装在Spring框架中。DAO层的数据源,以及有关数据库连接的参数都需要在Spring的配置文件中配置。

二、数据库表结构设计

1. 系统数据模型

权限管理系统的实体有人员、角色、模块、功能,这四个实体之间的关系是:一个人员可以具有多个角色,多个人员也可以属于同一个角色;一个模块可以有多个功能,一个功能也可以属于多个模块;一个角色对多个模块的多个功能也可以有多个权限,多个角色也可以拥有同一个权限。这四个实体之间关系如下:

图 3权限管理系统数据模型图

2. 系统表设计

人员信息表 staff

序号字段描述类型长度主键可空

1 StaffID 编号Int 是否

2 StaffName 名称Varchar(50) 否否

3 StaffPwd 密码Varchar(50) 否否角色表 role

序号字段描述类型长度主键可空

1 RoleID 角色ID Int 是否

2 RoleName 角色名称Varchar(50) 否否

3 Description 描述Varchar(200) 否否人员角色关系表StaffRole

序号字段描述类型长度主键可空

1 ID 唯一标识Int 是否

2 RoleID 角色ID Int否否

3 StaffID 人员ID Int否否

模块表 Module

功能项表Function

权限表 Auth(模块功能表)

角色权限表RoleAuth

3. 创建popedom(权限系统)数据库脚本create table staff(

StaffID int auto_increment primary key, StaffName varchar(50) unique,

StaffPwd varchar(50) not null

)ENGINE=InnoDB DEFAULT CHARSET=gbk;

create table role(

RoleID int auto_increment primary key, RoleName varchar(50) unique,

相关主题