SpringBootで起動するtomcatのバージョンを変える
はじめに
- 超小ネタです。
- SpringBootで開発をしていて、リリース前に大きな脆弱性などが発見されたときはSpringBootのバージョンは変えたくないが、tomcatのマイナーバージョンは脆弱性に対応したものに上げておきたい。というのはわりと需要がある話なのかなと思っています。
- 先日、JVNVU#94679988 Apache Tomcat の複数の脆弱性に対するアップデートを読んでいて、あれ?そういえばSpringBootでTomcatのバージョンってどうやってあげるんだろうと思って調べたのでメモしておきます。
- これはなぜか公式サイトには載っていないようでした。Jettyに変更する。tomcat7に変更する。などは70. Embedded servlet containersに載っていますのでそちらを参考にしてください。
pomの変更だけでOK
- tomcatのバージョンを指定する
- making@githubさんに教えていただき以下を変えるだけで変更できました。
pom.xml
<properties>
<tomcat.version>8.0.32</tomcat.version>
</properties>
- うまくいかなかったら、pomにspring-boot-starter-parentが入っているかを確認してみてください。これが入っていないとプロパティが効きません。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
- 起動するとこんなログが残ります
2016-03-01 13:31:51.891 INFO 2349 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
2016-03-01 13:31:51.893 INFO 2349 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.0.32
2016-03-01 13:31:52.027 INFO 2349 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/app] : Initializing Spring embedded WebApplicationContext