へっぽこITエンジニア@名古屋のブログ

Follow me on GitHub

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を作ろうとしたけど、エラーになる・・・

どうも以下を編集しないといけないようです。

log-serverのpom.xml

バージョン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