权限管理系统.docx

上传人:b****7 文档编号:8985567 上传时间:2023-02-02 格式:DOCX 页数:9 大小:39.10KB
下载 相关 举报
权限管理系统.docx_第1页
第1页 / 共9页
权限管理系统.docx_第2页
第2页 / 共9页
权限管理系统.docx_第3页
第3页 / 共9页
权限管理系统.docx_第4页
第4页 / 共9页
权限管理系统.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

权限管理系统.docx

《权限管理系统.docx》由会员分享,可在线阅读,更多相关《权限管理系统.docx(9页珍藏版)》请在冰豆网上搜索。

权限管理系统.docx

权限管理系统

权限管理系统

权限管理系统

一、系统功能分析

1.系统的功能模块

系统主要完成权限授予及权限验证的功能,权限授予实现某个用户对模块的某个功能的操作许可,组成权限数据库。

为用户分配角色来实现授权。

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

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

Ø人员管理:

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

Ø功能管理:

创建、更新、删除、查询功能信息。

Ø模块管理:

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

Ø角色管理:

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

Ø验证权限:

判断用户对某一个模块的操作是否合法。

图1系统功能结构图

2.技术选型

系统采用业界常用的J2EE框架进行组合。

要求成熟稳定的系统框架以满足系统的松耦合性、扩张性和可维护性。

权限管理系统采用Struts+Hibernate+Spring三种框架组合开发。

表示层和控制层框架:

选择业界广泛使用而且成熟稳定的Struts。

业务逻辑层框架:

选择轻量级SpringFramework。

持久层框架:

选择Hibernate。

3.系统逻辑结构分析

系统采用Struts+Hibernate+Spring架构进行开发。

在体系结构上将系统划分为四个层次:

表示层、控制层、业务层、持久层。

表示层和控制层融合紧密,采用struts框架;持久层采用Hibernate框架;业务层和持久层统一使用spring框架支撑。

Struts框架接收来自表示层请求“xxxAction.do”,请求参数封装在“xxxForm”中,struts依据配置信息调用控制层实例“xxxAction”的相关方法,该方法从“xxxForm”中取回请求参数,并从SpringBean容器中获取业务层接口“xxxManager”的一个实例“xxxManagerImpl”。

在SpringBean容器初始化“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

序号

字段

描述

类型长度

主键

可空

1

ModuleID

模块ID

Int

2

ModuleName

模块名称

Varchar(50)

3

ModuleURL

模块路径

Varchar(200)

功能项表Function

序号

字段

描述

类型长度

主键

可空

1

FunctionID

功能ID

Int

2

FunctionName

功能名称

Varchar(50)

3

Description

描述

Varchar(200)

权限表Auth(模块功能表)

序号

字段

描述

类型长度

主键

可空

1

AuthID

权限ID

Int

2

ModuleID

模块ID

Int

3

FunctionID

功能ID

Int

角色权限表RoleAuth

序号

字段

描述

类型长度

主键

可空

1

ID

唯一标识

Int

2

AuthID

权限ID

Int

3

RoleID

角色ID

Int

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

createtablestaff(

StaffIDintauto_incrementprimarykey,

StaffNamevarchar(50)unique,

StaffPwdvarchar(50)notnull

)ENGINE=InnoDBDEFAULTCHARSET=gbk;

createtablerole(

RoleIDintauto_incrementprimarykey,

RoleNamevarchar(50)unique,

Descriptionvarchar(200)notnull

)ENGINE=InnoDBDEFAULTCHARSET=gbk;

createtablestaffrole(

IDintauto_incrementprimarykey,

RoleIDintnotnull,

StaffIDintnotnull,

CONSTRAINTstaffrole_role_fkFOREIGNKEY(RoleID)REFERENCESrole(RoleID),

CONSTRAINTstaffrole_staff_fkFOREIGNKEY(StaffID)REFERENCESstaff(StaffID)

)ENGINE=InnoDBDEFAULTCHARSET=gbk;

