實例本例所覆蓋的內容:使用SpringSecurity管理用戶身份認證、登錄退出用戶密碼加密及驗證采用數據庫的方式實現SpringSecurity的remember-me功能獲取登錄用戶信息。
下面我們將實現關于SpringSecurity3的一系列教程.?最終的目標是整合SpringSecurity+Spring3MVC?完成類似于SpringSide3中mini-web的功能.?SpringSecurity是什么??引用SpringSecurity,這是一種基于SpringAOP和Servlet過濾器的安全框架。它提供全面的安全性解決方案,同時在Web請求級和方法調用級處理身份確認和授權。
入門這是支持OAuth2.0的用戶指南。對于OAuth1.0,一切都是不同的,所以看它的用戶指南。本用戶指南分為兩個部分,第一部分是OAuth2.0提供端(OAuth2.0 Provider),第二部分是OAuth2.0的客戶端(OAuth2.0 Client)OAuth2.0提供端OAuth2.0的提供端的用途是負責將受保護的資源暴露出去。配置包括建立一個可以訪問受保護的資源的客戶端代表。提供端是通過管理和驗證可用于訪問受保護的資源的OAuth2令牌來做的。在適當的地方,提供端也必須為用戶提供一個用于確認客戶端是否能夠訪問受保護的資源的接口(也就是一個頁面或是一個窗口)。在OAuth2提供者其實是分成授權服務和資源服務兩個角色的。
Spring Security,這是一種基于Spring AOP和Servlet過濾器[7]的安全框架。它提供全面的安全性解決方案,同時在Web請求級和方法調用級處理身份確認和授權。在Spring Framework基礎上,Spring Security充分利用了依賴注入(DI,Dependency Injection)和面向切面技術。 Spring Security原身是Spring Acegi,在Spring Acegi 2.0之后改名為Spring Security 2.0。我們現在講解的是Spring Security 3.0,相對于2.0而言改動比較大,配置也更加簡單了。
Spring Security為基于J2EE企業應用軟件提供了全面安全服務。 特別是使用領先的J2EE解決方案-spring框架開發的企業軟件項目。 如果你沒有使用Spring開發企業軟件,我們熱情的推薦你仔細研究一下。 熟悉Spring-尤其是依賴注入原理-將幫助你更快的掌握Spring Security。<br> 人們使用Spring Security有很多種原因, 不過通常吸引他們的是在J2EE Servlet規范或EJB規范中找不到典型企業應用場景的解決方案。 提到這些規范,特別要指出的是它們不能在WAR或EAR級別進行移植。這樣,如果你更換服務器環境, 就要,在新的目標環境進行大量的工作,對你的應用系統進行重新配置安全。 使用Spring Security解決了這些問題,也為你提供了很多有用的,可定制的其他安全特性。
即使是在開源泛濫的Java領域,統一權限管理框架依然是稀缺的,這也是為什么Spring Security(Acegi)已出現就受到熱捧的原因,據俺們所知,直到現在也只看到apache社區的jsecurity在做同樣的事情。(據小道消息,jsecurity還很稚嫩。) Spring Security(Acegi)支持一大堆的權限功能,然后它又和Spring這個當今超流行的框架整合的很緊密,所以我們選擇它。實際上自從Acegi時代它就很有名了。
SpringSecurity3.x出來一段時間了,跟Acegi是大不同了,與2.x的版本也有一些小小的區別,網上有一些文檔,也有人翻譯SpringSecurity3.x的guide,但通過閱讀guide,無法馬上就能很容易的實現一個完整的實例。我花了點兒時間,根據以前的實戰經驗,整理了一份完整的入門教程,供需要的朋友們參考。1,建一個webproject,并導入所有需要的lib,這步就不多講了。
前一篇文章里介紹了Spring Security的一些基礎知識,相信你對Spring Security的工作流程已經有了一定的了解,如果你同時在讀源代碼,那你應該可以認識的更深刻。在這篇文章里,我們將對SpringSecurity進行一些自定義的擴展,比如自定義實現UserDetailsService,保護業務方法以及如何對用戶權限等信息進行動態的配置管理。
Spring Security3的使用方法有4種: 一種是全部利用配置文件,將用戶、權限、資源(url)硬編碼在xml文件中。 二種是用戶和權限用數據庫存儲,而資源(url)和權限的對應采用硬編碼配置。 三種是細分角色和權限,并將用戶、角色、權限和資源均采用數據庫存儲,并且自定義過濾器,代替原有的FilterSecurityInterceptor過濾器,并分別實現AccessDecisionManager、InvocationSecurityMetadataSourceService和UserDetailsService,并在配置文件中進行相應配置。
SpringSecurity3.x出來一段時間了,跟Acegi是大不同了,與2.x的版本也有一些小小的區別,網上有一些文檔,也有人翻譯SpringSecurity3.x的guide,但通過閱讀guide,無法馬上就能很容易的實現一個完整的實例。我花了點兒時間,根據以前的實戰經驗,整理了一份完整的入門教程,供需要的朋友們參考。1,建一個webproject,并導入所有需要的lib.
Spring Security為基于J2EE企業應用軟件提供了全面安全服務。 特別是使用領先的J2EE解決方案-spring框架開發的企業軟件項目。 如果你沒有使用Spring開發企業軟件,我們熱情的推薦你仔細研究一下。 熟悉Spring-尤其是依賴注入原理-將幫助你更快的掌握Spring Security。<br> 人們使用Spring Security有很多種原因, 不過通常吸引他們的是在J2EE Servlet規范或EJB規范中找不到典型企業應用場景的解決方案。 提到這些規范,特別要指出的是它們不能在WAR或EAR級別進行移植。這樣,如果你更換服務器環境, 就要,在新的目標環境進行大量的工作,對你的應用系統進行重新配置安全。 使用Spring Security解決了這些問題,也為你提供了很多有用的,可定制的其他安全特性。<br> 你可能知道,安全包括兩個主要操作, “認證”和“驗證”(或權限控制)。 這就是Spring Security面向的兩個主要方向。“認證” 是為用戶建立一個他所聲明的主體的過程, (“主體”一般是指用戶,設備或可以在你系統中執行行動的其他系統)。 “驗證”指的一個用戶能否在你的應用中執行某個操作。 在到達授權判斷之前,身份的主體已經由身份驗證過程建立了。 這些概念是通用的,不是Spring Security特有的。
在SpringSide 3的官方文檔中,說安全框架使用的是Spring Security 2.0。乍一看,嚇了我一跳,以為Acegi這么快就被淘汰了呢。上搜索引擎一搜,發現原來Spring Security 2.0就是Acegi 2.0。懸著的心放下來了。雖然SpringSide 3中關于Acegi的配置文件看起來很不熟悉,但是讀了Acegi 2.0的官方文檔后,一切都釋然了。
Spring Security 為基于J2EE 企業應用軟件提供了全面安全服務。特別是使用領先的 J2EE 解決方案-spring 框架開發的企業軟件項目。如果你沒有使用Spring 開發企業軟件, 我們熱情的推薦你仔細研究一下。熟悉Spring-尤其是依賴注入原理-將幫助你更快的掌握 Spring Security。 人們使用Spring Security 有很多種原因, 不過通常吸引他們的是在J2EE Servlet 規范 或EJB 規范中找不到典型企業應用場景的解決方案。提到這些規范,特別要指出的是它們 不能在WAR 或EAR 級別進行移植。這樣,如果你更換服務器環境, 就要,在新的目標環 境進行大量的工作,對你的應用系統進行重新配置安全。使用Spring Security 解決了這 些問題,也為你提供了很多有用的,可定制的其他安全特性。
使用Spring Security3的四種方法概述 那么在SpringSecurity3的使用中,有4種方法: 一種是全部利用配置文件,將用戶、權限、資源(url)硬編碼在xml文件中,已經實現過,并經過驗證; 二種是用戶和權限用數據庫存儲,而資源(url)和權限的對應采用硬編碼配置,目前這種方式已經實現,并經過驗證。
Spring Security3 的使用方法有4種:一種是全部利用配置文件,將用戶、權限、資源(url)硬編碼在xml文件中。二種是用戶和權限用數據庫存儲,而資源(url)和權限的對應采用硬編碼配置。三種是細分角色和權限,并將用戶、角色、權限和資源均采用數據庫存儲,并且自定義過濾器,代替原有的FilterSecurityInterceptor過濾器,并分別實現AccessDecisionManager、InvocationSecurityMetadataSourceService和UserDetailsService,并在配置文件中進行相應配置。
Spring Security為基于J2EE的企業應用軟件提供了一套全面的安全解決方案。正如你在本手冊中看到的那樣,我們嘗試為您提供一套好用,高可配置的安全系統。 安全問題是一個不斷變化的目標,更重要的是尋求一種全面的,系統化的解決方案。 在安全領域我們建議你采取“分層安全”,這樣讓每一層確保本身盡可能的安全,并為其他層提供額外的安全保障。 每層自身越是“緊密”,你的程序就會越魯棒越安全。 在底層,你需要處理傳輸安全和系統認證,減少“中間人攻擊”(man-in-the-middle attacks)。 接下來,我們通常會使用防火墻,結合VPN或IP安全來確保只有獲得授權的系統才能嘗試連接。 在企業環境中,你可能會部署一個DMZ(demilitarized zone,隔離區),將面向公眾的服務器與后端數據庫,應用服務器隔離開。 在以非授權用戶運行進程和文件系統安全最大化上,你的操作系統也將扮演一個關鍵的角色。 操作系統通常配置了自己的防火墻。 然后你要防止針對系統的拒絕服務和暴力攻擊。 入侵檢測系統在檢測和應對攻擊的時候尤其有用。這些系統可以實時屏蔽惡意TCP/IP地址。 在更高層上,你需要配置Java虛擬機,將授予不同java類型權限最小化,然后,你的應用程序要添加針對自身特定問題域的安全配。Spring Security使后者 - 應用程序安全變得更容易。
統一權限管理框架依然是稀缺的,這也是為什么Spring Security(Acegi)已出現就受到熱捧的原因,據俺們所知,直到現在也只看到apache社區的jsecurity在做同樣的事情。(據小道消息,jsecurity還很稚嫩。) Spring Security(Acegi)支持一大堆的權限功能,然后它又和Spring這個當今超流行的框架整合的很緊密,所以我們選擇它。實際上自從Acegi時代它就很有名了。
一種是全部利用配置文件,將用戶、權限、資源(url)硬編碼在xml文件中。 二種是用戶和權限用數據庫存儲,而資源(url)和權限的對應采用硬編碼配置。 三種是細分角色和權限,并將用戶、角色、權限和資源均采用數據庫存儲,并且自定義過濾器,代替原有的FilterSecurityInterceptor過濾器,并分別實現AccessDecisionManager、 InvocationSecurityMetadataSourceService和UserDetailsService,并在配置文件中進行相應配置。
SpringSecurity3.x出來一段時間了,跟Acegi是大不同了,與2.x的版本也有一些小小的區別,網上有一些文檔,也有人翻譯SpringSecurity3.x的guide,但通過閱讀guide,無法馬上就能很容易的實現一個完整的實例。我花了點兒時間,根據以前的實戰經驗,整理了一份完整的入門教程,供需要的朋友們參考。