Spring Security和Spring Core 依赖冲突

#概述

本文,我们将介绍如何用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的依赖包。如图:

#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。

好,不难吧~

 

原文地址:https://www.cnblogs.com/JavaWeiBianCheng/p/12985906.html