2014-09-03 67 views
0

我正在管理提供Web管理页面并与客户端应用程序通信的服务器。 我设计了允许公众通过80端口访问的Web部分。 但是,我的客户告诉我他们希望服务器只允许从公司以外的网络访问。 如果Tomcat能够根据IP地址过滤对网页的访问权限,我认为可以这样做。 但是,我最终未能找到适当的解决方案。我知道Tomcat已经根据Web项目提供了过滤功能。 我想出了解决这个问题得到的一种方式,并用它如下: 让我在server.xml中两个服务标签,如关于过滤基于IP地址的网页访问方式

<Service name="Catalina"> 
<Connector port="80" ...> 

<Service name="Catalina2"> 
<Connector port="8080" ...> 

再拍克隆的附加服务。然后,我通过防火墙设置阻止所有通过8080端口的外部访问。这符合我客户的需求。 但是,我猜这不是一种常见的方式。即使有时,该设置也允许不应发生的外部访问。最重要的是,从维护的角度来看,这不是一种有效的方式。

无论如何,我不喜欢它。如果有人告诉我方式,将不胜感激。 感谢您阅读这个问题。

回答

1

IP过滤的第一步是配置您的防火墙/路由器。

通过创建javax.servlet.Filter,您还可以在Servlet容器中实现简单的IP过滤。

您可以使用通配符(*)映射过滤器以使所有请求都通过它并在过滤器中您可以根据自己的规则检查客户端的IP并阻止/拒绝服务请求。

Tomcat还附带了一些内置的过滤器。你可能会想看看他们:

Apache Tomcat 8 Container Provided Filters

内置的过滤器包括Remote Address FilterRemote Host FilterRemote IP Filter(对于代理)。这些大多数都可以通过正则表达式进行配置,可能足以满足您的需求。