SpringSecurity中文文档(Project+Modules-Simple)

项目模块和依赖(Project Modules and Dependencies)

即使你不用 Maven,我们建议您查阅 pom.xml 文件以了解第三方依赖关系和版本。另一个好主意是检查示例应用程序中包含的库。

本节提供了 Spring Security 中模块的参考,以及它们在运行的应用程序中运行所需的附加依赖项。我们不包括仅在构建或测试 SpringSecurity 本身时使用的依赖项。我们也不包括外部依赖项所需的传递依赖项。

需要的 Spring 版本在项目网站上列出,因此示例中的 Spring 依赖项省略了特定的版本。注意,例子中列出的一些“可选”的依赖关系可能仍然是 Spring 应用程序中其他非安全功能所需要的。另外,如果在大多数应用程序中使用“可选”的依赖关系,那么在项目的 Maven POM 文件中可能不会被标记为“可选”的依赖关系。它们是“可选的”,只是在您不需要它们的意义上,除非您使用指定的功能。

如果一个模块依赖于另一个 Spring Security 模块,那么它所依赖的模块的非可选依赖项也被认为是必需的,并且不会单独列出。

Core — spring-security-core.jar

此模块包含核心身份验证和访问控制类和接口、远程处理支持和基本配置 API。任何使用 SpringSecurity 的应用程序都需要它。它支持独立应用程序、远程客户端、方法(服务层)安全性和 JDBC 用户配置(这里说的方法(服务层)安全性和 JDBC 用户配置就是上一节新特性介绍到的内容)。它包含以下顶级软件包:

  • org.springframework.security.core

  • org.springframework.security.access

  • org.springframework.security.authentication

  • org.springframework.security.provisioning

Table 1. 核心依赖(Core Dependencies)

DependencyVersionDescription
ehcache1.6.2如果使用基于 Ehcache 的用户缓存实现,则必需(可选)。Required if the Ehcache-based user cache implementation is used (optional).
spring-aop方法安全性(Method security) is based on Spring AOP
spring-beansSpring 配置所需。 Required for Spring configuration
spring-expression基于表达式的方法安全性所必需的(可选)。Required for expression-based method security (optional)
spring-jdbc如果使用数据库存储用户数据则必需(可选)。Required if using a database to store user data (optional).
spring-tx如果使用数据库存储用户数据则必需(可选)。Required if using a database to store user data (optional).
aspectjrt1.6.10如果使用 AspectJ 支持则必需(可选)。Required if using AspectJ support (optional).
jsr250-api1.0如果使用JSR-250方法安全注释则必需(可选)。Required if you are using JSR-250 method-security annotations (optional).

Remoting — spring-security-remoting.jar

此模块提供与 Spring Remoting 的集成。除非您正在编写使用 Spring Remoting 的远程客户端,否则不需要它。主包是 org.springframework.security.Remoting。

Table 2. Remoting Dependencies

DependencyVersionDescription
spring-security-core
spring-web使用 HTTP 远程处理支持的客户端所必需的。Required for clients which use HTTP remoting support.

Web — spring-security-web.jar

此模块包含过滤器和相关的网络安全基础设施代码。它包含任何具有 servletAPI 依赖项的内容。如果您需要 Spring Security Web 身份验证服务和基于 URL 的访问控制,那么就需要它。主包是 org.springframework.security.web。

DependencyVersionDescription
spring-security-core
spring-web使用 HTTP 远程处理支持的客户端所必需的。Required for clients that use HTTP remoting support.
spring-jdbc基于 JDBC 的持久记忆令牌存储库所需的(可选)。Required for a JDBC-based persistent remember-me token repository (optional).
spring-tx基于 JDBC 的持久记忆令牌存储库所需的(可选)。Required by remember-me persistent token repository implementations (optional).

Config — spring-security-config.jar

此模块包含security 命名空间解析代码和 Java 配置代码。如果使用 Spring Security XML 命名空间进行配置或 SpringSecurity 的 Java 配置支持,则需要它。主包是 org.springframework.security.config。没有一个类打算在应用程序中直接使用。

