项目模块和依赖
本站(springdoc.cn)中的内容来源于 spring.io ,原始版权归属于 spring.io。由 springdoc.cn 进行翻译,整理。可供个人学习、研究,未经许可,不得进行任何转载、商用或与之相关的行为。 商标声明:Spring 是 Pivotal Software, Inc. 在美国以及其他国家的商标。 |
在Spring Security 3.0中,代码库被细分为独立的jar,更明确地将不同的功能区和第三方依赖关系分开。如果你使用Maven构建你的项目,这些是你应该添加到 pom.xml
中的模块。即使你不使用Maven,我们也建议你查阅 pom.xml
文件,了解第三方的依赖和版本情况。另一个好主意是检查示例应用程序中包含的库。
本节提供了Spring Security 中各模块的参考,以及它们在运行中的应用程序中需要的额外依赖。我们不包括那些仅在构建或测试 Spring Security 本身时使用的依赖。我们也不包括外部依赖所要求的过渡性依赖。
项目网站上列出了所需的Spring版本,因此例子中的Spring依赖项省略了具体版本。请注意,实例中列为 “optional” (可选) 的一些依赖项可能仍是Spring应用中其他非security功能所需的。如果大多数应用中都使用了列为 “optional”(可选) 的依赖项,那么在项目的 Maven POM 文件中实际上可能并没有这样标注。它们是 “optional” (可选)的,因为你不需要它们,除非你使用指定的功能。
当一个模块依赖于另一个 Spring Security 模块时,它所依赖的模块的非选择性依赖也被认为是必须的,并且不单独列出。
Core — spring-security-core.jar
该模块包含核心认证和访问控制类和接口、远程支持和基本配置API。任何使用 Spring Security 的应用程序都需要它。它支持独立的应用程序、远程客户端、方法(服务层)安全(Method security)和JDBC用户配置。它包含以下顶级包。
-
org.springframework.security.core
-
org.springframework.security.access
-
org.springframework.security.authentication
-
org.springframework.security.provisioning
Dependency | Version | Description |
---|---|---|
ehcache |
1.6.2 |
如果使用基于Ehcache的用户缓存实现,则需要(可选)。 |
spring-aop |
Method security 是基于Spring AOP的。 |
|
spring-beans |
Spring 配置所需 |
|
spring-expression |
基于表达式的method security需要(可选)。 |
|
spring-jdbc |
如果使用数据库来存储用户数据,则需要(可选)。 |
|
spring-tx |
如果使用数据库来存储用户数据,则需要(可选)。 |
|
aspectjrt |
1.6.10 |
如果使用AspectJ支持则需要(可选)。 |
jsr250-api |
1.0 |
如果你使用JSR-250方法安全注解(可选),则需要。 |
Remoting — spring-security-remoting.jar
这个模块提供了与 Spring Remoting 的集成。
除非你正在编写一个使用 Spring Remoting 的远程客户端,否则你不需要这个。
主包是 org.springframework.security.remoting
。
Dependency | Version | Description |
---|---|---|
spring-security-core |
||
spring-web |
对于使用HTTP远程支持的客户端来说是必需的。 |
Web — spring-security-web.jar
该模块包含过滤器和相关的web安全基础设施代码。它包含任何有servlet API依赖的东西。如果你需要Spring Security Web 认证服务和基于URL的访问控制,你就需要它。主包是 org.springframework.security.web
。
Dependency | Version | Description |
---|---|---|
spring-security-core |
||
spring-web |
对于使用HTTP远程支持的客户端来说是必需的。 |
|
spring-jdbc |
对于基于JDBC的存储的“记住我”的令牌存储库来说是必需的(可选)。 |
|
spring-tx |
由“记住我”持久性令牌存储库实现要求(可选)。 |
Config — spring-security-config.jar
该模块包含 security 命名空间解析代码和Java配置代码。如果你使用 Spring Security 的XML命名空间进行配置或 Spring Security 的 Java 配置支持,你就需要它。主包是 org.springframework.security.config
。所有的类都不打算在应用程序中直接使用。
Dependency | Version | Description |
---|---|---|
spring-security-core |
||
spring-security-web |
如果你正在使用任何与web有关的命名空间配置,则需要(可选)。 |
|
spring-security-ldap |
如果你使用LDAP命名空间选项(可选),则需要。 |
|
aspectjweaver |
1.6.10 |
如果使用 protect-pointcut 命名空间语法,则需要(可选)。 |
LDAP — spring-security-ldap.jar
这个模块提供LDAP认证和供应代码。如果你需要使用LDAP认证或管理LDAP用户条目,就需要它。顶层包是 org.springframework.security.ldap
。
Dependency | Version | Description |
---|---|---|
spring-security-core |
||
spring-ldap-core |
1.3.0 |
对LDAP的支持是基于Spring LDAP的。 |
spring-tx |
Data exception 类是必须的。 |
|
apache-ds |
1.5.5 |
如果你使用嵌入式LDAP服务器,则需要(可选)。如果你使用 |
shared-ldap |
0.9.15 |
如果你使用嵌入式LDAP服务器,则需要(可选)。 |
ldapsdk |
4.1 |
Mozilla LdapSDK。 用于解码LDAP密码策略控制,如果你使用OpenLDAP的密码策略功能,比如说。 |
OAuth 2.0 Core — 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 Client — 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 JOSE — spring-security-oauth2-jose.jar
spring-security-oauth2-jose.jar
包 含Spring Security 对 JOSE(Javascript Object Signing and Encryption)框架的支持。JOSE框架旨在提供一种方法,在各方之间安全地转移 claim。它是由一系列规范构建的。
-
JSON Web Token (JWT)
-
JSON Web Signature (JWS)
-
JSON Web Encryption (JWE)
-
JSON Web Key (JWK)
它包含以下顶级包。
-
org.springframework.security.oauth2.jwt
-
org.springframework.security.oauth2.jose
OAuth 2.0 Resource Server — 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.resource
。
ACL — spring-security-acl.jar
这个模块包含一个专门的 domain object ACL 实现。它用于在你的应用程序中对特定的 domain object 实例应用安全。顶层包是 org.springframework.security.acls
。
Dependency | Version | Description |
---|---|---|
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 客户端集成。如果你想在CAS单点登录服务器上使用 Spring Security Web 认证,你应该使用它。顶层包是 org.springframework.security.cas
。
Dependency | Version | Description |
---|---|---|
spring-security-core |
||
spring-security-web |
||
cas-client-core |
3.1.12 |
JA-SIG CAS客户端。 这是Spring Security集成的基础。 |
ehcache |
1.6.2 |
如果你使用基于Ehcache的票据缓存,则需要(可选)。 |