当前位置:文档之家› 实验十四 应用Spring AOP进行访问权限控制

实验十四 应用Spring AOP进行访问权限控制

实验十四 应用Spring AOP进行访问权限控制
实验十四 应用Spring AOP进行访问权限控制

实验十四使用Spring AOP进行访问控制

一、实验目的

1.掌握切面、切入点及通知的定义

2.掌握基于注解方式进行Spring AOP开发

二、实验环境

1.Tomcat

2. MyEclipse

三、实验描述

使用基于注解方式进行AOP开发

使用环绕通知进行访问控制:通过方法参数决定是否可访问该方法───当参数值为“sise”时允许访问,否则(如实参为“AAA”)不允许访问。参考以下客户端代码编写程序。

运行结果:

login()实参为sise login()实参不是sise

四.实验步骤:

①创建一个java项目;

②将下面所列的JAR文件构建到项目路径中:

③在配置文件中引入aop命名空间;

④定义一个切面,使用环绕注解定义环绕通知,对环绕注解同时设置切入点和参数两个属性;

⑤创建一个业务类接口及其实现类;

⑥创建Spring的配置文件,在其中定义业务Bean和切面Bean;

⑦创建测试类。

提示:在环绕通知中获取被拦截方法的参数,通过判断参数是否等于sise决定是否执行被拦截方法。

思考题:使用基于XML配置方式开发AOP实现上述权限控制时,应如何配置AOP?写出该配置文件。

数据访问权限集的作用

定义 数据访问权限集是一个重要的、必须设定的系统配置文件选项。对具有相同科目表、日历和期间类型的分类帐及其所有平衡段值或管理段值的定义读写权限,系统管理员将其分配至不同的责任以控制不同的责任对分类帐数据的访问。 可以定义以下三种类型的数据访问权限集: ?全部分类帐:授予分类帐中所有数据的访问权限。例如,在具有两个分类帐(A和B)的数据访问权限集中,可以授予对分类帐A中所有数据的只读权限,对分类帐B中所有数据的读写权限。 ?平衡段值:授予对所有或特定分类帐/平衡段值(BSV)组合的访问权限。例如,可能使用包含分类帐A的数据访问权限集,授予对平衡段值01的只读权限,授予对平衡段值02的读写权限,对于相同分类帐中的平衡段值03没有任何权限。这对于使用少量包含有许多平衡段值来表示多个公司或法人主体的分类帐的公司非常有用。 ?管理段值:授予对所有或特定分类帐/管理段值(MSV)组合的访问权限。例如,可能使用包含分类帐A的数据访问权限集,授予对管理段值100的只读权限,授予对管理段值200的读写权限,对于相同分类帐中的管理段值300没有任何权限。只在当在科目表中指定了管理段时,才能使用管理段值。 注:1.“全部分类帐”访问权限集类型提供比“平衡段值”或“管理段值”访问权限集类型更好的系统性能。 2.在分配特定平衡段值/管理段值时,可以分别指定所有值、包括子值的父值或子值。 目的 通过定义分类帐、平衡段值、管理段值的读写权限,来控制不同的责任对分类帐数据的访问,同时控制用户对平衡段值和管理段值的读写。 前提条件: ?分类帐必须已分配给具有“完成”状态的会计科目设置。

