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

          主站蜘蛛池模板: 东丰县| 普宁市| 佛山市| 临西县| 永福县| 巴林左旗| 武隆县| 措美县| 永善县| 赤壁市| 基隆市| 鲁山县| 襄汾县| 高州市| 名山县| 乐清市| 阿瓦提县| 玉屏| 揭阳市| 左权县| 济宁市| 常山县| 云阳县| 唐河县| 天镇县| 岳池县| 新泰市| 筠连县| 桑日县| 嘉黎县| 玉树县| 莎车县| 彰武县| 肥西县| 平果县| 来安县| 太谷县| 彰化县| 益阳市| 巫山县| 三门县|