天天看點

Spring安全架構 Spring Security

Spring Security 的前身是 Acegi Security ,是 Spring 項目組中用來提供安全認證服務的架構。

Spring Security  為基于J2EE企業應用軟體提供了全面安全服務。特别是使用領先的J2EE解決方案-Spring架構開發的企業軟體項目。人們使用Spring Security有很多種原因,不過通常吸引他們的是在J2EE  Servlet規範或EJB規範中找不到典型企業應用場景的解決方案。

特别要指出的是他們不能再WAR 或 EAR 級别進行移植。這樣,如果你更換伺服器環境,就要,在新的目标環境進行大量的工作,對你的應用系統進行重新配 置安全。使用Spring Security  解決了這些問題,也為你提供很多有用的,完全可以指定的其他安全特性。

你可能知道,安全包括兩個主要操作。

第一個被稱為“認證”,是為使用者建立一個他所聲明的主體。主題一般式指使用者,裝置或可以在你系 統中執行動作的其他系統。“授權”指的是一個使用者能否在你的應用中執行某個操作,在到達授權判斷之前,身份的主題已經由 身份驗證過程建立了。這些概念是通用的,不是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 and HttpInvoker  (一個Spring遠端調用協定)