?分配至数据访问权限集的分类帐(集)必须共用相同科目表、日历和期间类型。 ?需要进一步限制对分类帐、分类帐集或分类帐/分类帐集的特定平衡段值或管理段值的读写权限; 因为在创建分类帐(集)时,系统自动创建数据访问权限集。 创建使用的职责: 1.总帐超级用户—定义数据访问权限集 2.系统管理员—分配数据访问权限集 使用说明 1.必须为每个数据访问权限集指定三种类型之一。在定义之后,不能更改类型。只能添加或删除数据 访问权限集中指定的分类帐/分类帐集和段值。 2.在以下情况发生时,Oracle General Ledger会自动创建数据访问权限集: ?创建分类帐 ?定义分类帐集 2.1分类帐的系统生成数据访问权限集使用与分类帐相同的名称。此数据访问权限集使用“全部分类 帐”访问权限集类型,提供对分类帐的完全读写权限。 分类帐集的系统生成数据访问权限集使用与分类帐集相同的名称。此数据访问权限集使用“全 部分类帐”访问权限集类型,提供对分配给分类帐集的所有分类帐的完整读写权限。 2.2全部分类帐访问权限 需要具有全部分类帐访问权限才能执行某些操作,如打开和关闭期间、创建汇总帐户、创建明细帐户、创建预算以及执行成批维护。全部分类帐权限意味着具有分类帐及其所有平衡段值 或管理段值的完全读写权限。 要获得全部分类帐访问权限,的数据访问权限集必须为以下类型之一: ?“全部分类帐”数据访问权限集类型,提供对分类帐的读写权限。 ?“平衡段值”数据访问权限集类型,该类型为使用“所有值”复选框的分类帐提供对所有 平衡段值的读写权限。

11 BO数据权限控制

1、在数据库新建权限控制表,记录登录人员及其拥有的权限,下面的例子是基于MS SQL Server 2005和BO R2: CREATE TABLE SIS_CTL_User( name varchar(50),--登录人员ID user_desc varchar(50),--登录人员描述,可为空 Region varchar(20),--有数据权限的区域 country varchar(10),--有数据权限的国家 Sub_Region varchar(10),--有数据权限的小区 City varchar(20),--有数据权限的城市 brand varchar(20),--有数据权限的品牌 Sub_Brand varchar(20)----有数据权限的子品牌 ) 对于地区和产品2个权限,如果记录Sub_Region的数据权限,则Region可以不填,其余类似,即只需要将拥有权限的那层填充即可,上级、下级不需要填。 模拟测试数据: 用户test1拥有Region EOC的权限,用户test2拥有Sub_Region WOC1、WOC2的权限:insert into SIS_Ctl_User(name,region) values('test1','EOC'); insert into SIS_Ctl_User(name,sub_region) values('test2','WOC1'); insert into SIS_Ctl_User(name,sub_region) values('test2','WOC2'); 2、在BO控制台将test1加入组Region,test2加入组Sub_Region(目的是将权限控制应用在组上,如果是对单个用户应用权限控制,则不需要加入组) 3、在Universe配置权限控制: 新建2个限制,一个是限制大区的权限,一个限制小区的权限: 新建访问限制,在新开的窗口输入限制名称“大区权限”,在下面的部分选择“行”,

网络层访问权限控制技术ACL详解

