2013-05-27 5 views
5

Sto tentando di limitare gli URL a cui è possibile accedere sul mio server tomcat in base all'indirizzo IP. Quello che sto cercando di fare è consentire l'accesso ovunque quando si accede a tomcat tramite gli indirizzi di loopback (ad esempio localhost) e consentire solo l'accesso a determinate aree per tutti gli altri IP remoti. Ho i seguenti due filtri in conf/web.xml ma non si comportano come vorrei. Al momento all viene negato l'accesso remoto (non quello che voglio) e all l'accesso locale è consentito (cosa che voglio). Non riesco a Tomcat per consentire a tutti gli indirizzi IP per l'accesso/termini/,/help/, eccUtilizzo di più filtri forniti da Tomcat Container (filtro indirizzi remoti)

Tutti gli indicatori molto apprezzato.

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

risposta

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

provare url-pattern separato per ogni modello, per quanto ne so, il carattere "" (virgola) non è riconosciuto come carattere speciale, ma una parte del tuo URL. Prova questo:

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