1. 版本发布说明
Spring Security版本的格式为MAJOR.MINOR.PATCH
- MAJOR versions:可能包含重大更改。 通常这些是为了提供改进的安全性以匹配现代安全实践。
- MINOR versions:包含增强功能,但被视为被动更新
- PATCH 级别应该完全兼容,前向和后向,可能的例外是修复错误
1.2 使用Maven
Spring Security 支持Maven依赖添加的方式
1.2.1 Spring Boot with Maven
如果项目框架是Spring Boot ,则可以使用starter 配置。
pom.xml 添加如下依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
一般不需要特别指定版本号,如果需要更改版本号在pom.xml 中该节点下配置如下即可:
<properties> <spring-security.version>5.1.5.RELEASE</spring-security.version </dependencies>
1.2.2 Maven 没有使用 Spring Boot
在没有Spring Boot的情况下使用Spring Security时,首选方法是利用Spring Security的BOM来确保在整个项目中使用一致的Spring Security版本。
pom.xml
<dependencyManagement>
<dependencies>
<!-- ... other dependency elements ... -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-bom</artifactId>
<version>5.1.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
最小的Spring Security Maven依赖项通常如下所示:
<dependencies>
<!-- ... other dependency elements ... -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
</dependencies>
Spring Security针对Spring Framework 5.1.6.RELEASE构建,但通常应该与任何较新版本的Spring Framework 5.x一起使用.
许多用户将遇到的问题是Spring Security的传递依赖性解决了Spring Framework 5.1.6.RELEASE,这可能导致 奇怪的类路径问题。
解决此问题的最简单方法是在pom.xml的部分中使用spring-framework-bom,如下所示:
<dependencyManagement>
<dependencies>
<!-- ... other dependency elements ... -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>5.1.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
这将确保Spring Security的所有传递依赖项都使用Spring 5.1.6.RELEASE模块
1.2.3 Maven Repositories
如果当前使用的是SNAPSHOT 版本,需要配置如下:
<repositories>
<!-- ... possibly other repository elements ... -->
<repository>
<id>spring-snapshot</id>
<name>Spring Snapshot Repository</name>
<url>https://repo.spring.io/snapshot</url>
</repository>
</repositories>
如果正在使用 milestone or release candidate 版本需要配置如下依赖
<repositories>
<!-- ... possibly other repository elements ... -->
<repository>
<id>spring-milestone</id>
<name>Spring Milestone Repository</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>