createtablemodule(

ModuleIDintauto_incrementprimarykey,

ModuleNamevarchar(50)unique,

ModlueURLvarchar(200)notnull

)ENGINE=InnoDBDEFAULTCHARSET=gbk;

createtablefunction(

FunctionIDintauto_incrementprimarykey,

FunctionNamevarchar(50)unique,

Descriptionvarchar(200)notnull

)ENGINE=InnoDBDEFAULTCHARSET=gbk;

createtableauth(

AuthIDintauto_incrementprimarykey,

ModuleIDintnotnull,

FunctionIDintnotnull,

CONSTRAINTauth_module_fkFOREIGNKEY(ModuleID)REFERENCESmodule(ModuleID),

CONSTRAINTauth_function_fkFOREIGNKEY(FunctionID)REFERENCESfunction(FunctionID)

)ENGINE=InnoDBDEFAULTCHARSET=gbk;

createtableroleauth(

IDintauto_incrementprimarykey,

AuthIDintnotnull,

RoleIDintnotnull,

CONSTRAINTroleauth_auth_fkFOREIGNKEY(AuthID)REFERENCESauth(AuthID),

CONSTRAINTroleauth_role_fkFOREIGNKEY(RoleID)REFERENCESrole(RoleID)

)ENGINE=InnoDBDEFAULTCHARSET=gbk;

4.初始化数据

insertintorolevalues

(1,'系统管理员','管理系统全部资源');

insertintostaffvalues

(1,'admin','21232F297A57A5A743894A0E4A801FC3');--admin:

admin

insertintomodulevalues

(1,'用户管理','staffAction.do'),

(2,'角色管理','roleAction.do'),

(3,'模块管理','moduleAction.do'),

(4,'功能管理','functionAction.do'),

(5,'用户角色管理','staffRoleAction.do'),

(6,'模块功能管理','authAction.do'),

(7,'角色权限管理','roleAuthAction.do');

insertintofunctionvalues

(1,'save','保存'),

(2,'create','创建'),

(3,'list','列表'),

(4,'delete','删除'),

(5,'update','更新'),

(6,'search','搜索'),

(7,'staffrole','用户角色列表'),

(8,'createstaffrole','创建用户角色'),

(9,'removestaffrole','删除用户角色'),

(10,'rolestaff','角色用户列表'),

(11,'roleauth','角色权限列表'),

(12,'createroleauth','创建角色权限'),

(13,'removeroleauth','删除角色权限'),

(14,'createauth','创建模块功能权限'),

(15,'removeauth','删除模块功能权限'),

(16,'createrolestaff','创建角色用户'),

(17,'removerolestaff','删除角色用户');

insertintoauthvalues

(1,1,1),(2,1,3),(3,1,4),(4,1,5),(5,1,6),

(6,2,1),(7,2,3),(8,2,4),(9,2,5),(10,2,6),

(11,3,1),(12,3,3),(13,3,4),(14,3,5),(15,3,6),

(16,4,1),(17,4,3),(18,4,4),(19,4,5),(20,4,6),

(21,5,6),(22,5,7),(23,5,8),(24,5,9),(25,5,10),(26,5,16),(27,5,17),

(28,6,3),(29,6,14),(30,6,15),

(31,7,11),(32,7,12),(33,7,13);

insertintoroleauthvalues

(1,1,1),(2,2,1),(3,3,1),(4,4,1),(5,5,1),

(6,6,1),(7,7,1),(8,8,1),(9,9,1),(10,10,1),

(11,11,1),(12,12,1),(13,13,1),(14,14,1),

(15,15,1),(16,16,1),(17,17,1),(18,18,1),(19,19,1),

(20,20,1),(21,21,1),(22,22,1),(23,23,1),(24,24,1),

(25,25,1),(26,26,1),(27,27,1),(28,28,1),(29,29,1),

(30,30,1),(31,31,1),(32,32,1),(33,33,1);

insertintostaffrolevalues(1,1,1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1