Vincent

Vicent's blog
随笔 - 74, 文章 - 0, 评论 - 5, 引用 - 0
数据加载中……

acegi-security-sample-contacts-filter例子学习(一)

这是一个 Acegi 官方的例子。它以联系人的管理为例子,说明如何使用 Acegi 作权限控制。这个例子包含在 acegi 的包里面。下载地址: http://prdownloads.sourceforge.net/acegisecurity/acegi-security-0.8.3.zip?download

联系人管理说明了下列中心的Acegi安全控制能力:

  • Role-based security (基于角色的安全) ――每个责任人都是某个角色的一员。而角色被用来限制对某些安全对象的访问。
  • Domain object instance security (域对象实例安全) ――合同,这个系统里的主要域对象,拥有一个访问控制列表( ACL ),用来指明谁允许读、管理和删除对象。
  • Method invocation security (方法调用安全)―― 这个 ContactManager 服务层对象 包含一些受保护的和公开的方法。
  • Web request security Web 请求安全) ――这个“ /secure URI 路径被使用 Acegi 安全保护,使得没有 ROLE_USER 角色的用户无法访问。 .
  • Security unaware application objects (保护未知的应用对象) ――受保护的对象与 Acegi 之间没有明显的耦合或契约,所以它们没有察觉到安全是由 Acegi 提供的。 *
  • Security taglib usage (安全标签库使用) ――所有的 JSP 使用 Acegi 安全标签库来封装安全信息。 *
  • Fully declarative security( 完全声明式的安全 ) ――每一个安全方面特性都是在 application context 里面使用标准的 Acegi 安全对象来配置的。 *
  • Database-sourced security data (支持数据库来源的安全数据) ――所有的用户、角色和 ACL 信息都可以从一个兼容 JDBC 的内存数据库获得。
  • Integrated form-based and BASIC authentication (集成基于表单和 BASIC 验证)―― 任何 BASIC 验证头部被检测以及作为验证使用。默认使用基于表单的普通交互式验证。
  • Remember-me services (记住我的服务)―― Acegi 安全的插件式的“ remember-me 策略被演示。在登录表单里有一个相关的选择框与之对应。

联系人管理的业务功能描述:

1.1. 每个用户登录后,可以看到一个联系人列表。例如,

marissa's Contacts

id

Name

Email

1

John Smith

john@somewhere.com

Del

Admin Permission

2

Michael Citizen

michael@xyz.com



3

Joe Bloggs

joe@demo.com

Del


4

Karen Sutherland

karen@sutherland.com

Del

Admin Permission

Add

说明:用户没有权限访问的联系人信息,将不会显示。

2.2. 用户可以增加新的联系人信息。

3.3. 如果有删除权限,用户可以看到在联系人后面有一个“ Del ”链接。用户可以点击这个链接来删除某个联系人信息。

4.4. 如果有管理权限,用户可以看到在联系人后面有一个“ Admin Permission ”链接。用户可以点击这个链接来管理访问这个联系人的权限。例如,

Administer Permissions

sample.contact.Contact@26807f: Id: 1; Name: John Smith; Email: john@somewhere.com

-R--- [2] dianne

Del

-RW-D [22] peter

Del

A---- [1] marissa

Del

Add Permission Manage

说明:每一行记录包含有 3 列。

第一列表示权限,例如,“ -RW-D ”表示可读、可写、可删除。

第二列也表示权限,但它是以类似 unix 权限的数字表达。例如,“ [22] , 表示可读、可写、可删除。

第三列是用户名称。

每一行记录后面都有一个“ Del ”链接。点击这个链接,可以删除掉指定用户对这个联系人信息的权限。

5.5. 用户可以为某个联系人信息添加权限。例如,

Add Permission

Contact:

sample.contact.Contact@1787005: Id: 1; Name: John Smith; Email: john@somewhere.com


Recipient:


Permission:


说明:权限是动态添加的。例如,上图中给用户 scott 增加了读联系人 John 的权限。那么 scott 马上就可以看到联系人 John 的信息了。

posted on 2006-09-01 13:44 Binary 阅读(627) 评论(0)  编辑  收藏 所属分类: Acegi


只有注册用户登录后才能发表评论。


网站导航: