Tomcat 过滤器映射无法通过 ProxyPass 工作
Tomcat Filter-Mapping not working through ProxyPass
我试图通过在 web.xml 文件中使用过滤器来锁定对我的 Tomcat WebApp 的管理部分的访问。
<filter>
<filter-name>Remote Address Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>**my ip address**</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Remote Address Filter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
当我通过端口(即 address.com:8081/webapp/admin)时它工作正常,但是我设置了一个 ProxyPass 以通过 address.com/ 访问 webapp webapp/admin。在使用 ProxyPass 时,我不知道如何 运行 过滤器。
我这样做是为了获得一个没有端口号的干净 URL,然后出于安全原因将对 admin url 结构的访问列入白名单。我也不需要担心通过端口访问,因为端口将通过防火墙关闭。所以我真的只需要通过 ProxyPass 过滤访问一个非常具体的 url 结构(即 /webapp/admin/*)。
所以问题出在 ProxyPass 将 IP 地址切换到本地主机。因此,您必须向 web.xml 文件添加额外的代码以授予对原始 IP 的访问权限。
<filter>
<filter-name>RemoteIpFilter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RemoteIpFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
我试图通过在 web.xml 文件中使用过滤器来锁定对我的 Tomcat WebApp 的管理部分的访问。
<filter>
<filter-name>Remote Address Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>**my ip address**</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Remote Address Filter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
当我通过端口(即 address.com:8081/webapp/admin)时它工作正常,但是我设置了一个 ProxyPass 以通过 address.com/ 访问 webapp webapp/admin。在使用 ProxyPass 时,我不知道如何 运行 过滤器。
我这样做是为了获得一个没有端口号的干净 URL,然后出于安全原因将对 admin url 结构的访问列入白名单。我也不需要担心通过端口访问,因为端口将通过防火墙关闭。所以我真的只需要通过 ProxyPass 过滤访问一个非常具体的 url 结构(即 /webapp/admin/*)。
所以问题出在 ProxyPass 将 IP 地址切换到本地主机。因此,您必须向 web.xml 文件添加额外的代码以授予对原始 IP 的访问权限。
<filter>
<filter-name>RemoteIpFilter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RemoteIpFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>