访问控制列表(ZendAcl)

访问控制列表(ZendAcl)

ID:39389147

大小:323.31 KB

页数:14页

时间:2019-07-02

访问控制列表(ZendAcl)_第1页
访问控制列表(ZendAcl)_第2页
访问控制列表(ZendAcl)_第3页
访问控制列表(ZendAcl)_第4页
访问控制列表(ZendAcl)_第5页
资源描述:

《访问控制列表(ZendAcl)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第16章访问控制列表(Zend_Acl)访问控制列表(ACL)是应用在路由器接口的指令列表。该指令列表用来告诉路由器哪些数据包可以接收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址、目的地址、端口号等的特定指示条件来决定。使用ZendFramework中的Zend_Acl组件即可实现完整的访问控制。该组件提供了一整套实现访问控制列表(AccessControlList)的解决方案。合理使用该类组件,可以实现用户所要求的访问控制。本章就来向读者介绍如何使用Zend_Acl组件实现访问控制

2、功能。16.1资源与角色Zend_Acl组件中定义了两个重要的概念,即资源与角色。资源(Resource)是指一个被限制访问的对象;角色(Role)则是指可以发出请求来访问资源的对象。Zend_Acl组件中分别以Zend_Acl_Role类与Zend_Acl_Resource类来表示资源与角色。要创建角色与资源只需要为这些类实例化对象即可。在实例化对象时,需要为资源或者角色提供参数(详情请参见本章后面的实例代码)。16.1.1Zend_Acl中的资源在Zend_Acl中,资源就是所有被访问对象的统称。如论坛

3、中的贴子、新闻管理系统中的新闻等都可以被看作是资源。在Zend_Acl中,创建一个资源非常简单。Zend_Acl提供了Zend_Acl_Resource_Interface接口,该接口使开发者可以非常方便的创建Resource。为了使Zend_Acl把某个对象当作一个Resource,一个类只需要实现包含了一个方法getResourceId()的接口即可。另外,Zend_Acl_Resource是一个包含在Zend_Acl里作为一个基本的Resource实现的类,开发者可以任意对其进行扩展。16.1.2Ze

4、nd_Acl中的角色与资源相对应,在Zend_Acl中,角色就是所有进行访问对象的统称。如论坛中的各种用户贴子、新闻管理系统中的新闻创建者与管理者等都可以被看作是角色。Role(角色)与Resource(资源)一样,其创建过程也非常简单。Zend_Acl提供了Zend_Acl_Role_Interface接口方便开发者创建Roles。为了使Zend_Acl把某个对象当作一个Role,一个类只需要实现这个只包含了一个方法getRoleId()的接口。与Zend_Acl_Resource一样,Zend_Acl_

5、Role也是一个包含在Zend_Acl里作为一个基本的Role实现的类。16.2创建并使用访问控制列表在介绍完了资源与角色之后,本节就来介绍如何创建并使用ACL(访问控制列表)。通常这一使用过程包括以下几步:创建ACL、注册角色、定义访问控制以及查询ACL等。本节就这几步分别为读者作介绍。16.2.1创建ACL从本章引言中对访问控制列表的定义可以看出,ACL可以表示任何一组物理或虚拟对象。为了便于理解,这里将创建一个基本的论坛(BBS)的ACL,该ACL将维护若干个等级的组。为创建一个新的ACL对象,可以使

6、用new关键字直接不带参数地实例化这个ACL类。16.2.2注册角色及定义访问控制本节来介绍如何向已有的ACL中注册角色。要将指定的角色注册到访问控制列表中,可以使用访问控制列表实例的addRole()方法,该方法的语法格式如下所示。addRole($role,$parentrole);allow($role,$resource,$privilege,$assert);deny($role,$resource,$privilege,$assert);论坛系统的用户通常需要一个分级的权限系统来决定其用户的授权

7、能力。如,“Guest”(未注册用户)组允许有查看的权限;“User”(注册用户)有查看、发表、编辑的权限;“Moderator”(版主)组有查看、发表、编辑、删除等权限;而“Administrator”(管理员)组的任务包括所有其他组的内容并包括敏感的信息、用户管理、后台配置数据和备份/导出等。16.2.3查询ACL状态使用ACL对象的isAllowed()方法可以对指定角色是否有指定权限进行查询。该方法将会根据指定角色是否有某操作的权限而返回相应的布尔值。使用格式如以下代码所示。isAllowed($r

8、ole,$resource,$privilege);以上代码中参数$role为指定的角色,可以为角色类型、字符串或者数组,默认为null;$resource为指定的资源,也可以为资源类型、字符串或者数组默认为null,指所有资源;参数$privilege为指定的权限,可以为字符串或者数组,默认的值为null,指代所有权限。16.3ACL的高级用法上一节所介绍的ACL访问控制只是ACL最基本的用法。而实际应用中可能

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。