|
此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Security 7.0.4! |
项目模块与依赖
即使您不使用 Maven,我们也建议您查阅 pom.xml 文件,以了解第三方依赖及其版本信息。
另一个不错的做法是检查示例应用程序中包含的库。
本节提供了 Spring Security 中各模块的参考信息,以及它们在运行应用程序中正常工作所需的额外依赖项。 我们不包含仅在构建或测试 Spring Security 本身时才使用的依赖项。 也不包含外部依赖项所要求的传递性依赖项。
所需 Spring 版本已在项目网站上列出,因此示例中 Spring 相关依赖项的具体版本已被省略。 请注意,示例中标记为“可选”的某些依赖项,在 Spring 应用程序中可能仍为其他非安全功能所必需。 此外,如果某些依赖项在大多数应用程序中都会被使用,那么即使在示例中标注为“可选”,它们在项目的 Maven POM 文件中也可能并未实际标记为可选。 这里的“可选”仅表示:除非您使用了特定的功能,否则无需这些依赖项。
当一个模块依赖于另一个 Spring Security 模块时,该被依赖模块的非可选依赖项也被视为必需,因此不会单独列出。
核心 —spring-security-core.jar
该模块包含核心的身份验证和访问控制类与接口、远程调用支持,以及基本的用户配置(provisioning)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 的持久化 remember-me Tokens仓库所需(可选)。 |
|
spring-tx |
由“记住我”持久化Tokens存储库实现所必需(可选)。 |
配置 —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 服务器(可选)。如果您使用 |
shared-ldap |
0.9.15 |
如果正在使用嵌入式LDAP服务器,则必须配置(可选)。 |
ldapsdk |
4.1 |
Mozilla LdapSDK。 例如,如果您在使用 OpenLDAP 的密码策略功能时,该 SDK 用于解码 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 的应用程序(例如客户端、资源服务器和授权服务器)都需要该 JAR 文件。
其顶层包为 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 的应用程序(例如客户端、资源服务器和授权服务器)都需要该 JAR 包。
其顶层包为 org.springframework.security.oauth2.core。
OAuth 2.0 JOSE —spring-security-oauth2-jose.jar
spring-security-oauth2-jose.jar 包含了 Spring Security 对 JOSE(JavaScript 对象签名与加密)框架的支持。
JOSE 框架旨在提供一种在各方之间安全传输声明的方法。
它由一系列规范组成:
-
JSON Web Token (JWT)
-
JSON Web Signature (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 Bearer Token 来保护 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 客户端集成。
如果你希望在使用 CAS 单点登录服务器的同时采用 Spring Security 的 Web 认证功能,就应当使用此模块。
顶层包为 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 的ticket缓存,则此项为必需(可选)。 |
标签库 —spring-security-taglibs.jar
提供 Spring Security 的 JSP 标签实现。
| 依赖 | 版本 | 描述 |
|---|---|---|
spring-security-core |
||
spring-security-web |
||
spring-security-acl |
如果你使用了 |
|
spring-expression |
如果你在标签访问约束中使用 SPEL 表达式,则此项为必需。 |