【问题标题】:Is it safe to upgrade Spring to latest patch version?将 Spring 升级到最新补丁版本是否安全?
【发布时间】:2020-02-02 15:09:21
【问题描述】:

我正在使用 Spring Framework v4.3.12Spring Security v4.2.3 的项目中工作。

升级到最新补丁版本安全吗?

Spring Framework 4.3.25

Spring Security 4.2.13

如果我不知道的话,我会说从语义版本控制的角度来看这应该不是问题。理论上。 但是,我正准备将门户解决方案升级到下一个补丁版本,但整个应用程序崩溃了。

【问题讨论】:

  • 您是否阅读过每个补丁的发行说明?
  • 是的其中一些。例如,Spring Security 4.2.4 没有发行说明,只有git tag 4.2.4。对于版本4.2.5,有一个正式版本,作为发行说明,github link
  • 谢谢@dur。而已。我还没有阅读 Spring Framework BOM 并且知道发布编号。所以在我的例子中,Spring Security 4.2.13 是针对 4.3.23.RELEASE 构建的。欢迎回答我的问题。

标签: java spring spring-security


【解决方案1】:

补丁版本兼容,见Spring Security Reference:

2.3 版本编号

了解 Spring Security 版本号的工作原理很有用,因为它将帮助您确定迁移到项目未来版本所涉及的工作量(或缺乏工作量)。每个版本都使用标准的整数三元组:MAJOR.MINOR.PATCH。其目的是 MAJOR 版本是不兼容的 API 的大规模升级。 MINOR 版本应该在很大程度上保留与旧次要版本的源代码和二进制兼容性,因为可能存在一些设计更改和不兼容的更新。 PATCH 级别应该完全兼容,向前和向后兼容,可能的例外是为了修复错误和缺陷而进行的更改。

您受更改影响的程度将取决于您的代码的集成程度。与使用简单的命名空间配置相比,如果您进行大量自定义,则更有可能受到影响。

在推出新版本之前,您应该始终彻底测试您的应用程序。

要处理您的 Spring Framework 依赖项,您可以使用 Spring Framework BOM,请参阅Spring Security Reference

Spring 框架组件

Spring Security 针对 Spring Framework 4.3.9.RELEASE 构建,但应该适用于 4.0.x。许多用户会遇到的问题是 Spring Security 的传递依赖解决了 Spring Framework 4.3.9.RELEASE 这可能会导致奇怪的类路径问题。

规避此问题的一种(乏味)方法是将所有 Spring Framework 模块包含在 pom.xml 的一部分中。另一种方法是将spring-framework-bom 包含在pom.xml<dependencyManagement> 部分中,如下所示:

pom.xml.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-framework-bom</artifactId>
      <version>4.3.9.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

这将确保 Spring Security 的所有传递依赖项都使用 Spring 4.3.9.RELEASE 模块。

【讨论】:

    猜你喜欢
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多