專案模組和依賴

即使您不使用 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

表 1. 核心模組依賴
依賴 版本 描述

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

表 2. 遠端模組依賴
依賴 版本 描述

spring-security-core

spring-web

使用 HTTP 遠端支援的客戶端所需。

Web 模組 — spring-security-web.jar

此模組包含過濾器和相關的 Web 安全基礎設施程式碼。它包含所有依賴於 Servlet API 的內容。如果您需要 Spring Security Web 認證服務和基於 URL 的訪問控制,則需要此模組。主要包是 org.springframework.security.web

表 3. 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。此模組中的類不適合直接在應用程式中使用。

表 4. 配置模組依賴
依賴 版本 描述

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

表 5. LDAP 模組依賴
依賴 版本 描述

spring-security-core

spring-ldap-core

1.3.0

LDAP 支援基於 Spring LDAP。

spring-tx

需要 Data 異常類。

apache-ds

1.5.5

如果使用嵌入式 LDAP 伺服器則需要(可選)。如果您使用 apache-ds,則需要 apacheds-coreapacheds-core-entryapacheds-protocol-sharedapacheds-protocol-ldapapacheds-server-jndi 模組。

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

表 6. ACL 模組依賴
依賴 版本 描述

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

表 7. CAS 模組依賴
依賴 版本 描述

spring-security-core

spring-security-web

cas-client-core

3.1.12

JA-SIG CAS 客戶端。這是 Spring Security 整合的基礎。

ehcache

1.6.2

如果使用基於 Ehcache 的票證快取則需要(可選)。

測試模組 — spring-security-test.jar

此模組包含 Spring Security 的測試支援。

Taglibs 模組 — spring-security-taglibs.jar

提供 Spring Security 的 JSP 標籤實現。

表 8. Taglib 模組依賴
依賴 版本 描述

spring-security-core

spring-security-web

spring-security-acl

如果將 accesscontrollist 標籤或 hasPermission() 表示式與 ACL 一起使用則需要(可選)。

spring-expression

如果使用 SPEL 表示式作為標籤訪問約束則需要。