对于最新的稳定版本,请使用 Spring Security 6.5.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 的用户缓存实现,则为必需(可选)。 |
弹簧-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
.
Dependency | 版本 | 描述 |
---|---|---|
Spring Security核心 |
||
弹簧网 |
对于使用 HTTP 远程处理支持的客户端是必需的。 |
网 —spring-security-web.jar
此模块包含过滤器和相关的 Web 安全基础架构代码。
它包含任何具有 servlet API 依赖项的内容。
如果您需要 Spring Security Web 身份验证服务和基于 URL 的访问控制,则需要它。
主要包装是org.springframework.security.web
.
Dependency | 版本 | 描述 |
---|---|---|
Spring Security核心 |
||
弹簧网 |
Spring Web 支持类被广泛使用。 |
|
弹簧-JDBC |
基于 JDBC 的持久性 remember-me Tokens存储库(可选)是必需的。 |
|
spring-tx |
remember-me 持久Tokens存储库实现(可选)所必需的。 |
配置 —spring-security-config.jar
该模块包含安全命名空间解析代码和 Java 配置代码。
如果您使用 Spring Security XML 命名空间进行配置或 Spring Security 的 Java 配置支持,则需要它。
主要包装是org.springframework.security.config
.
这些类都不打算直接在应用程序中使用。
Dependency | 版本 | 描述 |
---|---|---|
Spring Security核心 |
||
Spring Security网络 |
如果使用任何与 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核心 |
||
弹簧-ldap-核心 |
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。 例如,如果将密码策略功能与 OpenLDAP 一起使用,则用于解码 LDAP 密码策略控件。 |
OAuth 2.0 核心 —spring-security-oauth2-core.jar
spring-security-oauth2-core.jar
包含对 OAuth 2.0 授权框架和 OpenID Connect 核心 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 何塞 —spring-security-oauth2-jose.jar
spring-security-oauth2-jose.jar
包含 Spring Security 对 JOSE(Javascript 对象签名和加密)框架的支持。
JOSE 框架旨在提供一种在当事方之间安全转移债权的方法。
它是根据一系列规范构建的:
-
JSON Web Tokens (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 不记名Tokens保护 API。
顶级包是org.springframework.security.oauth2.server.resource
.
前交叉韧带 —spring-security-acl.jar
此模块包含专用的域对象 ACL 实现。
它用于将安全性应用于应用程序中的特定域对象实例。
顶级包是org.springframework.security.acls
.
Dependency | 版本 | 描述 |
---|---|---|
Spring Security核心 |
||
ehcache |
1.6.2 |
如果使用基于 Ehcache 的 ACL 缓存实现,则为必需(如果您使用自己的实现,则为可选)。 |
弹簧-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核心 |
||
Spring Security网络 |
||
cas-客户端核心 |
3.1.12 |
JA-SIG CAS 客户端。 这是 Spring Security 集成的基础。 |
ehcache |
1.6.2 |
如果您使用的是基于 Ehcache 的票证缓存(可选),则为必填项。 |
OpenID —spring-security-openid.jar
OpenID 1.0 和 2.0 协议已被弃用,鼓励用户迁移到 spring-security-oauth2 支持的 OpenID Connect。 |
此模块包含 OpenID Web 身份验证支持。
它用于针对外部 OpenID 服务器对用户进行身份验证。
顶级包是org.springframework.security.openid
.
它需要 OpenID4Java。
Dependency | 版本 | 描述 |
---|---|---|
Spring Security核心 |
||
Spring Security网络 |
||
openid4java-nodeps |
0.9.6 |
Spring Security 的 OpenID 集成使用 OpenID4Java。 |
HTTP客户端 |
4.1.1 |
openid4java-nodeps 依赖于 HttpClient 4。 |
吉斯 |
2.0 |
openid4java-nodeps 依赖于 Guice 2。 |
塔格利布 —spring-security-taglibs.jar
提供 Spring Security 的 JSP 标签实现。
Dependency | 版本 | 描述 |
---|---|---|
Spring Security核心 |
||
Spring Security网络 |
||
Spring Security ACL |
如果您使用 |
|
弹簧表达式 |
如果在标记访问约束中使用 SPEL 表达式,则为必需。 |
apacheds-core
,apacheds-core-entry
,apacheds-protocol-shared
,apacheds-protocol-ldap
和apacheds-server-jndi
是必需的。