`

【转】我理解的权限管理设计二

 
阅读更多
         任何一个系统最基础的莫非资源、用户、权限之前的管理,无论做什么样的产品都需要权限系统来支撑,只是对于不同的权限系统需要不同级别的权限管理底层进行支撑。
 
        首先明确一下权限管理系统的概念;权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。目前可以归纳为简单的模型,如下图:
 
权限管理主要分为两大类:
一、资源管理认证
1、功能级的权限验证逻辑非常简单。查看该当前登录用户的角色是否包含该功能的权限。如果有,则表示有权访问,否则表示无权访问。对于WEB系统,一般定义一个Filter就可以完成权限验证,无需在各个程序入口进行权限判断。程序伪代码如下:
// 获取访问功能
String url=request.getRequestPath();
// 进行权限验证
User user=request.getSession().get(“user”);
boolean permit=PrivilegeManager.permit( user, url );
if( permit ) {
chain.doFilter( request, response );
} else {
// 可以转到提示界面
}
2、页面内嵌业务相关
功能级别的只能使用页面的是否能够正确的访问不能直接代表,如果对于一个比较复杂系统,涉及到的问题可以是一个用户他只有查询的功能,没有业务操作的权限,这样对于我们上述的简单权限认证明显会感觉力不从心可以对前台按钮级别的显示进行效果的封装,在现实的时候进行按钮是否显示的判断,这样也就直接屏蔽了按钮级别的权限任务操作
二、数据权限认证
 目前,数据级权限管理领域,一直没有统一的技术。大体上,软件开发人员采用如下技术:
1,硬编码,也就是将这种逻辑以if/else等形式与业务代码耦合在一起,这种情况居多;
2,使用规则引擎,也有一些企业将这种逻辑以规则形式提出来,并使用规则引擎解析规则;
3,使用第三方专业软件,有开源中间件Ralasafe;开源框架Spring Security;商业产品Oracle Entitlements Server,IBM Tivoli Access Manager。
硬编码形式弊端是非常显然的。耦合性强,难以测试;系统组件复用率低;系统后期改动代价非常大,牵一发而动全身。
使用规则引擎可以解决很多问题,学习难度尚可。但规则引擎并不是专业用于权限管理的,所以对于复杂一些的权限管理,就显得力不从心。
Ralasafe和Oracle、IBM的商业产品一样,都是中间件形式。对应用系统和应用数据库结构没有要求。都有管理界面进行直接操控管理,而且都能在线进行测试。相比较,Ralasafe还可以控制查询权限(即从系统查询订单、查询客户等),Oracle、IBM的商业产品没有这方面功能;从产品学习难度来看,Ralasafe只要有一些IT经验,就能快速上手;Oracle、IBM产品即使是专业人员,也难以掌握。
Spring Security是框架,需要对你的应用系统进行改动,你的系统必须在该框架进行设计编写。它只是帮助开发人员将权限提取出来了,但数据级权限还需要开发人员开发Voter。而且配置工作巨大,难以测试。
虽然上述提到的产品,都是Java产品。但Ralasfe和Oracle、IBM的商业产品,以中间件形式,可以部署在独立服务器上,使用web service等方式与非Java系统交互。
 
分享到:
评论

相关推荐

    PHP毕业设计选题管理系统(毕业设计+论文)源码

    二、功能介绍毕业设计管理系统主要由前端用户功能模块的设计与实现和后台管理功能模块的设计与实现。前端的主要功能有用户登录、密码修改、选题、开题、提交论文、论文审核等;后台管理员的主要功能有用户信息导入、...

    数据库课程设计图书馆管理系统.doc

    《数据库系统原理》课程设计—图书馆管理系统 一、课程设计的目的及意义 本课程设计是在学习《数据库原理》课程后,进行的一次全面的综合训练,其目的在于 加深对数据库原理的理解,掌握运用数据库应用系统开发软件...

    本科毕业设计开题报告(学生实习信息管理系统的设计与实现)

    它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它以拥有...

    数据库课程设计-房源管理系统

    软件工程实习参考,java开发,单机应用(web版可以搜基于javaweb的房源管理系统-中国地质大学),附完备文档,文档写得很认真,好好看看你应该可以迅速理解我的实现过程,祝好运! 四、课程设计题目及要求 设计与...

    基于Springboot的Tangdao角色权限管理系统设计源码

    本源码提供了一个基于Springboot的Tangdao角色权限管理系统设计。项目包含232个文件,其中包括119个Java源文件、36个Vue文件、26个JavaScript文件、15个XML文件、6个JSON文件、5个SVG图像、4个PNG图片、3个Sass样式...

    jsp 在线阅读管理系统FlashPaper开发设计myeclipse编程mysql数据库

    jsp 在线阅读管理系统 是一套完善的WEB设计系统,对理解JSP java 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 应用技术:java|jsp+mysql 利用FlashPaper2.2 将office 文件转换出...

    Flask Restful API权限管理系统(注册,登陆,认证,授权).zip

    这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等...

    网吧管理系统数据库课程设计.doc

    1 主键及唯一性索引 5.2 参照完整性设计 5.3 Check约束 5.5 触发器设计 第6章 数据库视图设计 第7章 数据库存储过程设计 第8章 权限设计 总结 参考文献 第一章 需求分析 1.1 需求分析的任务 调查网吧管理系统应用...

    二级文件系统 .rar

    二级文件系统 文件系统是操作系统中所有软件资源的管理者,一个高效完善的文件系统非常重要,通过自行设计模拟二级文件系统,能对文件和文件系统的概念有深入的理解,并能体会文件目录,文件空间管理和文件保护等多...

    教室资源管理系统的Oracle数据库设计 .docx

    主要对教室资源管理系统整体设计做一个详细的介绍,包括数据库的创建(需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护等)和教室资源管理系统的编辑、编译、运行、调试、维护等...

    ssm+shiro+layui+easyui实现的后台权限管理系统

    ssm+shiro+layui+easyui实现的后台权限管理系统 项目描述 基于SSM+Shiro+Layui+Easyui实现的后台权限管理系统 丰富的代码注释会很方便于你的理解,清晰的代码层次会让你更清楚的明白企业级架构!希望能在有限的...

    基于SSM框架的超市管理系统设计源码

    系统采用了SSM框架和前端技术,实现了超市管理的功能,包括商品管理、分类管理、咨询列表管理、权限管理、支付管理、留言管理、角色管理、管理员管理、订单管理和采购管理。项目结构清晰,代码可读性强,易于理解和...

    基于Springboot2.0的后台权限管理系统设计源码

    本源码提供了一个基于Springboot2.0的后台权限管理系统设计。项目包含276个文件,其中包括96个Java源文件、75个GIF图片、24个JavaScript文件、15个JPG图片、14个HTML文件、12个JPG图片、9个XML文件、9个PNG图片、7个...

    JSPSmart系统-权限管理与日志记录模块的设计与开发(源代码+论文).rar

    总之,本资料包为计算机专业学生和开发者提供了一个实用的JSPSmart系统学习资源,通过阅读源代码和论文,用户可以深入理解权限管理与日志记录模块的设计思路和技术实现,为今后的学习和工作打下坚实的基础。...

    学生成绩管理系统的设计与实现

    第二章对数据库的设计和SQL语言的使用进行了系统分析,为深入理解数据库应用打下了基础。 第三章学习了具体的开发工具Delphi 6.0,对其数据库组件,SQL语言在Delphi中的应用等数据库编程关键技术进行了系统的...

    库存物资管理系统数据库设计.doc

    概念结构设计 2.1 E-R图 1、期初库存设置模块E-R图 2、货品管理模块E-R图 3、库存物资管理系统总体E-R图 2.2 相应的实体—关系属性 仓库(名称,负责人,所属单位,构建日期) 供应商信息(供应商编号,供应商名称...

    易捷智慧校园平台(资产管理、竞赛管理、人员管理)

    根据用户权限的分配,用户可管理本单位或本部门的资产,可理解为高级管理员和部门管理员。部门管理员仅可管理本部门的资产,可查看本部门资产的详细信息,可批量修改存放地点和领用人;高级管理员可管理本单位的...

    java_jsp项目源码_Smart系统-权限管理与日志记录模块的设计与开发(源代码+论文).rar

    Smart系统是一款集权限管理与日志记录于一体的强大Java JSP项目。它通过先进的权限控制算法和详尽的日志记录机制,为企业和组织提供了安全、可靠的管理解决方案。 在权限管理方面,Smart系统实现了用户、角色、权限...

    学生信息管理系统-MFC课程设计报告.doc

    心得体会 1〕过这次课程设计,初步掌握MFC程序设计,对消息的机制有了较为深刻的认识, 对MFC中的应用结构类,菜单类,窗口,对话框有了理解。 2〕也了解了数据库的有关知识,学会了一些常用的数据库查询语句,对...

    .net6通用权限管理系统、后台框架、信息管理系统基础框架、中台后台管理.zip

    这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等...

Global site tag (gtag.js) - Google Analytics