java - 如何判断哪些第三方 Java 库正在使用 Log4j 1.x?
问题描述
为了解决客户端标记的CVE-2019-17571,我正在尝试将我们基于 jfreechart 的 Rails 应用程序中使用的 Log4j 1.2.x 升级到 Log4j 2(按照此处的说明进行操作)。但是,我不知道哪个 Java 库仍在使用旧的 Log4j 1.x 导入。这是我在 Rails 日志中看到的错误(Java 图表应用程序是通过RJB加载的):
$ tail -f production_log.2020-03-29
FATAL 2020-03-29 16:58:49 30512 NoClassDefFoundError (org/apache/log4j/Logger):
lib/chart_interface.rb:24:in 'method_missing'
lib/chart_interface.rb:24:in 'createChart'
app/controllers/dash_controller.rb:565:in 'resources_info'
这是找出哪些第三方 Java 库正在使用旧的 Log4j 1.x 导入的好方法吗?
$ ls -ltr
total 8756
-rw-r----- 1 root ainet 391430 Oct 5 02:16 log4j-1.2.15.jar.old
-rwxr-x--- 1 root ainet 1801249 Mar 26 03:15 wig.jar
-rwxr-x--- 1 root ainet 288911 Mar 26 03:15 tcommon-2.1.jar
-rwxr-x--- 1 root ainet 657841 Mar 26 03:15 postgresql-9.4-1202.jdbc42.jar
-rwxr-x--- 1 root ainet 1702810 Mar 26 03:15 log4j-core-2.13.1.jar
-rwxr-x--- 1 root ainet 292243 Mar 26 03:15 log4j-api-2.13.1.jar
-rwxr-x--- 1 root ainet 1425744 Mar 26 03:15 jfreechart-1.0.13.jar
-rwxr-x--- 1 root ainet 62103 Mar 26 03:15 commons-pool-1.3.jar
-rwxr-x--- 1 root ainet 121757 Mar 26 03:15 commons-dbcp-1.2.2.jar
-rw-r--r-- 1 ainet ainet 330507 Mar 26 03:50 jcommon-1.0.24.jar
$ grep -R apache\.log4j
Binary file log4j-1.2.15.jar.old matches
唯一的打击是在旧的 jar 文件中,但RJB正在抱怨NoClassDefFoundError
.
解决方案
推荐阅读
- xml - 如何将返回值添加到 cth_surefire XML 报告中?
- react-admin - Sorting a list by a referenced field react-admin
- java - 如何解决已经存在的程序类型:com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable
- css - 内联 div 与 flex
- ios - 使用 insets 向 UITableView 添加视图,有什么问题吗?
- json - 从 PERL 解析 JSON
- c# - 内存泄漏:幕后究竟发生了什么?
- python - 如何使用包含城市或地区名称的文本找出国家代码?我需要此信息将电话号码格式化为 E.164 格式
- python - 读取不正确的json,解析示例
- terraform - 如何在terraform的另一个文件中引用在一个文件中创建的资源