【问题标题】:Restrict Access to a Servlet by Port通过端口限制对 Servlet 的访问
【发布时间】:2016-10-20 22:17:38
【问题描述】:

我的 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>

我也尝试使用 &lt;Context&gt;&lt;Valve&gt; 来实现这一点,但也没有用。

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

【问题讨论】:

    标签: java tomcat servlets servlet-filters


    【解决方案1】:

    RemoteAddrFilter的Javadoc:

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

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

    要过滤服务器端口,请编写您自己的过滤器实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-30
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多