Question

Avec votre aide, j'ai réussi à résoudre une question que j'ai demandé ici . J'ai développé un authentificateur Tomcat personnalisé pour l'application Web, et actuellement le authentificateur et son fichier de configuration sont situés dans le répertoire %CATALINA_HOME%\lib\. Malheureusement, le fichier de configuration de l'authentificateur est presque une copie du fichier de configuration de l'application Web (situé dans %CATALINA_HOME%\webapps\myapp) l'authentificateur a été développé pour et les fichiers de configuration à la fois, de toute évidence, les mêmes paramètres DB-connexion. Ceci est pratique parce que le partage le seul fichier de configuration serait le meilleur.

Je pense qu'il pourrait y avoir deux façons de résoudre le problème:

  1. Trouvez le répertoire webapps pour la présence de myapp en quelque sorte au démarrage Tomcat, puis lire le fichier de configuration de l'application (passez de la situation actuelle et le myapp\WEB-INF\web.xml est correctement configuré). Bien sûr, malheureusement, cela nécessite un redémarrage de Tomcat.
  2. Il est peut-être un moyen de mettre l'authentificateur forme dans le répertoire d'applications Web correspondant à pouvoir lire directement le fichier de configuration partagée. Peut-être que cela pourrait éliminer le redémarrage de Tomcat et permettre le redéploiement simple.

Je voudrais préférer la seconde solution si elle est possible, mais je ne suis pas sûr. Quelle manière est meilleure, si les deux existent-ils? Ou est-il une autre solution et même mieux ne pas mettre la application Web spécifique authentificateur dans %CATALINA_HOME\lib%?

Merci à l'avance et désolé pour mon anglais.

Était-ce utile?

La solution 2

Ah, il est tout beaucoup plus facile! L'idée principale est juste pour obtenir la chaîne de connexion à travers l'objet (JDBCRealm) context.getRealm() dans le authenticate(...). Cela suffit pour résoudre mon problème.

Autres conseils

Vous avez un cas de duplication de code.

Je suggère refactorisation le code, de sorte que Tomcat a tout le code nécessaire pour son identification, puis factoriser votre application à utiliser uniquement le code d'authentification Tomcat.

Si votre application ne peut pas utiliser l'authentification Tomcat, vous pouvez au moins déplacer le code commun, y compris les fichiers de configuration, dans Tomcat, puis utilisez le code commun.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top