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 閱讀(642) 評論(0)  編輯  收藏 所屬分類: Acegi

          主站蜘蛛池模板: 乡宁县| 全南县| 霍城县| 五莲县| 宾阳县| 漾濞| 咸丰县| 岳池县| 桐庐县| 双牌县| 安乡县| 重庆市| 东乌| 大理市| 都兰县| 宁明县| 长垣县| 梨树县| 泾源县| 梁平县| 五大连池市| 治县。| 怀仁县| 扎兰屯市| 定日县| 甘孜县| 正镶白旗| 黄骅市| 遂平县| 墨江| 万安县| 揭阳市| 萨迦县| 克东县| 上犹县| 大悟县| 偃师市| 博罗县| 望城县| 宣城市| 济阳县|