权限控制可以看作一个filter模式的应用, 这也符合AOP思想的应用条件。在一个简化的图象中,我们只需要将一个判别函数
isAllowed(subject, operation,
resource)插入到所有安全敏感的函数调用之前就可以了。虽然概念上很完美,具体实现的时候仍然有一些细节上的问题。基本的困难在于很难在最细的粒
度上指定权限控制规则(连续的?动态的?可扩展的?),因而我们只能在一些关键处指定权限规则,或者设置一些整体性的权限策略,然后通过特定的推理来推导
出细粒度的权限规则,这就引出结构的问题。我们需要能够对权限控制策略进行有效的描述(控制策略的结构),并且决定如何与程序结构相结合。
subject,
operation和resource为了支持推理,都可能需要分化出复杂的结构,而不再是简单的原子性的概念。而在与程序结构结合这一方面,虽然AOP
使得我们可以扩展任何函数,但这种扩展需要依赖于cutpoint处所能得到的信息,因而权限控制的有效实施也非常依赖于功能函数本身良好的设计。有的时
候因为需要对结构有过于明确的假定,权限控制的实现不得不牺牲一定的通用性。
下面我们将分别讨论一下operation, subject和resource的结构分解的问题。首先是operation。
说到推理结构,让人最先想起的就是决策树,树形结构,在面向对象语言中可以对应于继承。金字塔式的树形结构也正是在现实世界中我们应用最多的控制结构。通过层层分解,operation的结构可以组织为一棵树,
应用程序 ==> 各个子系统 ==> 每个子系统的功能模块 ==> 子功能模块
==> 每个模块的功能点(具有明确的业务含义) ==> 每个功能点对应的访问函数(程序实现中的结构)
一个常见的需求是根据权限配置决定系统菜单树的显示,一般控制用户只能看到自己有权操作的功能模块和功能按钮。这种需求的解决方法是非常直接的。首先,在
后台建立子系统到功能模块,功能模块到功能点以及功能点到实现函数之间的映射表(如果程序组织具有严格规范,这甚至可以通过自动搜集得到)。然后,在权限
配置时建立用户与功能点之间的关联。此时,通过一个视图,我们就可以搜集到用户对哪些功能模块具有访问权限的信息。
为了控制菜单树的显示,witrix平台中的SiteMap采用如下策略:
1. 如果用户对某个子功能具有操作权限,则所有父菜单项都缺省可用
2. 如果用户对某个功能具有操作权限,并且标记为cascade,则所有子菜单项都自动缺省可用
3. 如果明确指定功能不可用,则该菜单及子菜单都强制不可用
4. 如果明确指定功能对所有人可用,则不验证权限,所有子菜单自动缺省可用
4. 强制设定覆盖缺省值
5. 不可用的菜单缺省不可见
6. 明确标记为可见的菜单即使不可用也可见
7. 父菜单可见子菜单才可见
我们通过预计算来综合考虑这些相互影响的控制策略。尽量将推导运算预先完成也是解决性能问题的不二法门。
在witrix平台中,每一次网络访问的url都符合jsplet框架所要求的对象调用格式,需要指定objectName和objectEvent参
数,这就对应于功能点的访问函数。访问控制点集中在objectManager并且访问格式是标准的。使用spring等AOP方式实现细粒度访问控制,
困难似乎在于不容易引入外部配置信息(例如功能点信息等),而且控制点所对应的对象函数格式也不统一,因而多数需要在细粒度上一一指定。
分享到:
相关推荐
此错误通常与文件系统操作有关,比如试图读取或写入一个不存在的文件,或者文件权限不正确。 ### 排查步骤 #### 1. 检查命令行参数 首先,确保使用的IMPDP命令行参数是正确的。例如,在提供的例子中,命令如下: `...
在Delphi编程环境中,处理Excel数据是一项常见的任务,这通常涉及到数据的导入和导出功能。本实例将探讨如何在Delphi中实现Excel文件的读取和写入操作,以便于数据交换和处理。 首先,我们需要了解Delphi中用于与...
这是任何一个信息管理系统都需要的部分,操作只能由专人进行,只有招生管理部门的工作人员才能拥有权限,特别是数据的导入进度和通知书打印,如果没有安全管理部分,后果难以想象,可能每次登录都需要用户身份的...
3. `openGauss-5.0.0-openEuler-64bit-om.tar.gz`:这包含了操作管理器(Operation Manager,简称OM)的文件,用于数据库的安装、升级和维护。 4. `upgrade_sql.tar.gz`:这个文件可能包含数据库升级所需的SQL脚本...
2. 创建缺失的目录:如果操作系统上不存在指定的目录,那么需要创建对应的目录。例如,若directory对象指向的是“E:\oradata\backup”,就需要在E:\oradata下创建一个名为backup的目录。 3. 修改directory对象:...
- 光学系统:精密设计的光学系统,保证光谱采集的准确性和稳定性。 ##### 第二节:RESULT Integration软件基本功能介绍 - **功能亮点**: - 灵活的工作流设计功能,支持自定义分析流程。 - 数据管理工具,方便...
在使用PyCharm进行Python编程时,有时会遇到需要以root权限运行脚本来完成特定任务的情况,比如访问某些受限资源或进行系统级别的操作等。然而,默认情况下,PyCharm和其他大多数IDE一样,并不会以root权限运行程序...
Plug-In通常被打包为一个可执行文件(.dll),然后通过CRM的解决方案导入系统。部署过程涉及创建自定义assembly,注册插件步骤,并将它们与事件相关联。开发者还可以选择将Plug-In部署在本地服务器或远程服务器上,...
2. **权限问题**:在执行插入操作时可能会遇到权限问题,确保运行脚本的用户具有足够的权限。 3. **网络连接问题**:检查 ES 节点的连接设置是否正确,确保网络通畅。 4. **数据格式问题**:确保数据格式与 ES 中...
2. **环境准备**:包括硬件环境、操作系统、数据库等基础环境的准备。 3. **软件安装**:安装BOS银企平台及相关组件。 4. **配置调整**:根据企业实际情况调整系统参数。 5. **测试验证**:进行全面的功能性和稳定性...
理解如何有效地导入和导出数据到Hadoop系统,以及如何在出现问题时恢复数据,是Hadoop操作中的关键环节。同时,监控系统性能,包括CPU利用率、内存使用、磁盘I/O等,对于保持系统稳定运行和及时发现潜在问题至关重要...
生信息数据库 imports and deletes and so on operation and to the scholarship evaluation related information classification statistics, in order to be able to draw the appraisal result. This system ...
模型通常以`.model`文件形式存在,其中定义了规则的模式,如`r, user, resource, operation`,表示用户(user)可以对资源(resource)执行操作(operation)。 2. **策略(Policy)**:策略是模型的具体实例,它...
2. **准备升级工具**: - 下载并安装TFTP客户端软件(如思科TFTP或3Cdaemon),这些工具可以帮助我们将升级包传输到路由器上。 - 确保TFTP服务器已正确配置,并且可以在本地网络中被路由器访问。 3. **进入路由器...
【 kepware 使用说明及案例详解】 kepware 是一家专注于工业连接软件的提供商,其核心产品...同时,kepware 的易用性和灵活性也使得它成为 IT 与 OT(Operation Technology)融合的重要桥梁,广泛应用于各种工业场景。
江苏经贸职业技术学院会计学院的历丽老师在其论文《Analysis of Common Problems in Operation of Accounting Software MYOB》中,基于自身的教学经验及实践体会,深入剖析了MYOB软件在实际操作过程中常见的问题,并...
1. **核心框架**:WOPHP系统的主体代码,可能包括路由控制、模板引擎、数据库操作、权限管理等关键组件。 2. **数据库结构**:SQL脚本文件,用于创建和初始化网站所需的数据库表结构。 3. **模板文件**:HTML、CSS和...
BOS,即Business Operation System,是用友软件公司为宅急送公司开发的核心业务系统,旨在提升企业的自动化办公和管理效率。BOS一期工程采用C/S架构,二期工程则转变为B/S架构,更适合互联网环境。传统项目如OA自动...
这里以MySQL为例,创建名为`zabbix`的数据库,并赋予相应的用户权限: ``` mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; mysql> GRANT ALL ON zabbix.* TO zbuser@'%' IDENTIFIED BY '...