项目模块与依赖

即使您不使用 Maven,我们也建议您查阅 pom.xml 文件,以了解第三方依赖及其版本信息。 另一个不错的做法是检查示例应用程序中包含的库。spring-doc.cadn.net.cn

本节提供了 Spring Security 中各模块的参考信息,以及它们在运行应用程序中正常工作所需的额外依赖项。 我们不包含仅在构建或测试 Spring Security 本身时才使用的依赖项。 也不包含外部依赖项所要求的传递性依赖项。spring-doc.cadn.net.cn

所需 Spring 版本已在项目网站上列出,因此示例中 Spring 相关依赖项的具体版本已被省略。 请注意,示例中标记为“可选”的某些依赖项,在 Spring 应用程序中可能仍为其他非安全功能所必需。 此外,如果某些依赖项在大多数应用程序中都会被使用,那么即使在示例中标注为“可选”,它们在项目的 Maven POM 文件中也可能并未实际标记为可选。 这里的“可选”仅表示:除非您使用了特定的功能,否则无需这些依赖项。spring-doc.cadn.net.cn

当一个模块依赖于另一个 Spring Security 模块时,该被依赖模块的非可选依赖项也被视为必需,因此不会单独列出。spring-doc.cadn.net.cn

核心 —spring-security-core.jar

该模块包含核心的身份验证和访问控制类与接口、远程调用支持,以及基本的用户配置(provisioning)API。 任何使用 Spring Security 的应用程序都需要此模块。 它支持独立应用程序、远程客户端、方法(服务层)安全性和 JDBC 用户配置。 它包含以下顶级包:spring-doc.cadn.net.cn

表1. 核心依赖项
依赖 版本 描述

ehcachespring-doc.cadn.net.cn

1.6.2spring-doc.cadn.net.cn

如果使用基于 Ehcache 的用户缓存实现,则为必需(可选)。spring-doc.cadn.net.cn

spring-aopspring-doc.cadn.net.cn

方法安全基于 Spring AOPspring-doc.cadn.net.cn

spring-beansspring-doc.cadn.net.cn

Spring 配置所必需spring-doc.cadn.net.cn

spring-expressionspring-doc.cadn.net.cn

基于表达式的方法安全所需(可选)spring-doc.cadn.net.cn

spring-jdbcspring-doc.cadn.net.cn

如果使用数据库存储用户数据,则为必需(可选)。spring-doc.cadn.net.cn

spring-txspring-doc.cadn.net.cn

如果使用数据库存储用户数据,则为必需(可选)。spring-doc.cadn.net.cn

aspectjrtspring-doc.cadn.net.cn

1.6.10spring-doc.cadn.net.cn

如果使用 AspectJ 支持,则为必需(可选)。spring-doc.cadn.net.cn

jsr250-apispring-doc.cadn.net.cn

1.0spring-doc.cadn.net.cn

如果你使用 JSR-250 方法安全注解,则此项为必需(可选)。spring-doc.cadn.net.cn

远程调用—spring-security-remoting.jar

该模块提供与 Spring Remoting 的集成。 除非你正在编写一个使用 Spring Remoting 的远程客户端,否则不需要此模块。 主要包为 org.springframework.security.remotingspring-doc.cadn.net.cn

表2. 远程调用依赖项
依赖 版本 描述

spring-security-corespring-doc.cadn.net.cn

spring-webspring-doc.cadn.net.cn

适用于使用 HTTP 远程调用支持的客户端。spring-doc.cadn.net.cn

Web —spring-security-web.jar

该模块包含过滤器及相关 Web 安全基础设施代码。 它包含所有依赖于 Servlet API 的内容。 如果您需要 Spring Security 的 Web 认证服务和基于 URL 的访问控制,则需要此模块。 其主包为 org.springframework.security.webspring-doc.cadn.net.cn

表3. Web依赖项
依赖 版本 描述

spring-security-corespring-doc.cadn.net.cn

spring-webspring-doc.cadn.net.cn

适用于使用 HTTP 远程调用支持的客户端。spring-doc.cadn.net.cn

spring-jdbcspring-doc.cadn.net.cn

基于 JDBC 的持久化 remember-me Tokens仓库所需(可选)。spring-doc.cadn.net.cn

spring-txspring-doc.cadn.net.cn

由“记住我”持久化Tokens存储库实现所必需(可选)。spring-doc.cadn.net.cn

配置 —spring-security-config.jar

该模块包含安全命名空间解析代码和 Java 配置代码。 如果您使用 Spring Security 的 XML 命名空间进行配置,或者使用 Spring Security 的 Java 配置支持,则需要此模块。 主包为 org.springframework.security.config。 其中的类均不打算在应用程序中直接使用。spring-doc.cadn.net.cn

表4. 配置依赖项
依赖 版本 描述

spring-security-corespring-doc.cadn.net.cn

spring-security-webspring-doc.cadn.net.cn

