Spring Boot父log4j2更新-漏洞修复

标签 spring spring-boot log4j log4j2 slf4j

尝试更新旧版 Spring Boot 应用程序的 log4j2(使用 Spring-boot-parent-1.5.6.RELEASE) - 使用多模块
尝试了 spring 在最近的文档中建议的所有方法,但没有一个起作用。
尝试过的选项:
选项1 - 添加到属性

 <properties>
    <log4j2.version>2.17.0</log4j2.version>
</properties>

选项 2 - 添加 starter-log4j2 并排除核心,稍后添加 log4j 核心(最新)

<dependency>
   <groupid>org.springframework.boot</groupid>
   <artifactid>spring-boot-starter-log4j2</artifactid>
   <version>2.6.1</version>
   <exclusions>
     <exclusion>
       <groupid>org.apache.logging.log4j</groupid>
       <artifactid>log4j-core</artifactid>
     </exclusion>
   </exclusions>
</dependency>
<dependency>
   <groupid>org.apache.logging.log4j</groupid>
   <artifactid>log4j-core</artifactid>
   <version>2.15.0</version>
</dependency>

选项 3 - 就是上面的选项以及 log4j2 api

<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-log4j2</artifactid>
 <exclusions>
 <exclusion>
 <groupid>org.apache.logging.log4j</groupid>
 <artifactid>log4j-core</artifactid>
 </exclusion>
 </exclusions>
</dependency>
<dependency>
 <groupid>org.apache.logging.log4j</groupid>
 <artifactid>log4j-api</artifactid>
 <version>2.16.0</version>
</dependency>
<dependency>
 <groupid>org.apache.logging.log4j</groupid>
 <artifactid>log4j-core</artifactid>
 <version>2.16.0</version>
</dependency>

但是导入的依赖项仍然是 slf4j-over-log4j(1.7.25)、log4j(2.7, 2.11.1)。我还能做些什么吗?

最佳答案

选项 1 应该有效。

  1. 使用 mvn clean install 构建您的项目
  2. 检查 jar 文件的内容:转到 your_project/target 目录并运行 jar tf your-project.jar 命令。应该只有 log4j-core-2.17.0.jar 并且没有其他版本的 log4j-core

编辑:同时更新子模块中的 log4j-core 版本

关于Spring Boot父log4j2更新-漏洞修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70497653/

相关文章:

java - Log4j 记录器的生命周期及其使用的资源

Java:编写一个抛出任何 RuntimeException 的通用方法

java - 将 slf4j 与 log4j2 一起使用是否值得

java - 同一接口(interface)的Spring多重实现

Spring Jsps 和跳转到 anchor

java - Spring Boot @DataJpaTest 不生成 ddl

java - Spring-返回对象列表的请求方法显示错误

java - 来自 tomcat 的 NoClassDefFoundError。我的 pom 有问题吗?

java - 使用 Spring Boot 运行测试

spring-boot - 多实例服务上的事件驱动架构