`
Augustan
  • 浏览: 51509 次
  • 性别: Icon_minigender_1
  • 来自: 江蘇
社区版块
存档分类
最新评论

一个简易实用的web权限管理模块的应用与实现

    博客分类:
  • java
阅读更多

    本文介绍一个简易实用的web权限管理模块的应用与实现。

    先介绍数据模型和应用界面,后继对实现细节做选择性阐述。

    数据表关系如下:

   数据模型

 

      该图标明了登陆用户、角色、部门(机构)、用户组、角色和模块功能之间的关系。为方便起见,所有表都只保留必要字段。

      在本系统设计中,如下概念有着相对特殊的含义。

      一、用户(user): 系统的使用者。

      二、部门(org):体现了用户的行政关系,

      三、组(group) :是某相同职能的用户的集合,可以和用户一样与角色产生关联。设置组的目的是为了方便用户的角色分配,减少用户与角色的直接对应关系。用户的角色可以是其组角色和其直接分配的角色之合集。限于作者的时间和精力,组功能在该系统中没有具体的实现。
      四、角色(role):角色对应着某些功能(function)的集合,被分配一个角色意味着有权执行这些功能。角色表中的字段"functions"记录相关的功能id,id之间用逗号隔开。

      五、功能(function):系统的一个或者多个执行准入。

      那么如何表现“功能”以最终实现控制用户的每一个细微动作呢?假如不特定于某种架构,可以这么设计该表字段:

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登陆(该帐号拥有全部的权限,帐号信息应该预先写入数据库或者以配置文件方式放到类路径下):
     首先是机构管理部分,这里可以编辑某个公司或者单位的组织结构:

    

   然后进入用户管理部分,会有一个用户列表:


   可以编辑用户的属性,设置其所属机构:

 

 

   还可以为用户设定多个角色:

   接着,再看看角色的列表:


   可以为角色设定功能。该角色设定树的生成,在后继文章中会有介绍。

 

   最后,在系统资源部分,可以进行功能模块树的编辑(和机构树的编辑一样)

 

   点击编辑详细功能,可以为选中的结点设置具体功能:

 

 

      配置妥当以后,当我们以一个普通用户登录,执行某个操作的时候,如果没有权限,系统会做出提示。关于用户的权限验证,后继会有介绍。

 

     相关阐述请关注后继文章。

 

 

 

 

 

分享到:
评论
127 楼 lvf2002 2014-10-16  
求完整源码,谢谢!chxue2016@126.com
126 楼 woxiqingxian 2014-10-04  
感觉很不错啊!!求整个工程项目!!一起学习!谢谢……455045303@qq.com
125 楼 12806474 2013-06-06  
求整个项目的源码:oswin_jiang@163.com
124 楼 12806474 2013-06-06  
求资源:oswin_jiang@163.com
123 楼 Anndys99 2013-06-04  
大哥,可否把整个项目的源码发我一份,正在学习权限控制这一块.谢谢 !  
Email:Anndys@yeah.net
122 楼 yongfahuang 2012-10-25  
楼主能把全部工程代码发给我一份吗,目前正在研究权限这一块,谢谢!邮箱:yongfahuang@126.com
121 楼 KJ 2012-05-10  
老大,能否把整个工程源码发一份呢,包括UI,谢谢!krisibm@163.com
120 楼 chenjunt3 2012-02-09  
老大,能否把整个工程源码发一份呢,包括UI,谢谢!chenjunt3@163.com
119 楼 rrryyy 2009-09-07  
不错。继续关注
118 楼 lr1213 2009-09-07  
不错,学习下!
117 楼 migrant423 2009-03-13  
不错很好的贴子
116 楼 java_moon 2009-03-12  
什么玩艺                     
115 楼 clasp 2009-02-19  
呵!具有普遍性,没看出LZ的立新之处
114 楼 yusen8646 2009-02-19  
谢谢了,收藏了
113 楼 fengyifei11228 2009-02-19  
楼主写的很不错,学习了

hexq1983 写道
用户对角色组,角色组对权限,用户不能对权限,不然就乱套了

用户组怎么不能对权限?
如果一个系统需要细粒度的权限管理(各个用户之间权限都不一样,最细到编辑和查看详细),那么如果没有用户对权限,该怎么实现,难道只能通过角色去实现,这样不是很好吧!
laochake 写道

如果部门的人员比较多,建议部门与组之间、部门与角色之间最好也要建立多对多关联

这样,用户的权限就是以下的并集:

用户-->角色-->功能
用户-->组-->角色-->功能
用户-->部门-->角色-->功能
用户-->部门-->组-->角色-->功能

我们可以看出,在权限配置中,最重要的其实就是用户和功能之间的关联,无论我们怎么设计,也绕不出这个关联(无论中间加了多少个权限控制的机制)。

不过,我们自己加上了部门,组,角色这样的权限控制机制,那么我们在分配权限会有很多方便(不用我们去管理用户和功能之间的关系),就像OS中的用户组;但是这样的话,让我们对于细粒度的权限管理(各个用户之间权限都不一样,最细到编辑和查看详细)可能会有点困难

可能我接触权限开始就是从细粒度的权限管理开始的,所以我对细粒度的权限管理比较情有独钟,呵呵

我一般是把定义一个用户功能表,用于保存用户和功能之间的关系,然后建立角色表,同时建立角色和功能,角色和用户之间的关系表。

新建用户时如果是同一个角色 的用户,那么可以通过角色去赋予权限,但是,当用户具有特定功能,或者特定功能只能给一个或几个用户时,就可以不用新建角色,可以直接把相应功能赋予用户就可以了

112 楼 米客一族 2009-02-16  

学习了
111 楼 wangweibo2005 2009-02-15  
下载下来的,怎么没有页面啊
110 楼 winstonczc 2009-02-13  
之前自己做过的系统的权限设计,还有看过的国外开源项目的权限设计,感觉通用性方面都不太好,权限设计还是要结合实际项目需要
109 楼 setnewgod 2009-01-23  
先谢谢了,不错的东西,作者要是有更多分享就好了。
108 楼 rommelma 2009-01-21  
请问 WEB界面用的是什么框架,能不能提供。谢谢

相关推荐

    简易的学生管理系统ASP.NET

    是一个简易的ASP.NET系统,主要实现登录功能和两个模块信息的增删改查。 二、功能介绍 1、管理员信息管理:添加、修改、删除、查找用户信息,分页,添加,修改用户权限; 2、学生信息管理:添加、修改、删除、查找...

    基于WEB的商场管理系统的设计与实现

    本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...

    ASP基于WEB的商场管理系统的设计与实现(源代码+参考文献).zip

    通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品销售...

    [计算机毕设]基于asp的商场管理系统设计与实现(源代码+项目报告).zip

    本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...

    Python-Web简易版学生信息管理系统

    Python-Web简易版学生信息管理系统项目代码及文档说明,主要使用flask框架和Bootstrap,内容样式等还有待调整。对学生信息进行管理,学生信息包括:专业,学号,姓名,性别,出生年月,籍贯,联系电话,宿舍号等。该...

    基于JavaWeb的设备信息管理系统(源代码+sql文件)

    创建后台数据库,然后用编写程序实现对数据库的操作,按照要求完成所有的功能和模块。 2. 设备管理信息系统主要功能 部门操作员和操作管理员首先需要注册并通过超级管理员的认证后,才能登录到系统中来,超级管理...

    ASP基于WEB的商场管理系统的设计与实现(源代码+毕设文档).zip

    本文不仅叙述了该商场管理系统的设计过程,包括需求分析,系统架构的设计,以及功能模块的划分等,而且详尽叙述了各个功能模块的具体实现方法,包括如何在服务器端响应客户请求,如何进行相应的数据库访问、以及如何...

    基于ASP的商场管理系统(源代码+说明报告)

    本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...

    课程设计-基于Java web的学生选课管理系统(源码+数据库+报告).zip

    学生选课系统实现了对教师、学生、课程的基本管理。系统对学生角色提供了个人信息查看、查看已选课程、选课和退选的功能;对教师提供查看个人信息查看、查看分配课程、选择他课程的学生的情况和期末对学生成绩进行...

    温州天邦简易ERP企业管理系统

     温州天邦简易ERP企业管理系统(简称TBERP)是温州柳市电器行业信息化ASP平台开发与应用项目,2005年1月成功入选『国家863计划』于2007年3月顺利通过国家科委专家评审,属乐清科技局科技创新专项资助重点推广项目。...

    ASP简易网络存储系统的设计与实现.zip

    这些项目源码还提供了丰富的功能模块和插件,支持用户管理、权限控制、数据可视化、电子支付、互动社交等特色功能。 通过使用这批ASP项目源码,开发人员可以快速搭建相应的Web应用程序,减少从头开始开发的时间和...

    asp.net实现的学生信息管理系统

    是一个简易的ASP.NET系统,主要实现登录功能和两个模块信息的增删改查。 二、功能介绍 1、管理员信息管理:添加、修改、删除、查找用户信息,添加,修改用户权限; 2、学生信息管理:添加、修改、删除、查找...

    基于Java Web学生选课管理系统.zip

    主要模块:选课信息管理,学生信息管理,教师信息管理,课程信息管理,修改密码。模块中包含增删改查 系统分三种用户:管理员,教师,学生。每个用户在各个模块中的权限不同 数据库:navicat

    基于python web开发的简易订单系统+源代码+文档说明

    后端框架采用了base(基础类库层)、bean(后台逻辑层)、dao(数据持久层)、web(view展示层)的四层结构,代码结构清晰,高度模块化设计,使得开发起来高效、实用、可靠,并且便于扩展和维护。 下面是该系统的...

    SsCMS简易企业网站管理系统 1.3.rar

    6.管理员可定义管理权限。 7.新闻和产品支持无限级分类。 程序安装的必要条件: 服务器配置: 推荐配置:Windows 2000/2003+IIS 5.0/6.0或者更高版本 本系统需要服务器支持FSO(FileSystemObject),如果你...

    【小程序素材】简易计算器.zip

    模块化设计:将系统功能模块化,每个模块负责一类功能,方便扩展和维护。 Responsiveness:后台管理系统应当是响应式设计,能够适配不同设备屏幕大小,包括电脑、平板和手机等。 权限控制:根据用户角色设定不同的...

    asp.net知识库

    Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...

    php部署和管理

    Php web application manager 〖目的〗 鉴于tomcat提供了应用后台管理功能,而php中没有,所以开发这个小...这一简易应用为方便开发而开发,所以,大家可自由使用。欢迎使用和修改,有问题请联系: yiming_1983@qq.com.

    简易博客留言系统

    这个是本人在学习web应用开发过程中记录,并加入自己的设计思想,其中的技术包括oracle数据库的访问、查询、增加、修改、删除,web页面的分页技术,web系统登录的权限控制技术,单一用户登录控制技术等,但是遗憾的...

    简易论坛jsp

    理解JSP的工作原理,掌握JSP程序的结构和基本语法规则及JSP的基本编程技能,通过编程实现数据的搜集、传递以及对数据库的访问和操作,并能够实现网站的基本功能模块的编程,为企业提供WEB服务。 二.实验条件: ...

Global site tag (gtag.js) - Google Analytics