[英]URL access controll by IP in Tomcat7
我需要根据tomcat 7.0.39上的客户端IP控制URL访问这是我发现的http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filter
但我无法理解所有这一切。 你有任何其他的例子,总统等。
我真正需要的是允许所有IP访问,例如。 "http://base_url/a/b/c"
并允许localhost / 127.0.0.1访问"http://base_url/a"
我无法理解如何匹配“任何”IP或如果我需要多个过滤器或过滤器内的多个条目。
谢谢。
实际上,您需要仅保护/base_url/a
,因为其他地址对所有IP都开放。 定义2个过滤器。 首先允许通过IP进行本地访问,其次是localhost:
<filter>
<filter-name>RemoteAddressFilter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>127.0.0.1|::1|0:0:0:0:0:0:0:1</param-value>
</init-param>
<init-param>
<param-name>deny</param-name>
<param-value>192\.\d+\.\d+\.\d+</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RemoteAddressFilter</filter-name>
<url-pattern>/a/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>RemoteHostFilter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteHostFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>localhost</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RemoteHostFilter</filter-name>
<url-pattern>/a/*</url-pattern>
</filter-mapping>
如果您编写的过滤器不能按照您期望的方式工作,您可以使用javax.servlet.Filter API( http://docs.oracle.com/javaee/6/api/javax/)来实现自己的过滤器。 servlet / Filter.html )。
这里有几个例子:
编写Servlet过滤器非常简单,您可以使其实现的不仅仅是IP过滤。
谢谢你们,
最终我创建了自己的过滤器,这是如何:
BR。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.