2013-05-27 8 views
5

Tomcatサーバー上でアクセスできるURLをIPアドレスに基づいて制限しようとしています。私がしようとしているのは、Tomcatがループバックアドレス(つまりlocalhost)を介してアクセスされ、他のすべてのリモートIPの特定の領域にのみアクセスできるようにすることです。 conf/web.xmlに次の2つのフィルタがありますが、私が望むように動作していません。今すぐすべてリモートアクセスが拒否されています(私が欲しいものではない)とすべてローカルアクセスが許可されています(私が欲しい)。すべてのIPアドレスが/ terms/、/ help/などにアクセスできるようにするためにTomcatを取得することはできません。複数の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> 

答えて

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

(カンマ)「」文字、私の知る限りでは、各パターンに別々のURLパターンを試すには特殊文字が、あなたのURLの一部として認識されません。試してみてください:

<url-pattern>/terms/*</url-pattern> 
<url-pattern>/help/*</url-pattern> 
<url-pattern>/messagebroker/*</url-pattern> 
関連する問題