5

IP アドレスに基づいて、Tomcat サーバーでアクセスできる URL を制限しようとしています。私がやろうとしているのは、Tomcat がループバック アドレス (つまり、localhost) を介してアクセスされるときにどこへでもアクセスを許可し、他のすべてのリモート IP の特定の領域へのアクセスのみを許可することです。conf/web.xml に次の 2 つのフィルターがありますが、期待どおりに動作していません。現在、すべてのリモート アクセスが拒否されており (私が望んでいるものではありません)、すべてのローカル アクセスが許可されています (私が望んでいること)。すべての IP アドレスが /terms/ 、 /help/などにアクセスできるように tomcat を取得できません。

どんなポインタでも大歓迎です。

<!-- ================== 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> 
4

1 に答える 1

3
<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>
于 2013-05-27T16:02:12.133 に答える