如果你使用了任何与 Web 相关的命名空间配置,则此项为必需(可选)。spring-doc.cadn.net.cn

spring-security-ldapspring-doc.cadn.net.cn

如果你使用 LDAP 命名空间选项,则此项为必需(可选)。spring-doc.cadn.net.cn

aspectjweaverspring-doc.cadn.net.cn

1.6.10spring-doc.cadn.net.cn

如果使用 protect-pointcut 命名空间语法,则为必需(可选)。spring-doc.cadn.net.cn

LDAP —spring-security-ldap.jar

该模块提供 LDAP 认证和配置代码。 如果您需要使用 LDAP 认证或管理 LDAP 用户条目,则必须引入此模块。 顶层包为 org.springframework.security.ldapspring-doc.cadn.net.cn

表5. LDAP依赖项
依赖 版本 描述

spring-security-corespring-doc.cadn.net.cn

spring-ldap-corespring-doc.cadn.net.cn

1.3.0spring-doc.cadn.net.cn

LDAP 支持基于 Spring LDAP。spring-doc.cadn.net.cn

spring-txspring-doc.cadn.net.cn

需要数据异常类。spring-doc.cadn.net.cn

com.unboundid:unboundid-ldapsdkspring-doc.cadn.net.cn

如果使用嵌入式 LDAP 服务器,则为必需项spring-doc.cadn.net.cn

ldapsdkspring-doc.cadn.net.cn

4.1spring-doc.cadn.net.cn

Mozilla LdapSDK。 例如,如果您在使用 OpenLDAP 的密码策略功能时,该 SDK 用于解码 LDAP 密码策略控制。spring-doc.cadn.net.cn

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.corespring-doc.cadn.net.cn

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.corespring-doc.cadn.net.cn

OAuth 2.0 JOSE —spring-security-oauth2-jose.jar

spring-security-oauth2-jose.jar 包含了 Spring Security 对 JOSE(JavaScript 对象签名与加密)框架的支持。 JOSE 框架旨在提供一种在各方之间安全传输声明的方法。 它由一系列规范组成:spring-doc.cadn.net.cn

它包含以下顶级包:spring-doc.cadn.net.cn

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.resourcespring-doc.cadn.net.cn

ACL —spring-security-acl.jar

该模块包含一个专门的领域对象 ACL(访问控制列表)实现。 它用于对应用程序中的特定领域对象实例应用安全性。 顶级包为 org.springframework.security.aclsspring-doc.cadn.net.cn

表6. ACL依赖项
依赖 版本 描述

spring-security-corespring-doc.cadn.net.cn

ehcachespring-doc.cadn.net.cn

1.6.2spring-doc.cadn.net.cn

如果使用基于 Ehcache 的 ACL 缓存实现,则为必需项(如果您使用自己的实现,则为可选项)。spring-doc.cadn.net.cn

spring-jdbcspring-doc.cadn.net.cn

如果你使用的是基于 JDBC 的默认 AclService,则此项为必需(如果你自行实现 AclService,则为可选)。spring-doc.cadn.net.cn

spring-txspring-doc.cadn.net.cn

如果你使用的是基于 JDBC 的默认 AclService,则此项为必需(如果你自行实现 AclService,则为可选)。spring-doc.cadn.net.cn

CAS —spring-security-cas.jar

该模块包含 Spring Security 的 CAS 客户端集成。 如果你希望在使用 CAS 单点登录服务器的同时采用 Spring Security 的 Web 认证功能,就应当使用此模块。 顶层包为 org.springframework.security.casspring-doc.cadn.net.cn

表7. CAS依赖项
依赖 版本 描述

spring-security-corespring-doc.cadn.net.cn

spring-security-webspring-doc.cadn.net.cn

cas-client-corespring-doc.cadn.net.cn

3.1.12spring-doc.cadn.net.cn

JA-SIG CAS 客户端。 这是 Spring Security 集成的基础。spring-doc.cadn.net.cn

ehcachespring-doc.cadn.net.cn

1.6.2spring-doc.cadn.net.cn

如果你使用基于 Ehcache 的ticket缓存,则此项为必需(可选)。spring-doc.cadn.net.cn

测试 —spring-security-test.jar

该模块包含对使用 Spring Security 进行测试的支持。spring-doc.cadn.net.cn

标签库 —spring-security-taglibs.jar

提供 Spring Security 的 JSP 标签实现。spring-doc.cadn.net.cn

表8. 标签库依赖项
依赖 版本 描述

spring-security-corespring-doc.cadn.net.cn

spring-security-webspring-doc.cadn.net.cn

spring-security-aclspring-doc.cadn.net.cn

如果你使用了 accesscontrollist 标签或带有 ACL 的 hasPermission() 表达式,则此项为必需(可选)。spring-doc.cadn.net.cn

spring-expressionspring-doc.cadn.net.cn

如果你在标签访问约束中使用 SPEL 表达式,则此项为必需。spring-doc.cadn.net.cn