关于过滤基于IP地址访问网页的方法

时间:2014-09-03 06:13:31

标签: java jsp tomcat

我正在管理一个提供Web管理页面并与客户端应用程序通信的服务器。 我设计了Web部分,允许通过80端口进行公共访问。 但是,我的客户告诉我,他们希望服务器只允许从公司外部的网内访问。 如果Tomcat能够根据IP地址过滤对网页的访问,我认为可以做到这一点。 但是,我最终没有找到适当的解决方案。我知道Tomcat已经根据web项目提供了过滤功能。 我想出了解决这个问题的方法并使用如下: 我在server.xml中创建了两个服务标签,如

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

您还可以通过创建javax.servlet.Filter

在Servlet容器中实现简单的IP过滤

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

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

Apache Tomcat 8 Container Provided Filters

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