1

我试图阻止Tomcat中的所有流量,除了两个ip。我发现我可以在 server.xml 文件中做到这一点,所以我有这个:

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.2" />
  </Host>

这是可行的,但现在我希望允许两个 ip,所以我尝试了在互联网上找到的以下两个选项:

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.2,192.168.1.22" />

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\2|192\.168\.1\.22" />

但是两者都不起作用,我在这里做错了什么?

我在 Red Hat 上使用 Tomcat 版本 8.5.46.0。

4

1 回答 1

1

尝试以下,它应该工作

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.2|192.168.1.22" deny=""/>

由于 Tomcat 7,IP 不应该用逗号分隔,而是应该使用管道 | 并且没有反斜杠。

于 2019-11-20T13:18:26.400 回答