
現在のクラスパス内のlog4jを特定するJavaヘルパー
現在実行中のJVM内でlog4jを探すためのユーティリティです (CVE-2021-44228 (Log4Shell))。
これは、プラグインが独自のJARを導入できるシステムで役立ちます。 そのため、誰かが危険なバージョンのlog4jを 持ち込んでいないかを確認できます。
必要なクラスローダーを指定してLog4jRecognizerをインスタンス化し、
そのメソッドを使用するだけです。例:
import com.github.scitotec.log4jrecognizer.Log4jRecognizer;
public class Main {
public static void main(String[] args) {
var rec = new Log4jRecognizer(Main.class.getClassLoader());
System.out.println(rec.hasVersion1());
System.out.println(rec.hasVersion2());
System.out.println(rec.version());
}
}
log4j-recognizerを依存関係として宣言します。これはお使いのビルドツールによって異なります。
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.scitotec</groupId>
<artifactId>log4j-recognizer</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.scitotec:log4j-recognizer:1.0.2'
}