Est-ce que quelqu'un sait si Tomcat peut restreindre l'accès à certaines applications par adresse IP (comme le .htaccess
d'Apache)?
Vous ajoutez une Valve
à la Context
dans context.xml
(plus précisément, org.Apache.catalina.valves.RemoteAddrValve
). Voir la documentation sur Filtres de l'hôte distant .
Ceci est un exemple:
dans\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>
Dans Tomcat 7, vous pouvez le configurer dans le web.xml
.
Si c'est pour toutes les applications Web, vous pouvez le configurer dans Tomcat7/conf/web.xml
; s'il ne s'agit que d'une application Web, vous pouvez le configurer dans Tomcat7/webapps/$(WEB_APP)/WEB-INF/web.xml
, c'est très pratique.
La configuration utilise un filtre RemoteAddrFilter
; il existe un exemple dans Filtres fournis par le conteneur .
dans Tomcat 9, vous pouvez le configurer dans le chemin: Apache-Tomcat-9.0.14\webapps\manager\META-INF\context.xml
Pour configurer la restriction d'accès à votre application Web pour certaines adresses IP, ajoutez les chaînes suivantes au fichier /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>
Voici l’instruction comment faire cela via le panneau Jelastic.