modules.md 12.2 KB
Newer Older
dallascao's avatar
dallascao 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
# 项目模块和依赖项

即使你不使用 Maven,我们也建议你查阅`pom.xml`文件,以了解第三方的依赖关系和版本。另一个好主意是检查示例应用程序中包含的库。

本节提供了 Spring Security 中的模块的参考,以及它们在运行中的应用程序中起作用所需的附加依赖关系。我们不包括仅在构建或测试 Spring 安全性本身时使用的依赖关系。我们也不包括外部依赖项所要求的传递依赖项。

项目网站上列出了 Spring Required 的版本,因此在下面的 Spring 依赖项中省略了具体的版本。请注意,在 Spring 应用程序中的其他非安全功能可能仍然需要下面列出的一些“可选”依赖项。此外,如果在大多数应用程序中使用了被列为“可选”的依赖项,那么它们在项目的 Maven  POM 文件中实际上可能不会被标记为可选的依赖项。它们是“可选的”,只是因为除非你使用指定的功能,否则你不需要它们。

当一个模块依赖于另一个 Spring 安全模块时,它所依赖的模块的非可选依赖也被认为是必需的,并且不会单独列出。

## 核心—`spring-security-core.jar`

该模块包含核心身份验证和访问控制类和接口、远程支持和基本供应 API。任何使用 Spring 安全性的应用程序都需要它。它支持独立的应用程序、远程客户机、方法(服务层)安全性和 JDBC 用户配置。它包含以下顶级包:

* `org.springframework.security.core`

* `org.springframework.security.access`

* `org.springframework.security.authentication`

* `org.springframework.security.provisioning`

|   Dependency    |Version|说明|
|-----------------|-------|---------------------------------------------------------------------------|
|     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 方法-安全注释(可选),则需要这样做。|

## remoting—`spring-security-remoting.jar`

该模块提供了与 Spring 远程的集成。你不需要这样做,除非你正在编写使用远程处理的远程客户机。主包是`org.springframework.security.remoting`

|     Dependency     |Version|说明|
|--------------------|-------|-----------------------------------------------------|
|spring-security-core|       |                                                     |
|     spring-web     |       |对于使用 HTTP 远程支持的客户端来说是必需的。|

## web—`spring-security-web.jar`

这个模块包含过滤器和相关的 Web 安全基础设施代码。它包含任何具有 Servlet API 依赖关系的内容。如果你需要 Spring 安全性 Web 身份验证服务和基于 URL 的访问控制,那么你就需要它。主包是`org.springframework.security.web`

|     Dependency     |Version|说明|
|--------------------|-------|-------------------------------------------------------------------------------|
|spring-security-core|       |                                                                               |
|     spring-web     |       |Spring Web 支持类被广泛使用。|
|    spring-jdbc     |       |基于 JDBC 的持久 Rememe-Me 令牌存储库所需(可选).|
|     spring-tx      |       |Rememe-Me 持久令牌存储库实现所需(可选).|

## 配置—`spring-security-config.jar`

这个模块包含安全名称空间解析代码和 Java 配置代码。如果你使用 Spring Security XML 名称空间进行配置或 Spring Security 的 Java 配置支持,那么你就需要它。主包是`org.springframework.security.config`。这些类都不打算在应用程序中直接使用。

|      Dependency      |Version|说明|
|----------------------|-------|-----------------------------------------------------------------------------|
| spring-security-core |       |                                                                             |
| spring-security-web  |       |如果你正在使用任何与 Web 相关的名称空间配置(可选),则需要这样做。|
| spring-security-ldap |       |如果你正在使用 LDAP 命名空间选项(可选),则是必需的。|
|spring-security-openid|       |如果你使用的是 OpenID 身份验证(可选的),则需要这样做。|
|    aspectjweaver     |1.6.10 |如果使用 protect-pointcut 命名空间语法(可选),则需要.|

## LDAP—`spring-security-ldap.jar`

该模块提供 LDAP 身份验证和配置代码。如果你需要使用 LDAP 身份验证或管理 LDAP 用户条目,则需要使用它。顶级包是`org.springframework.security.ldap`

