log4j-coreのnet.serverがなくなってる
log4j2の脆弱性で大変なことになっていますね。
そういっている私も対応しなくてはならず、バージョンを単純に上げようかと思ったのですが、 バージョンを上げるとコンパイルが通らなくなってしまいました。
log4j-coreにあったorg.apache.logging.log4j.core.net.server
が見当たらないようです。
原因は、バージョン2.9.0から、これらがなくなっているためのようです。
その経緯は以下のようです。
以下のコミットで同じリポジトリのlog4j-serverに移っています。
org.apache.logging.log4j.core.net.serverのlog4j-serverへの移動
そして、以下のコミットでlog4j-serverが削除されてます・・・
log4j-serverのリポジトリ移動
そして行先は、こちらのよう
logging-log4j-tools
なんと、mavenのリポジトリにもいないし、tagとかもない。
リリースのブランチがあるだけ。
仕方がないので、cloneしてjarを作ろうとしたけど、エラーになる・・・
どうも以下を編集しないといけないようです。
バージョン1.14.1のままにするなら、toolsを消してSNAPSHOTを消せば通りました。
<artifactId>log4j-tools</artifactId>
<version>2.14.1-SNAPSHOT</version>
↓
<artifactId>log4j</artifactId>
<version>2.14.1</version>
バージョン2.15.0にすると2か所修正 toolsを消してバージョンを修正
<artifactId>log4j-tools</artifactId>
<version>2.14.1-SNAPSHOT</version>
↓
<artifactId>log4j</artifactId>
<version>2.15.0</version>
hamcrest-allのバージョンを追加
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<scope>test</scope>
</dependency>
↓
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
これでpom.xmlでlog4j-serverのjarファイルを作成できます。
しかし、パッケージ名が変わっていてcore
がなくなっています。
org.apache.logging.log4j.core.net.server
↓
org.apache.logging.log4j.server
また、前までなかった投げてなかった検査例外も投げているようです。
forkして2.15.0の方で修正をアップしてみました。
まとめ
log4j-serverが2.9.0から別のリポジトリに移されています。
log4jのバージョンアップが必要とされていますが、利用しているバージョンやクラスによっては単純ではなさそうです。
バージョンアップできない場合に、設定変更やクラスを抜く方法が紹介されています。 そういったのも検討する必要がありそうです。
作成日:2021-12-15 更新日:2021-12-15