專案模組與相依性
即使您不使用 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 |
需要資料例外類別。 |
|
apache-ds |
1.5.5 |
如果您使用嵌入式 LDAP 伺服器,則為必要(選用)。如果您使用 `apache-ds`,則需要 `apacheds-core`、`apacheds-core-entry`、`apacheds-protocol-shared`、`apacheds-protocol-ldap` 和 `apacheds-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`。
相依性 | 版本 | 描述 |
---|---|---|
spring-security-core |
||
ehcache |
1.6.2 |
如果使用基於 Ehcache 的 ACL 快取實作,則為必要(如果您使用自己的實作,則為選用)。 |
spring-jdbc |
如果您使用預設的基於 JDBC 的 AclService,則為必要(如果您實作自己的 AclService,則為選用)。 |
|
spring-tx |
如果您使用預設的基於 JDBC 的 AclService,則為必要(如果您實作自己的 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 的票證快取,則為必要(選用)。 |