Spring 部署为 WAR 文件的启动应用程序中未调用 Tomcats RemoteIPValve

Tomcats RemoteIPValve not invoked in Spring Boot Application deployed as a WAR file

我的 Spring Boot 1.3.2 应用程序作为 WAR 文件部署到独立的 tomcat7 中。我正在尝试使用 server.use-forward-headers=true 激活 RemoteIPValve,如 spring boot docs.

中所述

但是 RemoteIPValve 在处理请求时没有正确配置或调用。日志说:

NonEmbeddedServletContainerFactory detected.

当我使用 maven 插件启动应用程序时,我得到:

Initializing Spring embedded WebApplicationContext

... RemoteIPValve 正在按预期工作。如何使用 WAR 文件部署完成同样的任务?

当您将 Spring 启动应用程序部署到独立 Tomcat 时,嵌入式服务器配置的 none 会生效。相反,您需要更新 Tomcat 安装的配置以启用阀门。要在默认配置中使用阀门,请将以下内容添加到 server.xml:

<Valve className="org.apache.catalina.valves.RemoteIpValve"/>