即使您不使用 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 的用户缓存实现,则为必填项(可选)。 |
弹簧-AOP |
方法安全性基于 Spring AOP |
|
春豆 |
Spring 配置是必需的 |
|
弹簧表达式 |
基于表达式的方法安全性是必需的(可选) |
|
弹簧-JDBC |
如果使用数据库存储用户数据(可选),则为必需。 |
|
Spring-TX |
如果使用数据库存储用户数据(可选),则为必需。 |
|
aspectjrt |
1.6.10 |
如果使用 AspectJ 支持(可选),则为必需。 |
JSR250-API接口 |
1.0 |
如果您使用的是 JSR-250 方法安全注释(可选),则为必需。 |
屬地 | 版本 | 描述 |
---|---|---|
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
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
弹簧网 |
对于使用 HTTP 远程处理支持的客户端是必需的。 |
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
弹簧网 |
对于使用 HTTP 远程处理支持的客户端是必需的。 |
网络 —spring-security-web.jar
此模块包含过滤器和相关的 Web 安全基础结构代码。
它包含具有 servlet API 依赖项的任何内容。
如果您需要 Spring Security Web 身份验证服务和基于 URL 的访问控制,则需要它。
主要软件包是 .org.springframework.security.web
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
弹簧网 |
对于使用 HTTP 远程处理支持的客户端是必需的。 |
|
弹簧-JDBC |
对于基于 JDBC 的持久性记住我令牌存储库(可选)是必需的。 |
|
Spring-TX |
remember-me 持久令牌存储库实现(可选)需要。 |
屬地 | 版本 | 描述 |
---|---|---|
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
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
spring-安全-web |
如果使用任何与 Web 相关的命名空间配置(可选),则为必填项。 |
|
spring-security-ldap |
如果使用 LDAP 命名空间选项(可选),则为必填项。 |
|
aspectjweaver |
1.6.10 |
如果使用 protect-pointcut 命名空间语法(可选),则为必需。 |
屬地 | 版本 | 描述 |
---|---|---|
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
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
spring-ldap-核心 |
1.3.0 |
LDAP 支持基于 Spring LDAP。 |
Spring-TX |
数据异常类是必需的。 |
|
阿帕奇-DS |
1.5.5 |
如果您使用的是嵌入式 LDAP 服务器(可选),则为必填项。如果使用 ,则 、 、 和 模块是必需的。 |
共享 LDAP |
0.9.15 |
如果您使用的是嵌入式 LDAP 服务器(可选),则为必填项。 |
ldapsdk |
4.1 |
Mozilla LdapSDK。 例如,用于解码 LDAP 密码策略控制(如果将密码策略功能与 OpenLDAP 一起使用)。 |
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
spring-ldap-核心 |
1.3.0 |
LDAP 支持基于 Spring LDAP。 |
Spring-TX |
数据异常类是必需的。 |
|
阿帕奇-DS |
1.5.5 |
如果您使用的是嵌入式 LDAP 服务器(可选),则为必填项。如果使用 ,则 、 、 和 模块是必需的。 |
共享 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
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
ehcache |
1.6.2 |
如果使用基于 Ehcache 的 ACL 缓存实现,则为必填项(如果您使用自己的实现,则为可选)。 |
弹簧-JDBC |
如果使用的是基于 JDBC 的缺省 AclService,则为必填项(如果实现自己的 AclService,则为可选)。 |
|
Spring-TX |
如果使用的是基于 JDBC 的缺省 AclService,则为必填项(如果实现自己的 AclService,则为可选)。 |
屬地 | 版本 | 描述 |
---|---|---|
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
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
spring-安全-web |
||
cas-client-core |
3.1.12 |
JA-SIG CAS 客户端。 这是 Spring Security 集成的基础。 |
ehcache |
1.6.2 |
如果您使用的是基于 Ehcache 的票证缓存(可选),则为必填项。 |
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
spring-安全-web |
||
cas-client-core |
3.1.12 |
JA-SIG CAS 客户端。 这是 Spring Security 集成的基础。 |
ehcache |
1.6.2 |
如果您使用的是基于 Ehcache 的票证缓存(可选),则为必填项。 |
标签 —spring-security-taglibs.jar
提供 Spring Security 的 JSP 标记实现。
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
spring-安全-web |
||
spring-security-ACL |
如果将标记或表达式与 ACL 一起使用(可选),则为必需。 |
|
弹簧表达式 |
如果您在标签访问约束中使用 SPEL 表达式,则为必填项。 |
屬地 | 版本 | 描述 |
---|---|---|
spring-security-core(弹簧安全核心) |
||
spring-安全-web |
||
spring-security-ACL |
如果将标记或表达式与 ACL 一起使用(可选),则为必需。 |
|
弹簧表达式 |
如果您在标签访问约束中使用 SPEL 表达式,则为必填项。 |