我的Tomcat服务器有一个服务,有三个连接器监听端口8080,8081和50000,我想只允许从端口50000访问一些servlet。
我尝试使用RemoteHostFilter
和RemoteIPFilter
按端口过滤客户端的访问权限,但我没有工作。
<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>
来实现这一目标,但它也不起作用。
你能告诉我我做错了什么吗?
答案 0 :(得分:2)
RemoteAddrFilter
的Javadoc:
RequestFilter
的具体实施,根据远程客户端的IP地址的字符串表示进行过滤。
不是服务器的IP地址,而是客户端的 IP地址。
要在服务器端口上进行过滤,请编写自己的过滤器实现。