2016-06-19 5 views
1

Мой сервер 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>, но это не сработало.

Не могли бы вы рассказать мне, что я делаю неправильно?

ответ

2

Javadoc из RemoteAddrFilter:

Бетон Реализация RequestFilter, что фильтры на основе строкового представления IP-адреса удаленного клиента.

Не IP-адрес сервера, а адрес клиента IP-адрес.

Чтобы фильтровать порт сервера, напишите собственную реализацию фильтра.