计算机系统应用教程网站

网站首页 > 技术文章 正文

Spring Security 项目模块及依赖项详解

btikc 2024-10-01 08:29:56 技术文章 13 ℃ 0 评论

在Spring Security 3.0中,代码库被细分为独立的jar,这些jar更清楚地区分了不同的功能区域和第三方依赖。如果您使用Maven构建项目,那么应该将这些模块添加到pom.xml文件中。即使您不使用Maven,我们也建议您参考pom.xml文件以了解第三方依赖项和版本。另一个好主意是检查示例应用程序中包含的库。

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

项目网站上列出了所需的Spring版本,因此对于下面的Spring依赖项,具体的版本被省略了。请注意,下面列为“可选”的一些依赖项对于Spring应用程序中的其他非安全性功能仍然是必需的。此外,如果在大多数应用程序中都使用“可选”的依赖项,那么在项目的Maven POM文件中可能实际上不会将它们标记为“可选”。它们是“可选的”,只是在你不需要它们的情况下,除非你在使用指定的功能。

当一个模块依赖于另一个Spring Security模块时,它所依赖的模块的非可选依赖项也被认为是必需的,并且没有单独列出。

Core?—?spring-security-core.jar

该模块包含核心身份验证和访问控制类和接口、远程支持和基本配置api。任何使用Spring Security的应用程序都需要它。它支持独立的应用程序、远程客户端、方法(服务层)安全以及JDBC用户配置。

它包含以下顶级包:

  • org.springframework.security.core
  • org.springframework.security.access
  • org.springframework.security.authentication
  • org.springframework.security.provisioning

Core的依赖关系列表:

ehcache

版本:1.6.2

描述:使用基于ehcache的用户缓存实现时需要(可选)。

spring-aop

描述:方法的安全性是基于Spring AOP的

spring-beans

描述:Spring配置所需

spring-expression

描述:基于表达式的方法安全性(可选)

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。

Remoting的依赖关系列表:

spring-security-core

描述:基础核心依赖

spring-web

描述:用于使用HTTP远程支持的客户端。

Web?—?spring-security-web.jar

这个模块包含过滤器和相关的web安全基础架构代码。它包含任何具有servlet API依赖的内容。如果需要Spring Security web身份验证服务和基于url的访问控制,就需要它。主要的包是org.springframework.security.web。

Web的依赖关系列表:

spring-security-core

描述:基础核心依赖

spring-web

描述:Spring web支持类被广泛使用。

spring-jdbc

描述:基于jdbc的持久性remember-me令牌存储库需要(可选)。

spring-tx

描述:remember-me持久性令牌存储库实现所需(可选)。

Config?—?spring-security-config.jar

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

Config的依赖关系列表:

spring-security-core

描述:基础核心依赖

spring-security-web

描述:如果您正在使用任何与web相关的命名空间配置(可选),则是必需的。

spring-security-ldap

描述:如果使用LDAP名称空间选项(可选),则是必需的。

spring-security-openid

描述:如果您正在使用OpenID身份验证(可选),则需要。

aspectjweaver

版本:1.6.10

描述:如果使用保护切入点命名空间语法则是必需的(可选)。

LDAP?—?spring-security-ldap.jar

该模块提供LDAP认证和配置代码。当您需要使用LDAP认证或管理LDAP用户条目时,则需要。顶级包是org.springframework.security.ldap。

LDAP的依赖关系列表:

spring-security-core

描述:基础核心依赖

spring-ldap-core

版本:1.3.0

描述:LDAP支持是基于Spring LDAP的。

spring-tx

描述:数据异常类是必需的。

apache-ds

版本:1.5.5

描述:如果您使用嵌入式LDAP服务器(可选),则需要。

shared-ldap

版本:0.9.15

描述:如果您使用嵌入式LDAP服务器(可选),则需要。

ldapsdk

版本:4.1

描述:Mozilla LdapSDK。例如,如果在OpenLDAP中使用密码策略功能,则可用于对LDAP密码策略控制进行解码。

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登录或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 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

这个模块包含一个专门化的域对象ACL实现。它用于将安全性应用于应用程序中的特定域对象实例。顶级包是org.springframework.security.acl。

ACL的依赖关系列表:

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。

CAS的依赖关系列表:

spring-security-core

描述:基础核心依赖

spring-security-web

描述:基础依赖

cas-client-core

版本:3.1.12

描述:JA-SIG CAS客户端。这是Spring安全集成的基础。

ehcache

版本:1.6.2

描述:如果您使用基于ehcache的票据缓存(可选),则需要。

OpenID?—?spring-security-openid.jar

OpenID 1.0和2.0协议已经弃用,并且鼓励用户迁移到OpenID Connect,它由spring-security-oauth2支持。

该模块包含OpenID web身份验证支持。它用于根据外部OpenID服务器对用户进行身份验证。顶级包是org.springframework.security.openid。它需要OpenID4Java。

OpenID的依赖关系列表:

spring-security-core

描述:基础核心依赖

spring-security-web

描述:基础依赖

openid4java-nodeps

版本:0.9.6

描述:Spring Security的OpenID集成使用了OpenID4Java。

httpclient

版本:4.1.1

描述:openid4java-nodeps依赖于HttpClient 4。

guice

版本:2.0

描述:openid4java-nodeps依赖于Guice 2。

Test?—?spring-security-test.jar

这个模块包含了对Spring安全性测试的支持。

Taglibs?—?spring-secuity-taglibs.jar

提供Spring Security的JSP标记实现。

Taglibs的依赖关系列表:

spring-security-core

描述:基础核心依赖

spring-security-web

描述:基础依赖

spring-security-acl

描述:如果你使用accesscontrollist标签或带有acl(可选)的hasPermission()表达式,这是必需的。

spring-expression

描述:如果在标签访问约束中使用SPEL表达式,则需要。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表