2013-05-27 8 views
5

Ich versuche zu beschränken, welche URLs auf meinem Tomcat-Server basierend auf IP-Adresse zugegriffen werden können. Was ich versuche zu tun, ist Zugriff überall zu ermöglichen, wenn Tomcat über Loopback-Adressen (d. H. Localhost) zugegriffen wird und nur den Zugriff auf bestimmte Bereiche für alle anderen Remote-IPs erlauben. Ich habe die folgenden zwei Filter in conf/web.xml, aber sie verhalten sich nicht so, wie ich es möchte. Im Moment alle Remote-Zugriff wird verweigert (nicht, was ich will) und alle lokalen Zugriff wird erlaubt (was ich will). Ich kann Tomcat nicht bekommen, um allen IP-Adressen Zugang zu erlauben/Ausdrücke/,/help/, etc.Verwendung mehrerer Tomcat-Container-Filter (Remote Address Filter)

Alle Hinweise sehr geschätzt.

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

Antwort

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

versuchen, für jedes Muster separate URL-Muster, soweit ich weiß, Charakter „“ (Komma) nicht als Sonderzeichen erkannt, aber ein Teil Ihrer URL. Versuchen Sie Folgendes:

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