2010-02-07 9 views
2

J'ai un pool de connexion défini dans le serveur tomcat context.xml (la connexion utilisée par plusieurs webapps semble donc être le meilleur endroit pour cela).Puis-je définir le mot de passe d'une connexion JDBC à partir du pool de connexions? (Tomcat 5.5.17)

Cependant, je n'aime pas avoir des mots de passe codés en dur dans le fichier. Est-il possible pour moi de récupérer le mot de passe d'ailleurs (banque de mots de passe sécurisé) et le définir de manière pragmatique au moment où les connexions groupées sont établies?

Merci

Ryan

+1

Jetez un oeil à la dernière section de http://www.owasp.org/index.php/Securing_tomcat –

Répondre

3

Je crois que vous cherchez Custom Resource Factory, vous pouvez coder votre usine pour créer un objet ou d'un javax.sql.DataSource DBCP (ou tel) à base d'objets de façade mise en commun de connexion, et avoir votre code personnalisé pour obtenir et définir le nom d'utilisateur/mot de passe pour la connexion. Notez que si vous recherchez une sécurité supplémentaire, la méthode pragmatique serait d'utiliser la sécurité du système de fichiers pour sécuriser votre fichier context.xml, en ajoutant des couches supplémentaires (comme votre implémentation personnalisée pour la fabrique de ressources), ne rendra pas le système plus sûr, car vous avez toujours besoin du mot de passe pour le magasin de mots de passe sécurisé configuré quelque part - vous finirez par avoir le problème de la poule ou de l'œuf.

0

Vous voudrez peut-être mettre en œuvre une authentification unique pour votre application Web (par exemple en utilisant JOSSO). Notez qu'il peut s'agir d'un surcoût important pour un petit projet, mais cela devrait résoudre votre problème. En dehors de cette solution, il existe des applications spécifiques au fournisseur telles que Secure External Password Store d'Oracle. Un autre exemple dépendant de la plateforme: vous pouvez configurer pg_hba.conf de PostgreSQL. Essayez les options d'authentification suivantes:

  • Authentification à l'aide du certificat SSL Certificats.
  • Authentification à l'aide du module Pluggable (PAM) Service fourni par le système en cours d'utilisation.
  • Authentification à l'aide d'un serveur LDAP .
  • ... et bien d'autres

Edit: Dans l'un des projets que nous avons utilisé 3DES pour crypter le mot de passe. Et oui, la clé a été codé en dur dans l'application :)

+0

Merci beaucoup pour votre réponse, j'apprécie le temps que vous avez pris pour répondre. Cependant, j'essaie de m'en tenir à la norme DBCP Tomcat et simplement «boulonner» sur la récupération de mon mot de passe, donc j'ai marqué la réponse ci-dessous comme la solution acceptée. Je vous remercie. Ryan – Ryan

Questions connexes