对于最新的稳定版本,请使用 Spring Security 6.3.3! |
对于最新的稳定版本,请使用 Spring Security 6.3.3! |
即使您不使用 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
Dependency | 版本 | 描述 |
---|---|---|
ehcache |
1.6.2 |
如果使用基于 Ehcache 的用户缓存实现,则为 required(可选)。 |
spring-aop |
方法安全性基于 Spring AOP |
|
spring-beans |
Spring 配置需要 |
|
spring-expression |
对于基于表达式的方法安全性是必需的(可选) |
|
spring-jdbc |
如果使用数据库存储用户数据,则为必需(可选)。 |
|
spring-tx |
如果使用数据库存储用户数据,则为必需(可选)。 |
|
aspectjrt |
1.6.10 |
如果使用 AspectJ 支持(可选),则是必需的。 |
jsr250-api |
1.0 |
如果您使用的是 JSR-250 方法安全注释(可选),则是必需的。 |
Dependency | 版本 | 描述 |
---|---|---|
ehcache |
1.6.2 |
如果使用基于 Ehcache 的用户缓存实现,则为 required(可选)。 |
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
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-web |
对于使用 HTTP 远程处理支持的客户端是必需的。 |
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-web |
对于使用 HTTP 远程处理支持的客户端是必需的。 |
网页 —spring-security-web.jar
此模块包含过滤器和相关的 Web 安全基础设施代码。
它包含具有 servlet API 依赖项的任何内容。
如果您需要 Spring Security Web 身份验证服务和基于 URL 的访问控制,则需要它。
主包是 。org.springframework.security.web
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-web |
Spring Web 支持类被广泛使用。 |
|
spring-jdbc |
对于基于 JDBC 的持久性 remember-me 令牌存储库是必需的(可选)。 |
|
spring-tx |
remember-me 持久性令牌存储库实现需要(可选)。 |
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-web |
Spring Web 支持类被广泛使用。 |
|
spring-jdbc |
对于基于 JDBC 的持久性 remember-me 令牌存储库是必需的(可选)。 |
|
spring-tx |
remember-me 持久性令牌存储库实现需要(可选)。 |
配置 —spring-security-config.jar
该模块包含安全名称空间解析代码和 Java 配置代码。
如果您使用 Spring Security XML 名称空间进行配置或 Spring Security 的 Java 配置支持,则需要它。
主包是 。
这些类都不是为了在应用程序中直接使用而设计的。org.springframework.security.config
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
如果您使用的是任何与 Web 相关的命名空间配置(可选),则为必需。 |
|
spring-security-ldap |
如果您使用的是 LDAP 命名空间选项(可选),则为必需。 |
|
spring-security-openid |
如果您使用的是 OpenID 身份验证(可选),则为必需。 |
|
aspectjweaver |
1.6.10 |
如果使用 protect-pointcut 命名空间语法,则为必需(可选)。 |
Dependency | 版本 | 描述 |
---|---|---|
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 | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-ldap-core |
1.3.0 |
LDAP 支持基于 Spring LDAP。 |
spring-tx |
数据异常类是必需的。 |
|
apache-ds[1] |
1.5.5 |
如果您使用的是嵌入式 LDAP 服务器,则为必需(可选)。 |
shared-ldap |
0.9.15 |
如果您使用的是嵌入式 LDAP 服务器,则为必需(可选)。 |
ldapsdk |
4.1 |
Mozilla LdapSDK 的 LdapSDK 中。 例如,如果将 password-policy 功能与 OpenLDAP 一起使用,则用于解码 LDAP 口令策略控件。 |
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-ldap-core |
1.3.0 |
LDAP 支持基于 Spring LDAP。 |
spring-tx |
数据异常类是必需的。 |
|
apache-ds[1] |
1.5.5 |
如果您使用的是嵌入式 LDAP 服务器,则为必需(可选)。 |
shared-ldap |
0.9.15 |
如果您使用的是嵌入式 LDAP 服务器,则为必需(可选)。 |
ldapsdk |
4.1 |
Mozilla LdapSDK 的 LdapSDK 中。 例如,如果将 password-policy 功能与 OpenLDAP 一起使用,则用于解码 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 的应用程序(例如,客户端、资源服务器和授权服务器)需要它。
顶级软件包是 .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 登录或 OAuth 客户端支持的应用程序需要它。
顶级软件包是 .org.springframework.security.oauth2.client
OAuth 2.0 JOSE —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
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
ehcache |
1.6.2 |
如果使用基于 Ehcache 的 ACL 缓存实现,则为必需(如果您使用的是自己的实现,则为可选)。 |
spring-jdbc |
如果您使用的是基于 JDBC 的默认 AclService,则为必需(如果您实现自己的 AclService,则为可选)。 |
|
spring-tx |
如果您使用的是基于 JDBC 的默认 AclService,则为必需(如果您实现自己的 AclService,则为可选)。 |
Dependency | 版本 | 描述 |
---|---|---|
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 客户端集成。
如果要将 Spring Security Web 身份验证与 CAS 单点登录服务器一起使用,则应使用它。
顶级软件包是 .org.springframework.security.cas
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
||
cas-client-core |
3.1.12 |
JA-SIG CAS 客户端。 这是 Spring Security 集成的基础。 |
ehcache |
1.6.2 |
如果您使用的是基于 Ehcache 的ticket缓存(可选),则为必需。 |
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
||
cas-client-core |
3.1.12 |
JA-SIG CAS 客户端。 这是 Spring Security 集成的基础。 |
ehcache |
1.6.2 |
如果您使用的是基于 Ehcache 的ticket缓存(可选),则为必需。 |
OpenID —spring-security-openid.jar
OpenID 1.0 和 2.0 协议已被弃用,鼓励用户迁移到 spring-security-oauth2 支持的 OpenID Connect。 |
此模块包含 OpenID Web 身份验证支持。
它用于根据外部 OpenID 服务器对用户进行身份验证。
顶级软件包是 .
它需要 OpenID4Java。org.springframework.security.openid
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
||
openid4java 节点 |
0.9.6 |
Spring Security 的 OpenID 集成使用 OpenID4Java。 |
http客户端 |
4.1.1 |
openid4java-nodeps 依赖于 HttpClient 4。 |
吉策 |
2.0 |
openid4java-nodeps 依赖于 Guice 2。 |
OpenID 1.0 和 2.0 协议已被弃用,鼓励用户迁移到 spring-security-oauth2 支持的 OpenID Connect。 |
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
||
openid4java 节点 |
0.9.6 |
Spring Security 的 OpenID 集成使用 OpenID4Java。 |
http客户端 |
4.1.1 |
openid4java-nodeps 依赖于 HttpClient 4。 |
吉策 |
2.0 |
openid4java-nodeps 依赖于 Guice 2。 |
Taglibs —spring-security-taglibs.jar
提供 Spring Security 的 JSP 标记实现。
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
||
spring-security-ACL |
如果您将标签或表达式与 ACL 一起使用,则为必需(可选)。 |
|
spring-expression |
如果您在标签访问约束中使用 SPEL 表达式,则为必需。 |
Dependency | 版本 | 描述 |
---|---|---|
spring-security-core |
||
spring-security-web |
||
spring-security-ACL |
如果您将标签或表达式与 ACL 一起使用,则为必需(可选)。 |
|
spring-expression |
如果您在标签访问约束中使用 SPEL 表达式,则为必需。 |
apacheds-core
apacheds-core-entry
apacheds-protocol-shared
apacheds-protocol-ldap
apacheds-server-jndi