网络层访问权限控制技术ACL详解 技术从来都是一把双刃剑,网络应用与互联网的普及在大幅提高企业的生产经营效率的同时,也带来了诸如数据的安全性,员工利用互联网做与工作不相干事等负面影响。如何将一个网络有效的管理起来,尽可能的降低网络所带来的负面影响就成了摆在网络管理员面前的一个重要课题。 A公司的某位可怜的网管目前就面临了一堆这样的问题。A公司建设了一个企业网,并通过一台路由器接入到互联网。在网络核心使用一台基于IOS的多层交换机,所有的二层交换机也为可管理的基于IOS 的交换机,在公司内部使用了VLAN技术,按照功能的不同分为了6个VLAN。分别是网络设备与网管(VLAN1,10.1.1.0/24)、内部服务器(VLAN2)、Internet连接(VLAN3)、财务部(VLAN4)、市场部(VLAN5)、研发部门(VLAN6),出口路由器上Fa0/0接公司内部网,通过s0/0连接到Internet。每个网段的三层设备(也就是客户机上的缺省网关)地址都从高位向下分配,所有的其它节点地址均从低位向上分配。 自从网络建成后麻烦就一直没断过,一会儿有人试图登录网络设备要捣乱;一会儿领导又在抱怨说互联网开通后,员工成天就知道泡网;一会儿财务的人又说研发部门的员工看了不该看的数据。这些抱怨都找这位可怜的网管,搞得他头都大了。那有什么办法能够解决这些问题呢?答案就是使用网络层的访问限制控制技术――访问控制列表(下文简称ACL)。 那么,什么是ACL呢?ACL是种什么样的技术,它能做什么,又存在一些什么样的局限性呢? ACL的基本原理、功能与局限性 网络中常说的ACL是Cisco IOS所提供的一种访问控制技术,初期仅在路由器上支持,近些年来已经扩展到三层交换机,部分最新的二层交换机如2950之类也开始提供ACL的支持。只不过支持的特性不是那么完善而已。在其它厂商的路由器或多层交换机上也提供类似的技术,不过名称和配置方式都可能有细微的差别。本文所有的配置实例均基于Cisco IOS的ACL进行编写。 基本原理:ACL使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。 功能:网络中的节点资源节点和用户节点两大类,其中资源节点提供服务或数据,用户节点访问资源节点所提供的服务与数据。ACL的主要功能就是一方面保护资源节点,阻止非法用户对资源节点的访问,另一方面限制特定的用户节点所能具备的访问权限。 配置ACL的基本原则:在实施ACL的过程中,应当遵循如下两个基本原则: 最小特权原则:只给受控对象完成任务所必须的最小的权限 最靠近受控对象原则:所有的网络层访问权限控制 局限性:由于ACL是使用包过滤技术来实现的,过滤的依据又仅仅只是第三层和第四层包头中的部分信息,这种技术具有一些固有的局限性,如无法识别到具体的人,无法识别到应用内部的权限级别等。因此,要达到end to end的权限控制目的,需要和系统级及应用级的访问权限控制结合使用。 ACL配置技术详解 “说那么多废话做什么,赶快开始进行配置吧。”,A公司的网管说。呵呵,并不是我想说那么多废话,因为理解这些基础的概念与简单的原理对后续的配置和排错都是相当有用的。说说看,你的第一个需求是什么。 “做为一个网管,我不期望普通用户能telnet到网络设备”――ACL基础 “补充一点,要求能够从我现在的机器(研发VLAN的10.1.6.66)上telnet到网络设备上去。”。hamm,是个不错的主意,谁都不希望有人在自己的花园中撤野。让我们分析一下,在A公司的网络中,除出口路由器外,其它所有的网络设备段的是放在Vlan1中,那个我只需要在到VLAN 1的路由器接口上配置只允许源地址为10.1.6.66的包通过,其它的包通通过滤掉。这中只管源IP地址的ACL就叫做标准IP ACL: 我们在SWA上进行如下的配置:

WEB应用数据权限控制

WEB应用 数据权限控制 轻量级解决方案 aliang 2012-3-2

目录 1前言 (3) 2方案目标 (4) 3设计思路 (4) 4逻辑流程图 (6) 5数据库表设计 (7) 6关键技术点 (7) 7方案应用 (8) 8总结 (9)