DependencyVersionDescription
spring-security-core
spring-security-web如果使用任何与 Web 相关的名称空间配置,则必需(可选)。Required if you are using any web-related namespace configuration (optional).
spring-security-ldap如果使用 LDAP 命名空间选项,则必需(可选)。Required if you are using the LDAP namespace options (optional).
aspectjweaver1.6.10如果使用 protected-pointcut 命名空间语法则必需(可选)。Required if using the protect-pointcut namespace syntax (optional).

LDAP — spring-security-ldap.jar

该模块提供 LDAP 身份验证和供应代码。如果需要使用 LDAP 身份验证或管理 LDAP 用户条目,则需要使用这种方法。顶级包是 org.springframework.security.ldap。

DependencyVersionDescription
spring-security-core
spring-ldap-core1.3.0LDAP 支持基于 SpringLDAP。LDAP support is based on Spring LDAP.
spring-tx数据异常类是必需的。Data exception classes are required.
apache-ds1.5.5使用嵌入式 LDAP 服务器时必需的(可选)。Required if you are using an embedded LDAP server (optional). If you use apache-ds, the apacheds-core, apacheds-core-entry, apacheds-protocol-shared, apacheds-protocol-ldap and apacheds-server-jndi modules are required.
shared-ldap0.9.15使用嵌入式 LDAP 服务器时必需的(可选)。Required if you are using an embedded LDAP server (optional).
ldapsdk4.1Mozilla LdapSDK。如果您使用 OpenLDAP 的密码策略功能,例如,用于解码 LDAP 密码策略控件。Mozilla LdapSDK. Used for decoding LDAP password policy controls if you are using password-policy functionality with OpenLDAP, for example.

OAuth 2.0 Core — spring-security-oauth2-core.jar

Spring-Security-oauth2-client.jar 包含 Spring Security 对 OAuth 2.0 Authorization Framework 和 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 Authorization Framework 和 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,Javascript 对象签名和加密)框架的支持。JOSE框架旨在提供一种在各方之间安全传输声明的方法。它是由一系列规范构成的:

  • 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 Resource Servers 的支持。它通过使用 OAuth 2.0 Bearer Token 来保护 API,顶级包是 org.springframework.security.oauth2.server.resource。

ACL — spring-security-acl.jar

此模块包含专用的域对象 ACL 实现。它用于对应用程序中的特定域对象实例应用安全性。顶级包是 org.springframework.security.acls。

Table 6. ACL Dependencies

DependencyVersionDescription
spring-security-core
ehcache1.6.2如果使用基于 Ehcache 的 ACL 缓存实现,则为必需(如果使用自己的实现,则为可选)。Required if the Ehcache-based ACL cache implementation is used (optional if you use your own implementation).
spring-jdbc如果使用默认的基于 JDBC 的 AclService,则必需(如果实现自己的 AclService,则可选)。Required if you are using the default JDBC-based AclService (optional if you implement your own).
spring-tx如果使用默认的基于 JDBC 的 AclService,则必需(如果实现自己的 AclService,则可选)。Required if you are using the default JDBC-based AclService (optional if you implement your own).

CAS — spring-security-cas.jar

此模块包含 SpringSecurity 的 CAS 客户端集成。如果您想在 CAS 单点登录服务器上使用 Spring Security web 身份验证,那么应该使用它。顶级包是 org.springframework.security.cas。

DependencyVersionDescription
spring-security-core
spring-security-web
cas-client-core3.1.12JA-SIG CAS 客户端。这是 Spring 安全集成的基础。The JA-SIG CAS Client. This is the basis of the Spring Security integration.
ehcache1.6.2如果使用基于 Ehcache 的凭证缓存,则必需(可选)。Required if you are using the Ehcache-based ticket cache (optional).

Test — spring-security-test.jar

此模块包含对 SpringSecurity 测试的支持。

Taglibs — spring-security-taglibs.jar

提供 SpringSecurity 的 JSP 标记实现。

DependencyVersionDescription
spring-security-core
spring-security-web
spring-security-acl如果使用 ACL (可选)访问控制列表标记或 hasPermission ()表达式,则必需。Required if you are using the accesscontrollist tag or hasPermission() expressions with ACLs (optional).
spring-expression如果在标记访问约束中使用 SPEL 表达式,则必需。Required if you are using SPEL expressions in your tag access constraints.

示例(Samples)

SpringSecurity 包含许多示例( samples )应用程序。

后续我会根据SpringSecurity官方的示例输出一些教程,希望大家多多点赞关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值