如何在Spring Boot应用的错误页面隐藏Apache Tomcat版本信息
Spring Boot 2.5.4嵌入式Tomcat隐藏错误页版本号解决方案
你之前修改的配置仅控制Spring Boot自身的错误页逻辑,不涉及Tomcat内核的版本输出规则,因此不会生效。可通过以下两种方案实现需求,无需修改web.xml或catalina Jar包:
方案1:配置文件修改(最简单)
直接在application.properties中添加如下配置即可:
# 清空服务器响应头,禁止返回Tomcat版本信息 server.server-header= # 关闭X-Powered-By响应头输出 server.tomcat.xpowered-by=false
如果使用application.yml,配置格式如下:
server: server-header: '' tomcat: xpowered-by: false
方案2:自定义Tomcat配置类(兼容性更强)
如果配置文件修改不生效(部分特殊定制场景会出现),可新增Tomcat定制化配置类,直接修改嵌入式Tomcat的上下文参数:
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class TomcatVersionHideConfig { @Bean public WebServerFactoryCustomizer<TomcatServletWebServerFactory> hideTomcatVersionCustomizer() { return factory -> factory.addContextCustomizers(context -> { // 禁止错误页返回Tomcat版本 context.setSendServerVersion(false); // 禁止返回X-Powered-By头 context.setXpoweredBy(false); }); } }
验证效果
配置完成后重启应用,触发404/500错误,错误页底部将不再显示Apache Tomcat版本相关信息,响应头中也不会携带Tomcat版本标识。
内容的提问来源于stack exchange,提问作者Berkay Bingol
相关产品推荐
相关产品推荐