1前言 很早就想把自己关于WEB应用中数据权限控制的思考写出来同大家分享,一直没有抽出时间,今天总算把此码成文字,以便能给对此感兴趣的朋友提供一种思路。 在许多应用开发中我们都会涉及到权限管理,当然,权限管理主要分两部分,即功能权限和数据访问权限。针对功能权限的控制,想必很多朋友都有很成熟的方案,在此不再废话。本文档主要探讨在WEB应用开发中的数据权限控制。 现在,许多的软件公司开发WEB应用都是利用开源框架S(Struts)S(Spring)H(Hibernate)或S(Struts)S(Spring)I(ibatis)来进行WEB应用开发的。关于数据权限的控制一般都是在代码开发时对访问数据库数据的SQL语句添加涉及数据权限控制的WHERE条件来实现。这样做的弊端就是在开发时就要详细分析哪些数据需要加入权限控制,并且这些关于数据权限控制的代码散布到整个应用中。一旦需要调整时就要对许多的SQL语句扒拉一边进行修改,很是耗费精力。 在做项目时,我也同样经受过这样的痛苦,于是我就想,能否把WEB应用的数据权限控制独立出来,就象Spring和切面编程一样,做到代码侵入度最低,灵活方便的添加数据权限控制。于是就有了我下面的思考和验证。 许多成熟的开发平台都有自己的一套关于数据权限控制的方案,这些控制都是依托数据集来完成的,通过把数据访问的规则加到数据集上来实现对数据访问的控制。但在WEB应用开发中,这些开源框架中都没有数据集的概念或展现,准确的说是很难在开发或运行状态下获取到有哪些数据集及数据项。 其实数据集的本质就是SQL语句返回的结果集(从XML或表格文件等形成的数据集不在此讨论范围),对数据集加入数据访问控制就是对SQL语句加入数据过滤条件。既然开源框架中没有数据集可用,那我们是否可以把数据访问控制直接应用到数据库表或视图上来达到目的呢?经过思考和验证完全可以做到。

BI数据权限解决方案

BI数据分析是目前企业的热门应用,而对企业来说,权限控制是非常重要的,尤其是作为决策用的企业报表。目前基于微软SQL Server体系的BI架构为Integration Services + Analysis Service + Reporting Services,Integration Services和Analysis都属于应用后台的服务,不会在用户前端展现,其权限控制体系不在我们这篇文章的讨论范围内(但是实现数据级权限控制,需要Analysis Services的参与)。而对于前端展示用的企业报表,权限控制体系分为2种:报表级权限和数据级权限。报表级权限较为简单,主要用于控制谁能够看这个报表;数据级权限则比较复杂了,任何人看同一张报表,报表上的数据只能是他有权限查看的数据。简单说,就是总经理看到的数据和经理看到的数据是不一样的,虽然他们在看同一张报表。比较报表级权限和数据级权限,会发现如果实现了数据级权限的控制,那么企业报表是否需要进行权限控制已经不再重要(当然,为了界面友好性,还是应该控制下的)。 这篇文章主要就是讲述基于SQL Server架构的BI数据级权限的解决方案,这也是我给一个德国大型跨国企业客户实施其BI项目中,对方非常重视的一个功能。这里先简单介绍下这个客户和项目,出于保密要求,我把该客户叫做Customer S(简称CS,呵呵,不是那个游戏哦)。 CS项目前端采用Sharepoint,后台采用SQL Server,主要分析客户S的销售数据。CS的组织结构分为部门、区域;部门和区域是相互交叉的;某个部门的总部人员能够看到全国所有区域的数据;而区域员工则只能看到该区域的数据了。用户能够查看的数据权限,需要在网页上可以进行配置。这就是客户对数据级权限的要求。 针对这些需求,数据级权限解决方案采用如下架构: 报表查看流程说明: 用户查看报表

数据库权限分配

管理软件中的用户权限分配权限的分配是所有管理软件中必不可少的部分,其实现的方式主要有两大类,以下做出简单的介绍。 1.基于角色管理的系统访问控制 MIS(管理信息系统)中包括信息量巨大以及不同程度的信息敏感度,各种有访问需求的用户,使得其安全管理非常复杂。基于角色的系统安全控制模型是目前国际上流行的先进的安全管理控制方法。其特点是通过分配和取消角色来完成用户权限的授予和取消。安全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任和资历再被指派为不同的角色。这样,整个访问控制过程就分成两个部分,即访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离,如下图所示,角色可以看成是一个表达访问控控制策略的语义结构,它可以表示承担特定工作的资格。 例: 这种控制模式下DBMS会根据不同users所属的role不同来做权限的验证,每个role具有其特定的权限,然后再配合一定的程序来控制user在用户界面中的操作权限。 连接数据库的字符串示例: CString DataBaseName=_T("MFTDMA"); CString DataBaseServer=_T("PC-20090727OAEE"); CString temp=_T("Provider=SQLOLEDB;Server=")+DataBaseServer+_T(";Database=")+ DataBaseName+_T(";uid="); temp.Append(name);

