歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Spring Security簡介

Spring Security簡介

日期:2017/3/1 9:34:22   编辑:Linux編程

1. Spring Security 是什麼?

Spring Security是一個強大的和高度可定制的身份驗證和訪問控制框架,它的前身是 Acegi Security。

Spring Security著重於為Java應用程序提供身份驗證和授權。身份驗證是為用戶建立一個他所聲明的主體的過程(主體一般式指用戶,設備或可以在你系統中執行動作的其他系統)。授權指的是一個用戶能否在你的應用中執行某個操作,在到達授權判斷之前,身份的主體已經由身份驗證過程建立了。這些概念是通用的,並不是Spring Security特有的。


2. Spring Security特征是什麼?


Spring Security具有以下特征:


全面的和可擴展的支持身份驗證和授權


防止會話固定攻擊,比如點擊劫持,跨站請求偽造等


Servlet API 集成


與Spring Web MVC集成


3. Spring Security支持哪些身份認證模式?


在身份驗證層面,Spring Security廣泛支持各種身份驗證模式。 這些驗證模型絕大多數都由第三方提供,或正在開發的有關標准機構提供的,例如Internet Engineering Task Force。 作為補充,Spring Security也提供了自己的一套驗證功能。 Spring Security目前支持認證一體化和如下認證技術:


HTTP BASIC authentication headers (一個基於IEFT RFC的標准)
HTTP Digest authentication headers (一個基於IEFT RFC的標准)


HTTP X.509 client certificate exchange (一個基於IEFT RFC的標准)


LDAP (一個非常常見的跨平台認證需要做法,特別是在大環境)


Form-based authentication (提供簡單用戶接口的需求)


OpenID authentication


Computer Associates Siteminder


JA-SIG Central Authentication Service (也被稱為CAS,這是一個流行的開源單點登錄系統)


Transparent authentication context propagation for Remote Method Invocation (RMI) and HttpInvoker (一個Spring遠程調用協議)


Automatic "remember-me" authentication (這樣你可以設置一段時間,避免在一段時間內還需要重新驗證)


Anonymous authentication (允許任何調用,自動假設一個特定的安全主體)


Run-as authentication (這在一個會話內使用不同安全身份的時候是非常有用的)


Java Authentication and Authorization Service (JAAS)


Container integration with JBoss, Jetty, Resin and Tomcat (這樣,你可以繼續使用容器管理認證,如果想的話)


Java Open Source Single Sign On (JOSSO) *


OpenNMS Network Management Platform *


AppFuse *


AndroMDA *


Mule ESB *


Direct Web Request (DWR) *


Grails *


Tapestry *


JTrac *


Jasypt *


Roller *


Elastic Plath *


Atlassian Crowd *


4. 為什麼使用Spring Security?


許多獨立軟件供應商(ISVs, independent software vendors)采用Spring Security,是因為它擁有豐富靈活的驗證模型。 這樣,無論終端用戶需要什麼,他們都可以快速集成到系統中,不用花很多功夫,也不用讓用戶改變運行環境。 如果上述的驗證機制都沒有滿足你的需要,Spring Security是一個開放的平台,編寫自己的驗證機制是十分簡單的。 Spring Security的許多企業用戶需要整合不遵循任何特定安全標准的“遺留”系統,Spring Security在這類系統上也表現的很好。


有時基本的認證是不夠的。 有時你需要根據在主體和應用交互的方式來應用不同的安全措施。 比如,你可能,為了保護密碼,不被監聽或受到中間人攻擊,希望確保請求只通過HTTPS到達。 或者,你希望確保發起請求的是一個真正的人,而不是機器人或其他自動化程序。 這對保護找回密碼不被暴力攻擊特別有幫助,或者讓別人更難復制你程序中的關鍵內容。 為了幫助你實現這些目標,Spring Security支持自動“通道安全”,整合jcaptcha一體化進行人類用戶檢測。


Spring Security不僅提供認證功能,也提供了完備的授權功能。 在授權方面主要有三個領域,授權web請求,授權被調用方法,授權訪問單個對象的實例。 為了幫你了解它們之間的區別,對照考慮授在Servlet規范web模式安全,EJB容器管理安全,和文件系統安全方面的授權方式。 Spring Security在所有這些重要領域都提供了完備的能力,我們將在這份參考指南的後面進行探討。


5. 怎樣獲得Spring Security?


Spring Security是一個開源項目,我們可以通過subversion獲得源代碼。但大部分情況下,其實我們只需要Spring Security的jar就可以了。我們可以從 Spring Security 官網下載打包好的包,也可以從Maven中央倉庫下載獲得。


目前Spring Security最新的版本是4.0.0 RC1,但穩定版仍然是3.2.5。

Spring Security 學習之數據庫認證 http://www.linuxidc.com/Linux/2014-02/97407.htm

Spring Security 學習之LDAP認證 http://www.linuxidc.com/Linux/2014-02/97406.htm

Spring Security 學習之OpenID認證 http://www.linuxidc.com/Linux/2014-02/97405.htm

Spring Security 學習之X.509認證 http://www.linuxidc.com/Linux/2014-02/97404.htm

Spring Security 學習之HTTP基本認證和HTTP摘要認證 http://www.linuxidc.com/Linux/2014-02/97403.htm

Spring Security 學習之HTTP表單驗證 http://www.linuxidc.com/Linux/2014-02/97402.htm

Copyright © Linux教程網 All Rights Reserved