对于最新的稳定版本,请使用 Spring Security 6.3.1

对于最新的稳定版本,请使用 Spring Security 6.3.1

即使您不使用 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

表 1.核心依赖关系
屬地 版本 描述

ehcache

1.6.2

如果使用基于 Ehcache 的用户缓存实现,则为必填项(可选)。

弹簧-AOP

方法安全性基于 Spring AOP

春豆

Spring 配置是必需的

弹簧表达式

基于表达式的方法安全性是必需的(可选)

弹簧-JDBC

如果使用数据库存储用户数据(可选),则为必需。

Spring-TX

如果使用数据库存储用户数据(可选),则为必需。

aspectjrt

1.6.10

如果使用 AspectJ 支持(可选),则为必需。

JSR250-API接口

1.0

如果您使用的是 JSR-250 方法安全注释(可选),则为必需。

表 1.核心依赖关系
屬地 版本 描述

ehcache

1.6.2

如果使用基于 Ehcache 的用户缓存实现,则为必填项(可选)。

弹簧-AOP

方法安全性基于 Spring AOP

春豆

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

表 2.远程处理依赖项
屬地 版本 描述

spring-security-core(弹簧安全核心)

弹簧网

对于使用 HTTP 远程处理支持的客户端是必需的。

表 2.远程处理依赖项
屬地 版本 描述

spring-security-core(弹簧安全核心)

弹簧网

对于使用 HTTP 远程处理支持的客户端是必需的。

网络 —spring-security-web.jar

此模块包含过滤器和相关的 Web 安全基础结构代码。 它包含具有 servlet API 依赖项的任何内容。 如果您需要 Spring Security Web 身份验证服务和基于 URL 的访问控制,则需要它。 主要软件包是 .org.springframework.security.web

表 3.Web 依赖关系
屬地 版本 描述

spring-security-core(弹簧安全核心)

弹簧网

对于使用 HTTP 远程处理支持的客户端是必需的。

弹簧-JDBC

对于基于 JDBC 的持久性记住我令牌存储库(可选)是必需的。

Spring-TX

remember-me 持久令牌存储库实现(可选)需要。

表 3.Web 依赖关系
屬地 版本 描述

spring-security-core(弹簧安全核心)

弹簧网

对于使用 HTTP 远程处理支持的客户端是必需的。

弹簧-JDBC

对于基于 JDBC 的持久性记住我令牌存储库(可选)是必需的。

Spring-TX

remember-me 持久令牌存储库实现(可选)需要。

配置 —spring-security-config.jar

此模块包含安全命名空间解析代码和 Java 配置代码。 如果您使用 Spring Security XML 命名空间进行配置或使用 Spring Security 的 Java 配置支持,则需要它。 主要软件包是 . 这些类都不能直接在应用程序中使用。org.springframework.security.config

表 4.配置依赖关系
屬地 版本 描述

spring-security-core(弹簧安全核心)

spring-安全-web

如果使用任何与 Web 相关的命名空间配置(可选),则为必填项。

spring-security-ldap

如果使用 LDAP 命名空间选项(可选),则为必填项。

aspectjweaver

1.6.10

如果使用 protect-pointcut 命名空间语法(可选),则为必需。

表 4.配置依赖关系
屬地 版本 描述

spring-security-core(弹簧安全核心)

spring-安全-web

如果使用任何与 Web 相关的命名空间配置(可选),则为必填项。

spring-security-ldap

如果使用 LDAP 命名空间选项(可选),则为必填项。

aspectjweaver

1.6.10

如果使用 protect-pointcut 命名空间语法(可选),则为必需。

LDAP —spring-security-ldap.jar

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

表 5.LDAP 依赖关系
屬地 版本 描述

spring-security-core(弹簧安全核心)

spring-ldap-核心

1.3.0

LDAP 支持基于 Spring LDAP。

Spring-TX

数据异常类是必需的。

阿帕奇-DS

1.5.5

如果您使用的是嵌入式 LDAP 服务器(可选),则为必填项。如果使用 ,则 、 、 和 模块是必需的。apache-dsapacheds-coreapacheds-core-entryapacheds-protocol-sharedapacheds-protocol-ldapapacheds-server-jndi

