http://yuetong.iteye.com/blog/300430
一个简易实用的web权限管理模块的应用与实现
本文介绍一个简易实用的web权限管理模块的应用与实现。
先介绍数据模型和应用界面,后继对实现细节做选择性阐述。
数据表关系如下:
该图标明了登陆用户、角色、部门(机构)、用户组、角色和模块功能之间的关系。为方便起见,所有表都只保留必要字段。
在本系统设计中,如下概念有着相对特殊的含义。
一、用户(user): 系统的使用者。
二、部门(org):体现了用户的行政关系,
三、组(group) :是某相同职能的用户的集合,可以和用户一样与角色产生关联。设置组的目的是为了方便用户的角色分配,减少用户与角色的直接对应关系。用户的角色可以是其组角色和其直接分配的角色之合集。限于作者的时间和精力,组功能在该系统中没有具体的实现。
四、角色(role):角色对应着某些功能(function)的集合,被分配一个角色意味着有权执行这些功能。角色表中的字段"functions"记录相关的功能id,id之间用逗号隔开。
五、功能(function):系统的一个或者多个执行准入。
那么如何表现“功能”以最终实现控制用户的每一个细微动作呢?假如不特定于某种架构,可以这么设计该表字段:
Sql代码
CREATE TABLE `m2_function` (
`FUNCTION_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`NAME` varchar(50) NOT NULL,
`FUNC_TREE_ID` int(10) unsigned NOT NULL,
`RESOURCE` varchar(100) NOT NULL,
`SUFFIX` varchar(50) NOT NULL,
`DESCRIPTION` varchar(100) NOT NULL,
`PARAMS` varchar(45) NOT NULL,
PRIMARY KEY (`FUNCTION_ID`)
) DEFAULT CHARSET=utf8;
假定有三个web访问路径
http://127.0.0.1:8080/app/sys/user.jsp?action=index&userid=1203
http://127.0.0.1:8080/app/sys/user.yuetong?action=add
http://127.0.0.1:8080/app/sys/user.yuetong?action=update&userid=1203
这三个访问点被人为的划分为两个功能准入(当然亦可以是一个或者三个),见下图
由此可知,“功能”是衡量用户准入的最小刻度。在用户访问某个地址的时候,我们可以通过解析URL对比他拥有的“功能”权限来实现权限管理。
借助于某些架构或者设计思路,可以避免用户直接访问JSP页面,甚至全系统的访问地址都使用同一后缀,这种情况下可以省去SUFFIX字段。 本系统就是这种情况(JSP页面置于WEB-INF下,采用struts2架构)。
六、功能模块树(function tree):功能的目录组织,起分类的作用。在为角色设定功能的时候,用户界面可以利用带选择框的js树。而这颗js树是后台的功能树表以及功能表的联合表现形式。功能模块树可以方便的与菜单树建立映射关系,限于作者的时间和精力,该系统并未实现菜单树。
下面从实际应用入手做直观的介绍:
用超级管理员帐号YT000登陆(该帐号拥有全部的权限,帐号信息应该预先写入数据库或者以配置文件方式放到类路径下):
首先是机构管理部分,这里可以编辑某个公司或者单位的组织结构:
然后进入用户管理部分,会有一个用户列表:
可以编辑用户的属性,设置其所属机构:
还可以为用户设定多个角色:
接着,再看看角色的列表:
可以为角色设定功能。该角色设定树的生成,在后继文章中会有介绍。
最后,在系统资源部分,可以进行功能模块树的编辑(和机构树的编辑一样)
点击编辑详细功能,可以为选中的结点设置具体功能:
配置妥当以后,当我们以一个普通用户登录,执行某个操作的时候,如果没有权限,系统会做出提示。关于用户的权限验证,后继会有介绍。
随文先附上权限管理模块的源代码(struts2+spring+hibernate),相关阐述请关注后继文章。
分享到:
相关推荐
本项目"用户权限管理模块(C++实现)"是一个用C++编程语言实现的权限管理解决方案,它包含了几个核心功能,如单例模式、用户区分、用户管理以及密码安全存储。 首先,我们来深入理解C++实现的用户权限管理模块。C++...
在智能巡检系统中,权限管理模块的设计与实现是确保系统安全和提升管理效率的关键组成部分。根据给出的文件内容,本文将介绍几个核心知识点,包括智能巡检系统的概念、权限控制技术、基于角色的访问控制(RBAC)模型...
以下是对这个“一个简单实用的系统管理模块(权限管理模块)例子”的详细解释。 首先,权限管理模块的核心功能包括用户角色分配、权限控制和访问验证。用户角色分配允许管理员将不同的用户分组到特定的角色中,每个...
在实现这样的权限管理模块时,通常会包含以下组件: - **认证(Authentication)**:验证用户的身份,这通常通过登录过程完成,包括用户名、密码验证,有时还会涉及多因素认证。 - **授权(Authorization)**:在...
对于“角色权限管理模块(C#)”这个主题,我们将深入探讨C#语言如何被用于实现这样的功能,以及相关的关键概念和技术。 首先,让我们理解“角色”和“权限”的基本概念。在计算机系统中,角色是一组预定义的权限集合...
首先,标题“通用权限管理系统的设计与实现”直接指向了文章的主要内容,即设计并实现一个通用的权限管理系统。在IT行业中,权限管理系统(PMS)是确保应用程序安全的重要组成部分,它负责管理用户对系统资源的访问...
为了保护数据安全,权限管理模块需要与认证和授权机制紧密配合。用户在进行任何操作前都需要经过身份验证,只有验证通过后才能根据其权限执行相应操作。这通常涉及到OAuth2或JWT(JSON Web Tokens)等现代认证协议。...
在"权限管理(web)"这个压缩包中,很可能是包含了一个Web应用程序的权限管理模块源码。你可以期待找到如Controller、Service、Repository和Model等不同层次的Java类,它们分别对应于前端控制器、业务逻辑、数据访问和...
首先,我们来深入理解“权限管理模块”。权限管理是控制用户对系统资源访问的一种机制,确保只有具有适当权限的用户才能执行特定操作。在JSP应用中,这通常通过角色-权限模型实现。每个用户被分配到一个或多个角色,...
总的来说,这些文档组合起来提供了关于权限模块设计的全方位视角,从理论模型到实际应用,从系统设计到具体实现,涵盖了权限管理的各个方面。在设计此类模块时,开发者需要考虑系统的可扩展性、灵活性和安全性,以...
在IT行业中,权限控制是系统安全的关键组成部分,尤其在企业级应用中,权限管理模块扮演着至关重要的角色。"自动权限控制管理模块"是解决这一问题的有效工具,它旨在简化项目开发过程中的权限设计和实现,使开发者...
【论文】:配套的“论文”部分,可能详细阐述了系统的功能设计、技术选型、权限管理模块的具体实现以及系统的优势与局限性。论文通常包含问题背景、需求分析、系统设计、实施过程和结果评估等部分,是理解整个项目的...
一、权限管理模块 权限管理主要负责控制用户对系统资源的访问,确保系统安全性和数据完整性。在JSPSmart系统中,权限管理主要包括角色定义、权限分配、用户授权三个部分: 1. 角色定义:系统中的角色是对一组权限...
"GIS用户权限管理-基于角色的用户权限管理模块"是一个全面且灵活的解决方案,它覆盖了从数据库支持、角色管理、用户权限分配到地图访问控制的各个环节,并且具备二次开发能力,适应不同场景下的GIS应用需求。...
本篇文章将深入探讨如何利用`Repeater`控件来实现一个具有无限级模块权限管理的系统,这涉及到的角色权限管理和数据结构的设计。 首先,`Repeater`控件的工作原理是通过循环遍历数据源并根据定义的模板生成HTML输出...
通用权限管理模块的设计与实现,基于VC 与Access,源代码可在VC 6.0下直接编译生成。 本模块主要用于软件项目中,用以给不同的用户划分权限,同时增加用户,设置他们是否超级管理员、普通管理员或系统操作员等,...
在本项目"Javaweb教学系统项目之权限管理模块"中,我们主要探讨的是如何在Web应用程序中实现有效的权限控制。这个模块包含了角色管理和人员管理两大核心功能,旨在确保不同用户根据其角色和职责拥有相应的操作权限。...
Java 实现的权限管理系统是一种基于B/S架构(Browser/Server,浏览器/服务器模式)的应用程序,主要用于管理和控制用户访问系统资源的权限。这种系统通常包括用户管理、角色管理、资源管理以及权限分配等多个核心...
通用权限管理系统可练手可...角色管理、权限管理和资源管理等功能,通过对应的模块实现。 总的来说,基于SpringBoot+Vue的通用权限控制系统设计与实现,可以提供灵活、可扩展、易维护的权限控制功能,适用于各种应用
8. 学员信息管理模块:学员信息管理模块是一个重要的模块,用于管理学员的个人信息和培训记录,在驾校信息管理系统设计与实现中,学员信息管理模块是一个关键的模块,用于管理学员的个人信息和培训记录。 9. 教练...