Log4j 2.15.0更新问题



我的应用程序现在正在使用Log4j 2.11.1。由于几天前报告的Log4j安全漏洞,我需要将Log4j更新到2.15.0。但当我在Linux服务器上部署应用程序时,它会失败。

这是错误消息:

[ERROR]无法执行项目***的目标:无法解决项目***的依赖项:1.0-SNAPSHOT:收集失败org.apache.logging.log4j:log4j-api:jar:2.15.0:失败读取的工件描述符org.apache.logging.log4j:log4j-api:jar:2.15.0:无法传输artifact org.apache.logging.log4j:log4j-api:pom:2.15.0从/到中心(https://repo1.maven.org/maven2):sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求的目标的有效证书路径->[帮助1]

我已经将Maven2的证书添加到我的Java密钥库中,但它不起作用。我的Java版本是1.8.181。

我有log4j-corelog4j-api,需要更新。这与您的情况类似,部署为Linux服务器。它对我有用。

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.15.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</dependency>

我添加了这些依赖项并更新了maven项目(在Eclipse IDE中,右键单击project转到Maven更新项目(。

更高版本的Log4j漏洞问题

Log4j 2.15.0版本是为修复此关键漏洞而发布的,但发现此版本仍然存在漏洞(Apache软件基金会(。

解决方案:Log4j 2.16.0通过删除对消息查找模式的支持并默认禁用JNDI功能来修复此问题。

您可以查看Maven、Ivy、Gradle和SBT工件

在我的情况下,我不得不从1.2.x版本切换到2.16.0版本。

您可以尝试使用此依赖项:

<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.16.0</version>
</dependency>
</dependencies>

由于Log4j核心中存在Log4j安全漏洞,请使用Maven依赖项尝试最新版本的Log4j核心:

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.16.0</version>
</dependency>

参考-Maven Repository:log4j

关于你所面临的例外情况,这可能会对你有所帮助-Java:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

特别针对"PKIX路径构建失败">Maven中的错误:

如果您在Windows上,并且您的IT人员添加了拦截SSL流量的透明代理,则您需要将MAVEN_OPTS设置为以下值:

-Djavax.net.ssl.keyStoreType=Windows-MY -Djavax.net.ssl.trustStoreType=Windows-ROOT

这将指导Maven在审查IT人员内部颁发的SSL证书时使用Windows信任存储。

如果它是一个窥探SSL的透明代理,但您不在Windows中,则可能需要将该证书添加到JVM信任的密钥库中,因为JVM选项仅适用于Windows。

我在以下依赖项上遇到了同样的问题:

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j</artifactId>
<version>2.15.0</version>
</dependency>

我将上述依赖项替换为:

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.15.0</version>
</dependency>

它工作正常。

最新更新