Кто-нибудь знает, может ли Tomcat ограничить доступ к определенному приложению по IP-адресу (например, Apache .htaccess
)?
Как ограничить доступ по IP-адресу с Tomcat?
Ответ 1
Вы добавляете Valve
в Context
в context.xml
(в частности, org.apache.catalina.valves.RemoteAddrValve
). См. Документы на Фильтры удаленных хостов.
Ответ 2
Это пример:
в\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>
Ответ 3
В Tomcat 7 вы можете настроить его в web.xml
.
Если это для всех веб-приложений, вы можете настроить его в tomcat7/conf/web.xml
, если это только для одного веб-приложения, вы можете настроить его в tomcat7/webapps/$(WEB_APP)/WEB-INF/web.xml
, это очень удобно.
В конфигурации используется фильтр RemoteAddrFilter
, например, в разделе "Фильтры, предоставляемые контейнером".
Ответ 4
Чтобы настроить ограничение доступа к вашему веб-приложению для определенных 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.
Ответ 5
в Tomcat 9 его можно настроить по пути: apache-tomcat-9.0.14\webapps\manager\META-INF\context.xml