Comment puis-je restreindre l'accès à certaines URL par source IP dans Tomcat?
Je veux restreindre l'accès à certaines Url dans mon Tomcat webapp.
Seulement 3 adresses IP connues devraient être autorisés à avoir accès à des Url qui correspondent à un certain modèle.
par exemple http://example.com:1234/abc/personId
Comment puis-je y parvenir?
source d'informationauteur Randeep | 2012-05-08
Vous devez vous connecter pour publier un commentaire.
Utiliser org.apache.catalina.les filtres.RemoteAddrFilter et de l'associer à l'URL que vous souhaitez protéger. Voir http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filter pour les détails de configuration.
Vous pouvez le faire avec cette dans server.xml:
(ce sont de véritables adresses IP: les propriétaires, vous savez pourquoi :-|) mais comme vous pouvez le voir, il est vraiment un bloqueur pas d'un catalyseur. Une meilleure solution serait de mettre Apache HTTPD en face d'elle avec Deny All et Permettent De déclarations, ce qui vous permettra d'autoriser uniquement les 3 adresses IP que vous avez besoin pour accéder au service.
Vous pouvez utiliser quelque chose comme cela pour bloquer les ips et si vous êtes derrière le proxy:
Je ne limite pas l'accès par adresse IP, pour les raisons suivantes:
x-forwarded-for
en-têtes vont juste avoir l'adresse IP de la passerelle; la confiance que IP fiducies tout le monde derrière la passerelle, encore une fois en supposant que vous pourriez vouloir donner à certains clients d'accès.Au lieu de cela, si vous avez besoin de faire tourner un système où certains appels ne sont accessibles qu'à certains utilisateurs, j'aimerais utiliser l'authentification SSL certificats côté client fonctionne très bien pour cet usage. Sinon, vous pouvez utiliser quelque chose comme OAuth.