|                                                            Dependency                                                             |Version|说明|
|-----------------------------------------------------------------------------------------------------------------------------------|-------|-----------------------------------------------------------------------------------------------------------------------------------------------|
|                                                       spring-security-core                                                        |       |                                                                                                                                               |
|                                                         spring-ldap-core                                                          | 1.3.0 |LDAP 支持基于 Spring LDAP。|
|                                                             spring-tx                                                             |       |数据异常类是必需的。|
|apache-ds <sup class="footnote">[<a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote.">1</a>]</sup>| 1.5.5 |如果你使用的是嵌入式 LDAP 服务器(可选),则需要这样做。|
|                                                            shared-ldap                                                            |0.9.15 |如果你使用的是嵌入式 LDAP 服务器(可选),则需要这样做。|
|                                                              ldapsdk                                                              |  4.1  |例如,如果你使用 OpenLDAP 的密码策略功能,则使用 Mozilla ldapsdk.<gtr="15"/>对 LDAP 密码策略控件进行解码。|

## OAuth2.0 核心—`spring-security-oauth2-core.jar`

`spring-security-oauth2-core.jar`包含支持 OAuth2.0 授权框架和 OpenID Connect Core1.0 的核心类和接口。它是使用 OAuth2.0 或 OpenID Connect Core1.0 的应用程序所必需的,例如客户机、资源服务器和授权服务器。顶级包是`org.springframework.security.oauth2.core`

## OAuth2.0 客户端—`spring-security-oauth2-client.jar`

`spring-security-oauth2-client.jar`包含 Spring Security 对 OAuth2.0 授权框架和 OpenID Connect Core1.0 的客户端支持。它是使用 OAuth2.0 登录或 OAuth 客户端支持的应用程序所必需的。顶级包是`org.springframework.security.oauth2.client`

## OAuth2.0Jose—`spring-security-oauth2-jose.jar`

`spring-security-oauth2-jose.jar`包含 Spring Security 对 Jose(JavaScript 对象签名和加密)框架的支持。Jose 框架旨在提供一种在各方之间安全地转移权利要求的方法。它是由一系列规范构建而成的:

* JSON Web Token

* JSON Web 签名

* JSON 网络加密

* JSON Web Key

它包含以下顶级包:

* `org.springframework.security.oauth2.jwt`

* `org.springframework.security.oauth2.jose`

## OAuth2.0 资源服务器—`spring-security-oauth2-resource-server.jar`

`spring-security-oauth2-resource-server.jar`包含 Spring Security 对 OAuth2.0 资源服务器的支持。它用于通过 OAuth2.0 承载令牌保护 API。顶级包是`org.springframework.security.oauth2.server.resource`

## ACL—`spring-security-acl.jar`

这个模块包含一个专门的域对象 ACL 实现。它用于将安全性应用于应用程序中的特定域对象实例。顶级包是`org.springframework.security.acls`

|     Dependency     |Version|说明|
|--------------------|-------|-------------------------------------------------------------------------------------------------------------------|
|spring-security-core|       |                                                                                                                   |
|      ehcache       | 1.6.2 |如果使用了基于 EHCache 的 ACL 缓存实现,则需要(如果你使用自己的实现,则可以选择)。|
|    spring-jdbc     |       |如果你使用的是默认的基于 JDBC 的 ACLService(如果你实现了自己的 ACLService,则是可选的),则是必需的。|
|     spring-tx      |       |如果你使用的是默认的基于 JDBC 的 ACLService(如果你实现了自己的 ACLService,则是可选的),则是必需的。|

## 化学文摘社—`spring-security-cas.jar`

该模块包含 Spring Security 的 CAS 客户端集成。如果你想对 CAS 单点登录服务器使用 Spring 安全性 Web 身份验证,那么你应该使用它。顶级包是`org.springframework.security.cas`

|     Dependency     |Version|说明|
|--------------------|-------|--------------------------------------------------------------------------------|
|spring-security-core|       |                                                                                |
|spring-security-web |       |                                                                                |
|  cas-client-core   |3.1.12 |JA-SIG CAS 客户机.<br/>这是 Spring 安全集成的基础。|
|      ehcache       | 1.6.2 |如果你正在使用基于 EHCache 的票证缓存(可选),则需要这样做。|

## OpenID—`spring-security-openid.jar`

|   |OpenID1.0 和 2.0 协议已被弃用,并鼓励用户迁移到 OpenID Connect,这得到了 Spring-Security-OAuth2 的支持。|
|---|----------------------------------------------------------------------------------------------------------------------------------------------------------|

此模块包含对 OpenID Web 身份验证的支持。它用于针对外部 OpenID 服务器对用户进行身份验证。顶级包是`org.springframework.security.openid`。它需要 OpenID4Java。

|     Dependency     |Version|说明|
|--------------------|-------|------------------------------------------------------|
|spring-security-core|       |                                                      |
|spring-security-web |       |                                                      |
| openid4java-nodeps | 0.9.6 |Spring Security 的 OpenID 集成使用了 OpenID4Java。|
|     httpclient     | 4.1.1 |OpenID4Java-Nodeps 依赖于 HttpClient4。|
|       guice        |  2.0  |OpenID4Java-Nodeps 依赖于 Guice2。|

## 测试—`spring-security-test.jar`

该模块包含对具有 Spring 安全性的测试的支持。

## taglibs—`spring-secuity-taglibs.jar`

提供 Spring 安全性的 JSP 标记实现。

|     Dependency     |Version|说明|
|--------------------|-------|------------------------------------------------------------------------------------------------------------|
|spring-security-core|       |                                                                                                            |
|spring-security-web |       |                                                                                                            |
|spring-security-acl |       |如果使用带有 ACLS 的`accesscontrollist`标记或`hasPermission()`表达式(可选),则需要这样做。|
| spring-expression  |       |如果你在标记访问约束中使用 SPEL 表达式,则需要这样做。|

---

[1](#_footnoteref_1)。需要的模块有`apacheds-core``apacheds-core-entry``apacheds-protocol-shared``apacheds-protocol-ldap``apacheds-server-jndi`