如何替换spring boot中spring框架的版本

背景

我开源的一个项目中,有朋友提到存在Spring Framework 身份认证绕过漏洞(CVE-2023-20860)。
解决方案是升级spring 框架版本:

  • Spring Framework 5.3.X 系列用户建议升级Spring Framework到5.3.26及以上安全版本修复该漏洞
  • Spring Framework 6.0.X 系列用户建议升级Spring Framework到6.0.7及以上安全版本修复该漏洞

主要受影响的版本如下:

  • 6.0.0 to 6.0.6
  • 5.3.0 to 5.3.25
    我看了下,项目中依赖的spring boot版本如下:
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.4.10version>

尝试2.4.x的其它几个版本,发现其依赖的spring框架都是5.3.x,也不敢冒然升级spring boot大版本,所以考虑只升级依赖的spring 框架.

解决方案

在网上搜了下,没找到想要的解决方案,最后只能自己想办法。
我认为spring boot依赖肯定定义了sping 的版本属性,遵循maven就近原则,我只要在项目中覆盖这个变量就可以达到预期。
然后一级一级往上找,最后在spring-boot-dependencies的定义里找到了:
如何替换spring boot中spring框架的版本_第1张图片
然后直接在我自己的项目的pom.xml里重新定义这个属性,问题解决:
如何替换spring boot中spring框架的版本_第2张图片
项目的实际依赖的jar包版本已经是5.3.26:
如何替换spring boot中spring框架的版本_第3张图片

你可能感兴趣的:(spring全家桶,maven,spring,spring,boot,CVE-2023-20860,spring,版本替换)