7
votes

Réglages de la vanne Tomcat

Je suis coincé avec une sorte de problème de configuration que je pense. J'ai besoin de protéger un dossier qui se trouve dans ma demande de tomcate réelle de l'accès de Une certaine gamme IP.

Je pensais que c'était serverfault , donc j'ai posté la question Il . En ce moment je ne suis pas sûr de savoir si tel est le cas ou si SF de toute façon ...

Néanmoins, j'ai continué à essayer de le faire passer moi-même et j'ai compris que J'ai besoin de définir le xxx

pour ce dossier de la mine. Malheureusement, je ne peux tout simplement pas arriver où j'ai besoin de faire ça réglage. web.xml, server.xml? Essayé à la fois, null succès. Quelqu'un pourrait-il pls aidez-moi à ce sujet.

tia

k


1 commentaires

J'ai ajouté une section sur les filtres à ma réponse. Je pense que c'est ce dont vous avez besoin.


4 Réponses :


7
votes

Il devrait aller à l'intérieur de votre élément in server.xml: xxx

rappelez-vous que les valeurs de chaîne sont des motifs de regex, donc des caractères de regex spéciaux (par exemple, le point (.)) doit être échappé avec des backslashes.

EDIT : En réponse au commentaire de l'OP. Je pense que vous devez implémenter un filtre dans votre application Web et configurez-le pour accepter ou rejeter les demandes basées sur leur adresse IP à distance. L'adresse distante peut être récupérée à partir de de servleRequest passé dans DOFILTER méthode.

Vous déclarez un filtre dans votre fichier web.xml: < PRE> XXX

Lire l'article lié à propos de ce qui doit être fait pour accepter les paramètres initiaux. Je pense que pour votre prise de décision, vous pouvez copier sans vergogne le code de la requêteDumpervalve.


1 commentaires

Première ThX pour la réponse rapide, (+1). Malheureusement, cela semble ne pas travailler encore. Jusqu'à présent, il n'y a eu aucune section de contexte dans mon serveur.xml. En fait, l'application elle-même devrait être accessible au monde. Un seul dossier de là, fondamentalement, un dossier contenant des PDF ne devrait être accessible que par certains IP. Dans l'application, il y a un simple lien href dans ce dossier. Si le client vient de mon net interne, tout va bien. Si le client est externe, le dossier ne doit pas être ouvert pour lui. Est-ce que mon approche est toujours correcte?



4
votes

Vous devez le mettre dans l'élément qui définit le webapplication en question.

Pour Tomcat, il peut s'agir de plusieurs endroits, sous chacun, le code> code> /meta-inf/context.xml ou le serveur (et contrôlé par le serveur) < CODE> / CONF / [ENGINENAME] / [Nom d'hôte] /Context.xml ou le global global /conf/context.xml spécifique au serveur ou le / conf / conf / server.xml . Voir aussi le Documentation de contexte Tomcat .


0 commentaires

4
votes

La vanne Tomcat peut être appliquée sur tout le moteur, l'hôte ou un contexte spécifique (WebApp). Vous devez l'utiliser pour votre application entière, pas un chemin ou des annuaires spécifiques.

Vous devez la définir dans votre méta-INF / Context.xml ou votre fragment de contexte dans le répertoire Conf / Catalina / [Hôte]. Par exemple, P>

<Context path="/myapp" ...>
  ...
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="10.1.2.*"/>
</Context>


3 commentaires

Utile. Je suis capable de limiter mon site au bloc IPv4 approprié en faisant cela. Cependant, il ne semble pas fonctionner pour IPv6. Existe-t-il une façon différente de le faire, ou Tomcat n'a-t-il toujours pas de soutien IPv6 complet?


@Brianknoblauch, tomcat fait support IPv6, voir Accès à certains-webapps-in-tomcat6


On dirait qu'il a besoin d'une construction personnalisée de Tomcat pour prendre en charge IPv6 (les fichiers binaires pré-construits ne semblent pas l'appuyer). Jusqu'à présent, incapable de trouver la bonne combinaison de dépendances / options pour faire une construction complète de Tomcat avec le fonctionnement IPv6. Donc, oui, il le soutient, mais bonne chance en train de le faire. ;-)



3
votes

avait le même besoin que vous (mais pour d'autres raisons) la semaine dernière et créé une vanne pour bloquer les demandes par chemin. Il est basé sur org.apache.catalina.valves.requestfiltervalve .

Utilisation:

La vanne peut être utilisée dans le moteur, l'hôte ou le contexte, comme n'importe quelle vanne et est disponible sur GitHub. http://github.com/xlson/tomcat-valves

Je suggérerais d'utiliser les vannes Tomcat ou les filtres de servlet par défaut de votre application si cela résout votre problème. La raison pour laquelle nous avions besoin d'une vanne personnalisée était que certaines parties de l'application de gestion Tomcat PSI-Sonde serait "fuir" même si nous utilisions le RemoteaddrValve dans le élément de l'application.


0 commentaires