gpt4 book ai didi

tomcat - 使用多个 Tomcat 容器提供的过滤器(远程地址过滤器)

转载 作者:行者123 更新时间:2023-11-28 21:48:11 25 4
gpt4 key购买 nike

我试图根据 IP 地址限制在我的 tomcat 服务器上可以访问哪些 URL。我想做的是在通过环回地址(即本地主机)访问 tomcat 时允许访问任何地方,并且只允许所有其他远程 IP 访问某些区域。我在 conf/web.xml 中有以下两个过滤器,但它们的行为并不如我所愿。现在所有 远程访问都被拒绝(这不是我想要的)并且允许所有 本地访问(我想要的)。我无法让 tomcat 允许所有 IP 地址访问/terms/、/help/ 等。

非常感谢任何指点。

<!-- ================== Built In Filter Definitions ===================== -->

<filter>
<filter-name>Restrict Remote Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>\d+\.\d+\.\d+\.\d+</param-value> <!-- for any IP address, * not allowed here -->
</init-param>
</filter>
<filter-mapping>
<filter-name>Restrict Remote Filter</filter-name>
<url-pattern>/terms/*, /help/*, /messagebroker/*</url-pattern> <!-- allow access to these areas only -->
</filter-mapping>

<filter>
<filter-name>Allow Localhost Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1</param-value> <!-- for localhost access… -->
</init-param>
</filter>
<filter-mapping>
<filter-name>Allow Localhost Filter</filter-name>
<url-pattern>/*</url-pattern> <!-- access all areas -->
</filter-mapping>

最佳答案

<url-pattern>/terms/*, /help/*, /messagebroker/*</url-pattern>

尝试为每个模式单独的 url-pattern,据我所知,字符“,”(逗号)不被识别为特殊字符,而是您的 url 的一部分。试试这个:

<url-pattern>/terms/*</url-pattern>
<url-pattern>/help/*</url-pattern>
<url-pattern>/messagebroker/*</url-pattern>

关于tomcat - 使用多个 Tomcat 容器提供的过滤器(远程地址过滤器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16775127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com