專案模組和依賴
即使您不使用 Maven,我們也建議您查閱 pom.xml
檔案,以瞭解第三方依賴及其版本。另一個好主意是檢視示例應用程式中包含的庫。
本節提供了 Spring Security 模組及其在執行應用程式中所需附加依賴的參考。我們不包括僅在構建或測試 Spring Security 本身時使用的依賴。也不包括外部依賴所需的傳遞性依賴。
所需的 Spring 版本列在專案網站上,因此示例中省略了 Spring 依賴的具體版本。請注意,示例中列為“可選”的一些依賴項可能仍是 Spring 應用程式中其他非安全功能所需的。此外,如果“可選”依賴項在大多數應用程式中使用,它們在專案的 Maven POM 檔案中可能實際上並未標記為可選。它們之所以“可選”,僅僅是因為除非您使用指定的功能,否則不需要它們。
如果一個模組依賴於另一個 Spring Security 模組,那麼被依賴模組的非可選依賴項也被視為必需,且不會單獨列出。
核心模組 — spring-security-core.jar
此模組包含核心認證和訪問控制類與介面、遠端支援以及基本配置 API。任何使用 Spring Security 的應用程式都需要此模組。它支援獨立應用程式、遠端客戶端、方法(服務層)安全和 JDBC 使用者配置。它包含以下頂級包:
-
org.springframework.security.core
-
org.springframework.security.access
-
org.springframework.security.authentication
-
org.springframework.security.provisioning
依賴 | 版本 | 描述 |
---|---|---|
ehcache |
1.6.2 |
如果使用基於 Ehcache 的使用者快取實現則需要(可選)。 |
spring-aop |
方法安全基於 Spring AOP |
|
spring-beans |
Spring 配置所需 |
|
spring-expression |
基於表示式的方法安全所需(可選) |
|
spring-jdbc |
如果使用資料庫儲存使用者資料則需要(可選)。 |
|
spring-tx |
如果使用資料庫儲存使用者資料則需要(可選)。 |
|
aspectjrt |
1.6.10 |
如果使用 AspectJ 支援則需要(可選)。 |
jsr250-api |
1.0 |
如果使用 JSR-250 方法安全註解則需要(可選)。 |
遠端模組 — spring-security-remoting.jar
此模組提供與 Spring Remoting 的整合。除非您正在編寫使用 Spring Remoting 的遠端客戶端,否則不需要此模組。主要包是 org.springframework.security.remoting
。
依賴 | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-web |
使用 HTTP 遠端支援的客戶端所需。 |
Web 模組 — spring-security-web.jar
此模組包含過濾器和相關的 Web 安全基礎設施程式碼。它包含所有依賴於 Servlet API 的內容。如果您需要 Spring Security Web 認證服務和基於 URL 的訪問控制,則需要此模組。主要包是 org.springframework.security.web
。
依賴 | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-web |
使用 HTTP 遠端支援的客戶端所需。 |
|
spring-jdbc |
JDBC 持久化記住我令牌倉庫所需(可選)。 |
|
spring-tx |
記住我持久化令牌倉庫實現所需(可選)。 |
配置模組 — spring-security-config.jar
此模組包含安全名稱空間解析程式碼和 Java 配置程式碼。如果您使用 Spring Security XML 名稱空間進行配置或使用 Spring Security 的 Java 配置支援,則需要此模組。主要包是 org.springframework.security.config
。此模組中的類不適合直接在應用程式中使用。
依賴 | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
如果使用任何與 Web 相關的名稱空間配置則需要(可選)。 |
|
spring-security-ldap |
如果使用 LDAP 名稱空間選項則需要(可選)。 |
|
aspectjweaver |
1.6.10 |
如果使用 protect-pointcut 名稱空間語法則需要(可選)。 |
LDAP 模組 — spring-security-ldap.jar
此模組提供 LDAP 認證和配置程式碼。如果您需要使用 LDAP 認證或管理 LDAP 使用者條目,則需要此模組。頂級包是 org.springframework.security.ldap
。
依賴 | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-ldap-core |
1.3.0 |
LDAP 支援基於 Spring LDAP。 |
spring-tx |
需要 Data 異常類。 |
|
apache-ds |
1.5.5 |
如果使用嵌入式 LDAP 伺服器則需要(可選)。如果您使用 |
shared-ldap |
0.9.15 |
如果使用嵌入式 LDAP 伺服器則需要(可選)。 |
ldapsdk |
4.1 |
Mozilla LdapSDK。如果您在使用 OpenLDAP 的密碼策略功能時,例如用於解碼 LDAP 密碼策略控制。 |
OAuth 2.0 核心模組 — spring-security-oauth2-core.jar
spring-security-oauth2-core.jar
包含為 OAuth 2.0 授權框架和 OpenID Connect Core 1.0 提供支援的核心類和介面。使用 OAuth 2.0 或 OpenID Connect Core 1.0 的應用程式需要此模組,例如客戶端、資源伺服器和授權伺服器。頂級包是 org.springframework.security.oauth2.core
。
OAuth 2.0 客戶端模組 — spring-security-oauth2-client.jar
spring-security-oauth2-client.jar
包含 Spring Security 對 OAuth 2.0 授權框架和 OpenID Connect Core 1.0 的客戶端支援。使用 OAuth 2.0 或 OpenID Connect Core 1.0 的應用程式需要此模組,例如客戶端、資源伺服器和授權伺服器。頂級包是 org.springframework.security.oauth2.core
。
OAuth 2.0 JOSE 模組 — spring-security-oauth2-jose.jar
spring-security-oauth2-jose.jar
包含 Spring Security 對 JOSE (Javascript Object Signing and Encryption) 框架的支援。JOSE 框架旨在提供一種在各方之間安全傳輸宣告的方法。它由以下規範集合構建:
-
JSON Web Token (JWT)
-
JSON Web Signature (JWS)
-
JSON Web Encryption (JWE)
-
JSON Web Key (JWK)
它包含以下頂級包:
-
org.springframework.security.oauth2.jwt
-
org.springframework.security.oauth2.jose
OAuth 2.0 資源伺服器模組 — spring-security-oauth2-resource-server.jar
spring-security-oauth2-resource-server.jar
包含 Spring Security 對 OAuth 2.0 資源伺服器的支援。它用於透過 OAuth 2.0 Bearer 令牌保護 API。頂級包是 org.springframework.security.oauth2.server.resource
。
ACL 模組 — spring-security-acl.jar
此模組包含專門的領域物件 ACL 實現。它用於對應用程式中的特定領域物件例項應用安全。頂級包是 org.springframework.security.acls
。
依賴 | 版本 | 描述 |
---|---|---|
spring-security-core |
||
ehcache |
1.6.2 |
如果使用基於 Ehcache 的 ACL 快取實現則需要(如果您使用自己的實現則可選)。 |
spring-jdbc |
如果使用預設的基於 JDBC 的 AclService 則需要(如果您自己實現則可選)。 |
|
spring-tx |
如果使用預設的基於 JDBC 的 AclService 則需要(如果您自己實現則可選)。 |
CAS 模組 — spring-security-cas.jar
此模組包含 Spring Security 的 CAS 客戶端整合。如果您想將 Spring Security Web 認證與 CAS 單點登入伺服器一起使用,則應使用此模組。頂級包是 org.springframework.security.cas
。
依賴 | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
||
cas-client-core |
3.1.12 |
JA-SIG CAS 客戶端。這是 Spring Security 整合的基礎。 |
ehcache |
1.6.2 |
如果使用基於 Ehcache 的票證快取則需要(可選)。 |