最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

权限管理系统

来源:动视网 责编:小OO 时间:2025-09-27 21:10:14
文档

权限管理系统

权限管理系统一、系统功能分析1.系统的功能模块系统主要完成权限授予及权限验证的功能,权限授予实现某个用户对模块的某个功能的操作许可,组成权限数据库。为用户分配角色来实现授权。权限验证实现通过实现定义好的权限数据库,判断该用户是否对某个模块的某个功能具有操作权限,权限验证采用过滤器来设计,用户在应用系统中进行所有操作都需要经过这一层过滤器。系统设计包括以下5个模块:人员管理:创建、更新、删除、查询人员信息、人员角色维护。功能管理:创建、更新、删除、查询功能信息。模块管理:创建、更新、删除、
推荐度:
导读权限管理系统一、系统功能分析1.系统的功能模块系统主要完成权限授予及权限验证的功能,权限授予实现某个用户对模块的某个功能的操作许可,组成权限数据库。为用户分配角色来实现授权。权限验证实现通过实现定义好的权限数据库,判断该用户是否对某个模块的某个功能具有操作权限,权限验证采用过滤器来设计,用户在应用系统中进行所有操作都需要经过这一层过滤器。系统设计包括以下5个模块:人员管理:创建、更新、删除、查询人员信息、人员角色维护。功能管理:创建、更新、删除、查询功能信息。模块管理:创建、更新、删除、
权限管理系统

一、系统功能分析 

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

序号字段描述类型长度

主键

可空
1StaffID

编号Int

2StaffName

名称Varchar(50)

3StaffPwd

密码Varchar(50)

角色表 role

序号字段描述类型长度

主键

可空
1RoleID

角色IDInt

2RoleName角色名称Varchar(50)

3Description描述Varchar(200)

人员角色关系表StaffRole

序号字段描述类型长度

主键

可空
1ID唯一标识Int

2RoleID角色IDInt

3StaffID人员IDInt

模块表 Module

序号字段描述类型长度

主键

可空
1ModuleID模块IDInt

2ModuleName模块名称Varchar(50)

3ModuleURL模块路径Varchar(200)

功能项表Function

序号字段描述类型长度

主键

可空
1FunctionID

功能ID

Int

2FunctionName

功能名称

Varchar(50)

3Description描述Varchar(200)

权限表 Auth(模块功能表)

序号字段描述类型长度

主键

可空
1AuthID权限IDInt

2ModuleID模块IDInt

3FunctionID功能IDInt

角色权限表RoleAuth

序号字段描述类型长度

主键

可空
1ID唯一标识Int

2AuthID

权限ID

Int

3RoleID

角色ID

Int

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,

Description varchar(200) not null

)ENGINE=InnoDB DEFAULT CHARSET=gbk;

create table staffrole(

ID int auto_increment primary key,

RoleID int not null,

StaffID int not null,

CONSTRAINT staffrole_role_fk FOREIGN KEY (RoleID) REFERENCES role (RoleID),

CONSTRAINT staffrole_staff_fk FOREIGN KEY (StaffID) REFERENCES staff (StaffID)  

)ENGINE=InnoDB DEFAULT CHARSET=gbk;

create table module(

ModuleID int auto_increment primary key,

ModuleName varchar(50) unique,

ModlueURL varchar(200) not null

)ENGINE=InnoDB DEFAULT CHARSET=gbk;

create table function(

FunctionID int auto_increment primary key,

FunctionName varchar(50) unique,

Description varchar(200) not null

)ENGINE=InnoDB DEFAULT CHARSET=gbk;

create table auth(

AuthID int auto_increment primary key,

ModuleID int not null,

FunctionID int not null,

CONSTRAINT auth_module_fk FOREIGN KEY (ModuleID) REFERENCES module (ModuleID),

CONSTRAINT auth_function_fk FOREIGN KEY (FunctionID) REFERENCES function (FunctionID)  

)ENGINE=InnoDB DEFAULT CHARSET=gbk;

create table roleauth(

ID int auto_increment primary key,

AuthID int not null,

RoleID int not null,

CONSTRAINT roleauth_auth_fk FOREIGN KEY (AuthID) REFERENCES auth (AuthID),

CONSTRAINT roleauth_role_fk FOREIGN KEY (RoleID) REFERENCES role (RoleID)  

)ENGINE=InnoDB DEFAULT CHARSET=gbk; 

4. 初始化数据

insert into role values

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

insert into staff values

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

insert into module values 

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

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

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

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

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

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

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

insert into function values 

(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','删除角色用户');

insert into auth values 

(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);

insert into roleauth values

(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);

insert into staffrole values(1,1,1);

文档

权限管理系统

权限管理系统一、系统功能分析1.系统的功能模块系统主要完成权限授予及权限验证的功能,权限授予实现某个用户对模块的某个功能的操作许可,组成权限数据库。为用户分配角色来实现授权。权限验证实现通过实现定义好的权限数据库,判断该用户是否对某个模块的某个功能具有操作权限,权限验证采用过滤器来设计,用户在应用系统中进行所有操作都需要经过这一层过滤器。系统设计包括以下5个模块:人员管理:创建、更新、删除、查询人员信息、人员角色维护。功能管理:创建、更新、删除、查询功能信息。模块管理:创建、更新、删除、
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top