2013-05-27 26 views
5

Tôi đang cố gắng hạn chế những URL nào có thể được truy cập trên máy chủ tomcat của tôi dựa trên địa chỉ IP. Những gì tôi đang cố gắng làm là cho phép truy cập ở khắp mọi nơi khi tomcat được truy cập thông qua địa chỉ loopback (ví dụ: localhost) và chỉ cho phép truy cập vào các khu vực nhất định cho tất cả các IP từ xa khác. Tôi có hai bộ lọc sau trong conf/web.xml nhưng chúng không hoạt động như tôi muốn. Ngay bây giờ tất cả truy cập từ xa đang bị từ chối (không phải những gì tôi muốn) và tất cả quyền truy cập cục bộ đang được cho phép (những gì tôi muốn). Tôi không thể cho phép tomcat cho phép tất cả địa chỉ IP truy cập/điều khoản/,/help/, v.v.Sử dụng nhiều Bộ lọc do Tomcat cung cấp (Bộ lọc địa chỉ từ xa)

Mọi con trỏ được đánh giá cao.

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

Trả lời

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

thử riêng biệt url-pattern đối với từng mô hình, theo như tôi biết, nhân vật "" (dấu phẩy) không được công nhận là nhân vật đặc biệt, mà là một phần của url của bạn. Hãy thử điều này:

<url-pattern>/terms/*</url-pattern> 
<url-pattern>/help/*</url-pattern> 
<url-pattern>/messagebroker/*</url-pattern> 
Các vấn đề liên quan