共享 LDAP

0.9.15

如果您使用的是嵌入式 LDAP 服务器(可选),则为必填项。

ldapsdk

4.1

Mozilla LdapSDK。 例如,用于解码 LDAP 密码策略控制(如果将密码策略功能与 OpenLDAP 一起使用)。

表 5.LDAP 依赖关系
屬地 版本 描述

spring-security-core(弹簧安全核心)

spring-ldap-核心

1.3.0

LDAP 支持基于 Spring LDAP。

Spring-TX

数据异常类是必需的。

阿帕奇-DS

1.5.5

如果您使用的是嵌入式 LDAP 服务器(可选),则为必填项。如果使用 ,则 、 、 和 模块是必需的。apache-dsapacheds-coreapacheds-core-entryapacheds-protocol-sharedapacheds-protocol-ldapapacheds-server-jndi

共享 LDAP

0.9.15

如果您使用的是嵌入式 LDAP 服务器(可选),则为必填项。

ldapsdk

4.1

Mozilla LdapSDK。 例如,用于解码 LDAP 密码策略控制(如果将密码策略功能与 OpenLDAP 一起使用)。

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 何塞 —spring-security-oauth2-jose.jar

spring-security-oauth2-jose.jar包含 Spring Security 对 JOSE(Javascript 对象签名和加密)框架的支持。 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

表 6.ACL 依赖关系
屬地 版本 描述

spring-security-core(弹簧安全核心)

ehcache

1.6.2

如果使用基于 Ehcache 的 ACL 缓存实现,则为必填项(如果您使用自己的实现,则为可选)。

弹簧-JDBC

如果使用的是基于 JDBC 的缺省 AclService,则为必填项(如果实现自己的 AclService,则为可选)。

Spring-TX

如果使用的是基于 JDBC 的缺省 AclService,则为必填项(如果实现自己的 AclService,则为可选)。

表 6.ACL 依赖关系
屬地 版本 描述

spring-security-core(弹簧安全核心)

ehcache

1.6.2

如果使用基于 Ehcache 的 ACL 缓存实现,则为必填项(如果您使用自己的实现,则为可选)。

弹簧-JDBC

如果使用的是基于 JDBC 的缺省 AclService,则为必填项(如果实现自己的 AclService,则为可选)。

Spring-TX

如果使用的是基于 JDBC 的缺省 AclService,则为必填项(如果实现自己的 AclService,则为可选)。

中科院 —spring-security-cas.jar

该模块包含 Spring Security 的 CAS 客户端集成。 如果要将 Spring Security Web 身份验证与 CAS 单点登录服务器一起使用,则应使用它。 顶级包是 。org.springframework.security.cas

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

spring-security-core(弹簧安全核心)

spring-安全-web

cas-client-core

3.1.12

JA-SIG CAS 客户端。 这是 Spring Security 集成的基础。

ehcache

1.6.2

如果您使用的是基于 Ehcache 的票证缓存(可选),则为必填项。

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

spring-security-core(弹簧安全核心)

spring-安全-web

cas-client-core

3.1.12

JA-SIG CAS 客户端。 这是 Spring Security 集成的基础。

ehcache

1.6.2

如果您使用的是基于 Ehcache 的票证缓存(可选),则为必填项。

测试 —spring-security-test.jar

此模块包含对使用 Spring Security 进行测试的支持。

标签 —spring-security-taglibs.jar

提供 Spring Security 的 JSP 标记实现。

表 8.Taglib 依赖项
屬地 版本 描述

spring-security-core(弹簧安全核心)

spring-安全-web

spring-security-ACL

如果将标记或表达式与 ACL 一起使用(可选),则为必需。accesscontrollisthasPermission()

弹簧表达式

如果您在标签访问约束中使用 SPEL 表达式,则为必填项。

表 8.Taglib 依赖项
屬地 版本 描述

spring-security-core(弹簧安全核心)

spring-安全-web

spring-security-ACL

如果将标记或表达式与 ACL 一起使用(可选),则为必需。accesscontrollisthasPermission()

弹簧表达式

如果您在标签访问约束中使用 SPEL 表达式,则为必填项。