xyz20003

          www.mossle.com
          隨筆 - 34, 文章 - 0, 評論 - 124, 引用 - 0
          數據加載中……

          Spring Security手冊更新——添加“管理會話”和對namespace,database的整理

          新增的部分有,第八章“管理會話”,附錄D,E分別整理了命名空間中的元素和屬性,以及數據庫表結構。

          10. 管理會話
          10.1. 添加監聽器
          10.2. 添加過濾器
          10.3. 控制策略
          10.3.1. 后登陸的將先登錄的踢出系統
          10.3.2. 后面的用戶禁止登陸
          D. 命名空間
          D.1. http
          D.2. authentication-provider
          D.3. ldap-server
          D.4. global-method-security
          E. 數據庫表結構
          E.1. User
          E.2. Group
          E.3. RememberMe
          E.4. ACL

          posted @ 2009-06-22 10:02 臨遠 閱讀(1112) | 評論 (3)編輯 收藏

          圖解Spring Security默認使用的過濾器

          第 9 章 圖解過濾器

          auto-config='true'時的過濾器列表

          圖 9.1. auto-config='true'時的過濾器列表


          9.1. HttpSessionContextIntegrationFilter

          org.springframework.security.context.HttpSessionContextIntegrationFilter

          圖 9.2. org.springframework.security.context.HttpSessionContextIntegrationFilter


          位于過濾器頂端,第一個起作用的過濾器。

          用 途一,在執行其他過濾器之前,率先判斷用戶的session中是否已經存在一個SecurityContext了。如果存在,就把 SecurityContext拿出來,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在,就創建一個SecurityContext出來,還是放到SecurityContextHolder中, 供Spring Security的其他部分使用。

          用途二,在所有過濾器執行完畢后,清空SecurityContextHolder,因為SecurityContextHolder是基于ThreadLocal的,如果在操作完成后清空ThreadLocal,會受到服務器的線程池機制的影響。

          9.2. LogoutFilter

          org.springframework.security.ui.logout.LogoutFilter

          圖 9.3. org.springframework.security.ui.logout.LogoutFilter


          只處理注銷請求,默認為/j_spring_security_logout。

          用途是在用戶發送注銷請求時,銷毀用戶session,清空SecurityContextHolder,然后重定向到注銷成功頁面。可以與rememberMe之類的機制結合,在注銷的同時清空用戶cookie。

          9.3. AuthenticationProcessingFilter

          org.springframework.security.ui.webapp.AuthenticationProcessingFilter

          圖 9.4. org.springframework.security.ui.webapp.AuthenticationProcessingFilter


          處理form登陸的過濾器,與form登陸有關的所有操作都是在此進行的。

          默認情況下只處理/j_spring_security_check請求,這個請求應該是用戶使用form登陸后的提交地址,form所需的其他參數可以參考:???

          此過濾器執行的基本操作時,通過用戶名和密碼判斷用戶是否有效,如果登錄成功就跳轉到成功頁面(可能是登陸之前訪問的受保護頁面,也可能是默認的成功頁面),如果登錄失敗,就跳轉到失敗頁面。

          9.4. DefaultLoginPageGeneratingFilter

          org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter

          圖 9.5. org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter


          此過濾器用來生成一個默認的登錄頁面,默認的訪問地址為/spring_security_login,這個默認的登錄頁面雖然支持用戶輸入用戶名,密碼,也支持rememberMe功能,但是因為太難看了,只能是在演示時做個樣子,不可能直接用在實際項目中。

          如果想自定義登陸頁面,可以參考:第 4 章 自定義登陸頁面

          9.5. BasicProcessingFilter

          org.springframework.security.ui.basicauth.BasicProcessingFilter

          圖 9.6. org.springframework.security.ui.basicauth.BasicProcessingFilter


          此過濾器用于進行basic驗證,功能與AuthenticationProcessingFilter類似,只是驗證的方式不同。有關basic驗證的詳細情況,我們會在后面的章節中詳細介紹。

          有關basic驗證的詳細信息,可以參考:第 12 章 basic認證

          9.6. SecurityContextHolderAwareRequestFilter

          org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter

          圖 9.7. org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter


          此過濾器用來包裝客戶的請求。目的是在原始請求的基礎上,為后續程序提供一些額外的數據。比如getRemoteUser()時直接返回當前登陸的用戶名之類的。

          9.7. RememberMeProcessingFilter

          org.springframework.security.ui.rememberme.RememberMeProcessingFilter

          圖 9.8. org.springframework.security.ui.rememberme.RememberMeProcessingFilter


          此過濾器實現RememberMe功能,當用戶cookie中存在rememberMe的標記,此過濾器會根據標記自動實現用戶登陸,并創建SecurityContext,授予對應的權限。

          有關rememberMe功能的詳細信息,可以參考:第 14 章 自動登錄

          9.8. AnonymousProcessingFilter

          org.springframework.security.providers.anonymous.AnonymousProcessingFilter

          圖 9.9. org.springframework.security.providers.anonymous.AnonymousProcessingFilter


          為了保證操作統一性,當用戶沒有登陸時,默認為用戶分配匿名用戶的權限。

          有關匿名登錄功能的詳細信息,可以參考:第 15 章 匿名登錄

          9.9. ExceptionTranslationFilter

          org.springframework.security.ui.ExceptionTranslationFilter

          圖 9.10. org.springframework.security.ui.ExceptionTranslationFilter


          此過濾器的作用是處理中FilterSecurityInterceptor拋出的異常,然后將請求重定向到對應頁面,或返回對應的響應錯誤代碼。

          9.10. SessionFixationProtectionFilter

          org.springframework.security.ui.SessionFixationProtectionFilter

          圖 9.11. org.springframework.security.ui.SessionFixationProtectionFilter


          防御會話偽造攻擊。有關防御會話偽造的詳細信息,可以參考:第 16 章 防御會話偽造

          9.11. FilterSecurityInterceptor

          org.springframework.security.intercept.web.FilterSecurityInterceptor

          圖 9.12. org.springframework.security.intercept.web.FilterSecurityInterceptor


          用戶的權限控制都包含在這個過濾器中。

          功能一:如果用戶尚未登陸,則拋出AuthenticationCredentialsNotFoundException“尚未認證異常”。

          功能二:如果用戶已登錄,但是沒有訪問當前資源的權限,則拋出AccessDeniedException“拒絕訪問異常”。

          功能三:如果用戶已登錄,也具有訪問當前資源的權限,則放行。

          至此,我們完全展示了默認情況下Spring Security中使用到的過濾器,以及每個過濾器的應用場景和顯示功能,下面我們會對這些過濾器的配置和用法進行逐一介紹。

          posted @ 2009-06-15 10:39 臨遠 閱讀(3627) | 評論 (6)編輯 收藏

          Spring Security-2.0導航-基礎篇,又添兩章

          目前我們在基礎篇中已經編寫了六章,基本上可以帶新手從頭開始使用Spring Security了,稍稍還帶了一些定制的功能,有深有淺,等到下次整理時再考慮是否細分章節,深挖內容。

          I. 基礎篇
          1. 一個簡單的HelloWorld
          1.1. 配置過濾器
          1.2. 使用命名空間
          1.3. 完善整個項目
          1.4. 運行示例
          2. 使用數據庫管理用戶權限
          2.1. 修改配置文件
          2.2. 數據庫表結構
          3. 自定義數據庫表結構
          3.1. 自定義表結構
          3.2. 初始化數據
          3.3. 獲得自定義用戶權限信息
          3.3.1. 處理用戶登陸
          3.3.2. 檢驗用戶權限
          4. 自定義登陸頁面
          4.1. 實現自定義登陸頁面
          4.2. 修改配置文件
          4.3. 登陸頁面中的參數配置
          4.4. 測試一下
          5. 使用數據庫管理資源
          5.1. 數據庫表結構
          5.2. 初始化數據
          5.3. 實現從數據庫中讀取資源信息
          5.3.1. 需要何種數據格式
          5.3.2. 替換原有功能的切入點
          6. 控制用戶信息
          6.1. MD5加密
          6.2. 鹽值加密
          6.3. 用戶信息緩存
          6.4. 獲取當前用戶信息



          教程在線瀏覽地址:http://www.family168.com/oa/springsecurity/html/index.html

           

          基礎篇中的六部分內容。

           

          第一部分,怎么用最小配置完成一個Spring Security項目。

          第二部分,如果使用數據庫保存用戶權限信息,該怎么配置。

          第三部分,如果不想用默認的數據庫結構,怎么適配已有的表結構。

          第四部分,大家肯定嫌默認的登錄頁面太丑,這個時候怎么用自己制作的登錄頁面替換默認頁面。

          第五部分,把資源信息也寫到數據庫中。

          第六部分,有關用戶的一些操作,諸如用戶加密,用戶緩存,獲取當前用戶等等。

           

          對于還在探索嘗試階段中的我們,給予反饋是對我們的最大幫助了。如果沒有反饋意見,就很難有機會把這些寫的更好。THx.

          posted @ 2009-06-10 10:34 臨遠 閱讀(2055) | 評論 (6)編輯 收藏

          Spring Security-2.0入門教程

          歡迎閱讀咱們寫的Spring Security教程,咱們既不想寫一個簡單的入門教程,也不想翻譯已有的國外教程。咱們這個教程就是建立在咱們自己做的OA的基礎上,一點一滴總結出來的經驗和教訓。

          首先必須一提的是,Spring Security出身名門,它是Spring的一個子項目http://static.springsource.org/spring-security/site/index.html。它之前有個很響亮的名字Acegi。這個原本坐落在sf.net上的項目,后來終于因為跟spring的緊密連接,在2.0時成為了Spring的一個子項目。

          即 使是在開源泛濫的Java領域,統一權限管理框架依然是稀缺的,這也是為什么Spring Security(Acegi)已出現就受到熱捧的原因,據俺 們所知,直到現在也只看到apache社區的jsecurity在做同樣的事情。(據小道消息,jsecurity還很稚嫩。)

          Spring Security(Acegi)支持一大堆的權限功能,然后它又和Spring這個當今超流行的框架整合的很緊密,所以我們選擇它。實際上自從Acegi時代它就很有名了。

          目前我們編寫了四章用于Spring Security入門的文檔,基本上可以帶新手從頭開始使用Spring Security了。

              1. 一個簡單的HelloWorld
                  1.1. 配置過濾器
                  1.2. 使用命名空間
                  1.3. 完善整個項目
                  1.4. 運行示例
              2. 使用數據庫保存權限信息
                  2.1. 修改配置文件
                  2.2. 數據庫表結構
              3. 自定義數據庫表結構
                  3.1. 自定義表結構
                  3.2. 初始化數據
                  3.3. 配置Spring Security
                      3.3.1. 處理用戶登陸
                      3.3.2. 檢驗用戶權限
              4. 自定義登陸頁面
                  4.1. 實現自定義登陸頁面
                  4.2. 修改配置文件
                  4.3. 登陸頁面中的參數配置
                  4.4. 測試一下

          教程在線瀏覽地址:http://www.family168.com/oa/springsecurity/html/index.html

          posted @ 2009-06-04 18:12 臨遠 閱讀(3974) | 評論 (8)編輯 收藏

          僅列出標題
          共4頁: 上一頁 1 2 3 4 
          主站蜘蛛池模板: 金坛市| 岳普湖县| 怀柔区| 襄城县| 信丰县| 河间市| 仁寿县| 花莲市| 洛阳市| 长白| 凌源市| 舟山市| 鄄城县| 乐山市| 温泉县| 贡觉县| 宁城县| 乌海市| 扬州市| 新密市| 长宁区| 建平县| 拜城县| 石河子市| 屏山县| 九江市| 成安县| 柞水县| 永泰县| 乃东县| 北安市| 乐都县| 定远县| 贵州省| 余姚市| 蓬溪县| 青铜峡市| 满城县| 海城市| 鲁山县| 松滋市|