限制端口对Servlet的访问

时间:2016-06-19 16:18:30

标签: java tomcat servlets servlet-filters

我的Tomcat服务器有一个服务,有三个连接器监听端口8080,8081和50000,我想只允许从端口50000访问一些servlet。

我尝试使用RemoteHostFilterRemoteIPFilter按端口过滤客户端的访问权限,但我没有工作。

<filter>
    <filter-name>RemoteFilter</filter-name>
    <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
    <init-param>
        <param-name>deny</param-name>
        <param-value>\d+\.\d+\.\d+.\d+:8080</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>RemoteFilter</filter-name>
    <url-pattern>/my-servlet-mapping</url-pattern>
</filter-mapping>

我还尝试使用<Context><Valve>来实现这一目标,但它也不起作用。

你能告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

RemoteAddrFilter的Javadoc:

  

RequestFilter的具体实施,根据远程客户端的IP地址的字符串表示进行过滤。

不是服务器的IP地址,而是客户端的 IP地址。

要在服务器端口上进行过滤,请编写自己的过滤器实现。