我这两天在做会员系统的设计,我将权限部分从会员系统中独立出来,成为一个独立的系统。会员系统完成用户管理和身份认证,权限系统完成权授权管理和权限验证。
在我的权限系统中主要有这几个类或者接口:SecureFactory,SecureManager,SecureObject,SecureModule和Privilege。
SecureFactory:工厂类,负责构造SecureManager的实例。之所以这样做是想让SecureManager支持本地和远程两种调用方式,不同的调用方式用不同的SecureManager实现支持,比如EJBSecureManager。
SecureManager:权限系统对外的统一接口,提供grant,revoke,和权限查询的方法,采用接口设计。
SecureObject:授权的对象或者可进行权限判断的对象,采用接口设计。User,Group,Role或者组织机构,文件,URL资源等都是SecureObject。SecureManager在进行权限县官操作的时候只接受SecureObject对象。
SecureModule:权限判断逻辑的抽象,采用接口设计,提供gant和权限查询的方法.如上所述,权限系统中可以进行权限验证或者可授权的对象有很多种,不同的授权对象进行权限判断的时候都有自己的逻辑,因此要让权限系统尽可能满足这些要求,有足够的扩展性,我将这部分逻辑抽象出来。
Privilege:权限
这些类是怎样协作的呢?以一个基于角色认证的权限判断为例子,我是这样做的:
1。开发一个RoleSecureObject,让这个RoleScureObject可以接受角色对象
2。开发一个RoleSecureModule,完成具体的权限判断和权限查询的方法
3。在xml配置文件中进行配置。
申明RoleSecureObject,并设置这个SecureObject的module为RoleSecureModule
4。具体的判断代码:
SecureManager sm = SecureManager.getInstance();
sm.grant(new RoleSecureObject("Administrator"),"usermanager/add");
sm.hasPrivilege(new RoleSecureObject("Administrator"),"usermanager/add");
//或者
sm.hasPrivilege(new UserSecureObject("dev"),"usermanager/add");
如果是要对其他资源进行授权和权限判断只需要开发新的SecureObject和SecureModule并添加在xml配置文件中就行了。
分享到:
相关推荐
设计思路源于经典的RBAC模型,即:用户通过角色操作资源。在实现上,基本实现了功能权限,包含了资源菜单的显示控制以及页面上按钮粒度的显示控制。并且附送了使用Springboot发送邮件的功能。数据库:链接:...
一般而言,软件的配置,包含几个层面:包括数据,功能,流程,界面,角色权限,安全等等。 从业务需求来看,第一个最基本的要求是根据类目对商品数据结构化定制,几乎每个业务都是如此。其次是对一些核心功能模块的...
摘要 2 目录 3 第1章 项目说明 4 1.1 项目背景 4 1.2 问题定义 5 1.3 开发策略与方法 5 1.4 使用环境 6 1.5 设计思路 6 第2章 系统分析 7 2.1 新系统目标 7 2.2 系统可行性分析 8 2.3 系统需求分析 8 2.4 业务流程...
1.3 研究方法及设计思路 5 1.3.1 研究方法 5 1.3.2 设计思路 6 2、应用需求分析与可行性分析 6 2.1 应用需求分析 7 2.2 运行需求分析 8 2.3 其他需求分析 8 2.4 可行性分析 8 2.4.1经济可行性 8 2.4.2技术可行性 9 ...
从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计中在一个图片框中构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7中造型,...
三、设计思路 网络视频监控系统的建设将保证厂区各个职能部门人员对职责范围许可内的视频信息情况及时、准确的了解、掌握,监控系统实现系统化、科学化、现代化地统一管理,切实满足公安行业对于图像系统的管理和...
Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...
JEECG智能框架可以有效解决信息孤岛问题,生成统一代码、统一规范、统一设计思路,使你能在这个平台上,快速开发出高效高质量代码,缩短项目开发周期。 为什么选择JEECG?¶ 1.采用主流SSH2框架,容易上手; 代码...
举出一个生活中使用装饰者模式的例子,用程序实现思路 举个生活中的例子,俗话说"人在衣着马在鞍",把这就话用装饰者模式的语境翻译一下 ,"人通过漂亮的衣服装饰后,男人变帅了,女人变漂亮了;"。对应 上面的类图...
权限管理设计方案 数据安全模板-访问权限梳理表 数据治理服务解决方案 数据治理及数据资产化创新实践-京东 万振龙:数据治理与大数据平台设计 主数据管理实践白皮书(1.0版) Apache atlas使用说明文档 atlas安装 ...
15.1.4 新闻发布系统的设计思路 15.2 系统功能模块设计 15.3 数据库设计 15.3.1 数据库需求分析 15.3.2 数据库概念结构设计 15.3.3 数据库逻辑结构设计 15.3.4 数据库表的创建 15.3.5 数据库的连接 15.4 网站总体...
15.1.4 新闻发布系统的设计思路 15.2 系统功能模块设计 15.3 数据库设计 15.3.1 数据库需求分析 15.3.2 数据库概念结构设计 15.3.3 数据库逻辑结构设计 15.3.4 数据库表的创建 15.3.5 数据库的连接 15.4 网站总体...
15.1.4 新闻发布系统的设计思路 15.2 系统功能模块设计 15.3 数据库设计 15.3.1 数据库需求分析 15.3.2 数据库概念结构设计 15.3.3 数据库逻辑结构设计 15.3.4 数据库表的创建 15.3.5 数据库的连接 15.4 ...
15.1.4 新闻发布系统的设计思路 15.2 系统功能模块设计 15.3 数据库设计 15.3.1 数据库需求分析 15.3.2 数据库概念结构设计 15.3.3 数据库逻辑结构设计 15.3.4 数据库表的创建 15.3.5 数据库的连接 ...
07 属主属组及基于数字的权限管理 第5章 01 上节课复习 02 文件合并与文件归档 03 文件归档与两种压缩方式 04 vim编辑器 05 系统启动流程 06 grub加密 07 bios加密 08 top命令 09 free命令 10 进程管理 第6章 01...
结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体...
整套系统风格统一,界面整洁美观,设计思路清晰、学习培训简单,操作使用方便,有利于操作员顺利掌握、熟练使用。餐饮行业从业人员的流动性特别大,经常更换人员,新的操作员只要在相关人员的指导下,几个小时内就...
(二)设计思路 1. 教学设计 根据课程内容操作性强和中职新生知识、经验均比较欠缺的特点,灵活运用案例分析、操作演示、项目实做等教学方法,引导学生积极思考、主动吸纳、勤于练习、乐于实践,提高了教和学的效果...
APK权限大全 - Android必懂知识 最无私的Android资料(书籍+代码)分享[总结] Android中文帮助教程(非常合适新手入门) android程序编写及调试新手入门 大家一起学Android(Windows篇) android入门与提高必看指南 ...
8、CCFlow设计思路精巧、概念简单。只有线性、同表单分合流、异表单分合流、父子流程四个概念。 有涵盖多种行为的5*5的算法,流程模式实现现实生活中绝大多数模式(目前没有我们解决不了的问题)。 9、CCFlow的概念...