2021年12月10日,产品经理找到我说,log4j 有重大安全隐患,云云:
慌得一批。还好,有临时应对手法,于是依样画葫芦,先改配置,重启系统,对付过去了。
到了昨天(12月14日)上午,准备彻底解决这个事项。于是上官网,下载当时最新的版本 2.15.0 的版本,更新到项目中。测试OK。于是正式发版。结果到了今天,测试反馈说,不行。使用新版本的jar 包,业务根本起不来,报错:
十二月 15, 2021 4:16:33 下午 org.apache.catalina.core.StandardContext start 严重: Error listenerStart
一脸懵。自己开发环境测试,没重现。捣鼓到天黑,才发现,原来我开发环境用的是jdk 1.8,而项目上用的是 jdk 1.7。
整了半天,最后到官网上一看,才明白,原来 log4j 的 2.12.X 系列是支持 jdk 1.7的最后版本,而2.15.X 系列是要求 jdk 1.8,因此 在 jdk 1.7的运行环境加载 jdk 1.8下编译的jar 包,会跳出以下错误:
Unsupported major.minor version 52.0
这个错误导致 log4j 本身没有加载成功,继而引发了 前面 Error listenerStart 的错误。
幸运的是,原本log4 开发团队已经停止对 jdk 7的支持了,但是由于这个最新漏洞实在是影响太大,所以昨天晚上,开发团队还是推出了 基于jdk 7的升级补丁。
以下是目前(北京时间 2021.12.15 20:50)官网首页的内容:
其中不仅提到关于jdk 7的版本支持,也提到了针对jdk 8的早前的 2.15.0版本并未彻底解决该漏洞,需要代之以2.16.0 版本。
官网上,对于 jdk 6, jdk 7,还提供了相关的入口:
其中针对 jdk 7的相关更新页面如下:
可算找到组织了。下载链接如下:
Index of /dist/logging/log4j/2.12.2https://archive.apache.org/dist/logging/log4j/2.12.2/
真是火热出炉的代码,瞅瞅这个更新时间:
好了,继续战战兢兢地使用 jdk 7下的 log4j 吧。
希望下回有重大安全问题的时候,开发团队仍能够大发慈悲,给与这个jdk 7的分支一点支持。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)