対象読者
SpringBootを使ったWebサービスを開発しており、内蔵Tomcatを利用している。
また、SSI (Server Side Include) を利用しているため、SSIServletを使用している。
TL;DR
Tomcat 9.0.30ではSSI関連のモジュールが外部ライブラリ化していますので、
以下のTomcat SSIライブラリも依存関係に追加しなければならなくなりました。
経緯
JVNVU#98104709 Apache Tomcat の複数の脆弱性に対するアップデート
http://jvn.jp/vu/JVNVU98104709/index.html
により、SpringBootの内蔵Tomcatをバージョンアップする必要が出てきました。
そこで、SpringBootのバージョンを最新のリリースバージョン2.2.4.RELEASEへと更新することにしました。
SpringBoot 2.2.4RELEASEの内蔵Tomcatのバージョン
公式ドキュメントによると、内蔵されたTomcatのバージョンは9.0.30です。
Tomcat 9.0.30では、SSI関連モジュールが外部ライブラリ化されている!
ここで、Tomcat 9.0.30のChangeLogを参照すると、
Moved server-side include (SSI) module into a separate JAR library. (schultz)
と記載されています。
実際にbuild.gradleファイルにてSpringBootのバージョンを2.2.4.RELEASEへと変更すると、
SSIServletが見つからなくなり、ビルドできなくなります。
どこに移動したかが書いていないので、MVN Repositoryを探索しました。
Tomcat SSIライブラリに分割されていた
MVN Repository内にて、Tomcat SSIライブラリを発見しました。
Spring Bootの内蔵Tomcatにバージョンをあわせて9.0.30を選択して、build.gradleのdependenciesに追加したところ、問題なくSSIServletを見つけられるようになり、ビルドが通りました。
まとめ
本記事では、Spring Boot 2.2.4.RELEASE内蔵のTomcat 9.0.30にて、SSIを使用するための依存ライブラリを紹介しました。
お役に立てれば幸いです。