Spring Security和Spring Core 依赖冲突

image

#概述

本文,我们将介绍如何用Maven配置Spring Security,并介绍Spring Security依赖项的具体用例。大家可以在Maven Central上找到最新的Spring Security版本。

#spring-security-core

Spring Security的核心是——spring-security-core, 它包含认证和访问权限控制功能。此外,它还支持独立(非web)应用程序、方法级别注解等功能。

<properties>
    <spring-security.version>5.0.6.RELEASE</spring-security.version>
    <spring.version>5.0.6.RELEASE</spring.version>
</properties>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>${spring-security.version}</version>
</dependency>

注意,Spring和Spring Security的版本发布时间表不同,所以版本号之间并不总是有1:1(5.0.6.RELEASE)的匹配。

例如,现在spring-security-core最新版本是5.3.2.RELEASE。我们可以在maven仓库找到spring的依赖包。如图:

image

#spring-security-web

如果你的Web应用也使用到Spring Security功能,我们也需要spring-security-web依赖包。

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>${spring-security.version}</version>
</dependency>

它包含了过滤器和相关的Web安全基础设施,可以在Servlet环境中实现URL访问控制。

#Spring Security和较旧的Spring Core版本依赖问题

它们之间的关系可以在 Maven依赖关系图中看到。 Spring Security jars不依赖于最新的 Spring Core jars (而是依赖于早期的版本)。在发生版本冲突的情况下,可以通过修改 Spring Security或 Spring Core版本,让它们互相比配。Spring Core版本可以通过以下修改:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${spring-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${spring-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${spring-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>${spring-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring-version}</version>
</dependency>

#spring-security-config 和其他依赖包

要使用Spring Security XML命名空间和Java代码注释,我们还需要spring-security-config依赖关系包。

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>${spring-security.version}</version>
</dependency>

最后,LDAP、ACL、CAS和OpenID的支持在Spring Security中都有自己的依赖关系:spring-security-ldap、spring-security-acl、spring-security-cas和spring-security-openid。

好,不难吧~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容