temp.Append(_T(";pwd=")); temp.Append(pwd); temp.Append(_T(";")); 优点:是主流的安全管理控制方式,代码中不会泄露数据库的连接用户及其密码,有很好的安全性,并可以一定程度上防止SQL注入攻击,权限体系的结构明晰,不容易混淆。适用于权限层次比较复杂的系统。 缺点:配置权限到角色的工作比较复杂,需要对每个角色的权限有清晰的了解并精确的在DBMS中建立权限分配及约束。此外在用户登录验证时需要一定的处理来避免权限分配的冲突。 2.编程实现系统访问控制 基于角色管理的系统访问控制是通过DBMS和一定程序控制来实现用户的权限控制,此外也可以完全利用程序代码来实现权限的控制,其基本的思想是:在数据库连接时使用一个统一的数据库用户(以下称为DBUSER)和密码,DBUSER拥有数据库的操作权限(包括增加、删除、修改、更新、查询等)。在应用程序的用户(以下称为PUSER)登录时使用DBUSER连接数据库并查询该PUSER的权限,再根据PUSER的权限信息通过编写控制程序来实现其所能进行的操作。 例:建立如下图的用户表 在用户登录时查询用户表里的信息验证用户输入的用户名和密码,验证成功后记录该用户的用户类型以此来控制该用户所能进行的操作。 连接数据的字符串示例: Provider=SQLOLEDB.1;Server=PC-20090727OAEE;Database=ABC; uid=sa; pwd=330330; 优点:实现比较简单,由于是利用程序做权限控制所以有一定的灵活性,适合用于权限层次结构比较简单的系统。 缺点:在代码中会出现连接数据库的用户名及其密码,如果被反编译则会让破坏者取得访问数据库的权限。

主流BI工具如何设置访问内容的权限

描述 访问BI分析模板内容的权限是指不同用户在使用同一张数据表中的字段进行数据分析时可使用的数据不同,最后导致看到的即时分析内容也不一样的效果,比如说员工的工资表,管理员创建工资表模板,将所有员工的工资信息都添加进去,但是在公司员工用自己的账号登录公司系统时却只能看到自己的工资信息,这就是控制访问模板内容的权限,是根据登录用户控制模板的访问权限。 1.示例 在主流BI工具FineBI即时分析中用表格组件展现了各个员工的工资信息,当前用户只能看到自己的工资信息。 2.数据准备 在主流BI工具FineBI的数据库中新建一张表test,表中包含有2个字段,用户名和工资,如下图: 注:表中的用户名字段中的数据应该来自于服务器数据集中的用户信息表中的uesrname字段。

3.用管理员账号登录主流BI工具FineBI的数据决策系统,点击数据配置>业务包管理,为BIDemo业务包添加一个数据表,即上面新建的数据表,如下图: 具体的数据表添加方式请查看主流BI工具FineBI的数据表的添加与删除。 4.登录用户名所在字段配置 登录用户名所在字段配置是指将主流BI工具FineBI系统的登录用户与该用户名所在字段建立联系起来,以便于对用户进行权限控制,点击管理系统>BI数据配置>权限配置管理,如下图:

5.点击请选择选择用户名所在字段,页面会跳转到主流BI工具FineBI的数据表选择界面,由于前面的配置用户同步数据集时,使用的是服务器数据集,所以可以设置为用户名所在字段的可以是服务器数据集staff,也可以是staff数据集的数据来源表,这里选择服务器数据集staff,与同步数据集保持一致。如下图:

相关主题
文本预览
相关文档 最新文档