2011-07-08 4 views
1

Après ma tentative infructueuse avec: Tomcat secure accessTomcat: port correspondant - application/servlet

Est-ce que quelqu'un sait comment je peux exécuter une seule instance Tomcat au service d'une guerre (ou servlet) sur un port et une autre guerre (ou servlet spécifique) sous un autre?

(Mon objectif est d'avoir une servlet/application avec authentification du client et une autre sans authentification du tout.Il me semble plutôt étrange que Tomcat soit blanc ou noir: ou tout est sécurisé ou rien n'est).

Merci.

Répondre

1

Vous pouvez configurer autant de connecteurs que vous le souhaitez dans le server.xml:

<Connector port="80" redirectPort="8443"/>  
<Connector port="8080" redirectPort="8443"/>  
<Connector port="999" redirectPort="8443"/> 
<Connector port="8443" maxHttpHeaderSize="8192" 
       enableLookups="false" disableUploadTimeout="true" 
       acceptCount="100" scheme="https" secure="true" 
       clientAuth="false" sslProtocol="TLS" /> 

Vous pouvez également configurer les ports sécurisés/HTTPS. Ensuite, vous pouvez demander à l'application d'autoriser uniquement les connexions sécurisées (d'où le but du port de redirection) ou d'ajouter du code pour savoir quel port est utilisé par la connexion (un peu hacky). Toutefois, une approche plus simple consisterait simplement à installer plusieurs installations Tomcat, l'une configurant et exécutant votre application sécurisée, l'autre faisant appel aux applications non sécurisées, chacune fonctionnant sur ses propres ports.

+0

Merci pour la réponse. Je pense que votre première suggestion n'est pas vraiment valide, parce que je n'avais aucun moyen de dire "cette servlet a clientAuth = true, et cet autre = false" .Si je spécifie "false" pour tous, je n'ai aucun moyen sur le web .xml pour dire "clientAuth = true". Installer et exécuter deux Tomcats est une solution facile comme vous l'avez indiqué, mais pas vraiment abordable sur mon système. Je voudrais utiliser même le même WAR et je ne veux pas gaspiller de ressources avec 2 instances d'application. Je n'arrive pas à croire que Tomcat n'ait pas pensé à cette configuration! –

+0

C'est valide. Il suffit d'avoir une application utilisant HTTPS, en plaçant ' CONFIDENTIEL' et l'autre sur le port standard (les deux pourraient pointer sur le port 80 - l'application d'authentification client sera forcée sur le port sécurisé). – Mikaveli

+0

mais comment activer l'authentification du client? Je pourrais utiliser un seul port et configurer web.xml pour avoir un accès différent pour les deux servlets, je suis d'accord. Mais avec "confidentiel", vous assurez simplement que l'une des servlets utilisera HTTPS, pas clientAuth ... J'ai essayé de configurer le client Auth dans le web.xml mais cela n'a pas fonctionné :( –

Questions connexes