專案模組和依賴關係
即使您不使用 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 |
需要資料異常類。 |
|
com.unboundid:unboundid-ldapsdk |
如果使用嵌入式 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 令牌 (JWT)
-
JSON Web 簽名 (JWS)
-
JSON Web 加密 (JWE)
-
JSON Web 金鑰 (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 持有者令牌來保護 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 的票證快取(可選),則必需。 |