Как ограничить доступ по IP-адресу с Tomcat?
Кто-нибудь знает, может ли Tomcat ограничить доступ к определенному приложению по IP-адресу (например, Apache? .htaccess
)?
5 ответов
Вы добавляете Valve
к Context
в context.xml
(В частности, org.apache.catalina.valves.RemoteAddrValve
). См. Документы по фильтрам удаленных хостов.
Это пример:
в \apache-tomcat-7.0.33\conf\server.xml:
<Engine name="Catalina" defaultHost="localhost">
...
...
...
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="10\.132\.77\.55|10\.132\.76\.120|10\.132\.77\.47"/>
...
</Engine>
В Tomcat 7 вы можете настроить его в web.xml
,
Если это для всех веб-приложений, вы можете настроить его в tomcat7/conf/web.xml
Если это только для одного веб-приложения, вы можете настроить его в tomcat7/webapps/$(WEB_APP)/WEB-INF/web.xml
это очень удобно.
Конфигурация использует RemoteAddrFilter
фильтр, есть пример в разделе "Фильтры, предоставляемые контейнером".
Чтобы настроить ограничение доступа к вашему веб-приложению для определенных IP-адресов, добавьте следующие строки в файл /opt/tomcat/webapps/ROOT/META-INF/context.xml:
<Context antiJARLocking="true" path="/">
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="{IP_address}" />
</Context>
Вот инструкция, как это сделать с помощью панели Jelastic.
В Tomcat 9 вы можете настроить его по пути:apache-tomcat-9.0.14\webapps\manager\META-INF\context.xml