Comment puis-je configurer une connexion LDAP de la piscine dans un Conteneur Java EE?
J'ai besoin de mettre un LDAP contextSource dans mon Java EE conteneur de l'arborescence JNDI de sorte qu'il peut être utilisé par des applications à l'intérieur du conteneur.
Je suis en utilisant le Printemps-LDAP pour effectuer des requêtes sur ORACLE OVD. Pour le développement, j'ai simplement le contextSource au Printemps fichier de configuration xml. Pour la production, cependant, j'ai besoin d'être en mesure d'utiliser une recherche JNDI pour saisir la connexion/le contexte de la cuve (comme suggéré ici: http://forum.springframework.org/showthread.php?t=35122&highlight=jndi). Je ne suis pas autorisé à avoir accès à l'URL/nom d'utilisateur/pwd pour la production OVD instance, de sorte que semble exclure le mettre dans un jndi.fichier de propriétés.
Idéalement, j'aimerais avoir un pool de connexions (tout comme JDBC), que ma demande peut avoir de nombreuses requêtes LDAP exécuter en même temps. Saisissant l'objet d'une recherche JNDI et à l'injecter dans mon SimpleLdapTemplate semble assez simple, mais je suis à une perte quant à la façon d'obtenir la connexion/contexte/la piscine dans l'arborescence JNDI. Aurais-je besoin de le construire et de les emballer dans un RAR? Si oui, quelles sont certaines des options pour laisser de l'équipe des opérations de spécifier l'URL/nom d'utilisateur/pwd dans un chemin qu'ils ne sont pas accessibles pour les développeurs?
Le conteneur spécifique que j'utilise est de la SV/OC4J, même si je salue les stratégies qui ont fonctionné sur d'autres conteneurs.
OriginalL'auteur Nicholas Trandem | 2008-12-02
Vous devez vous connecter pour publier un commentaire.
Spécifiquement en référence à la réelle mise en commun des connexions LDAP, si vous êtes en utilisant le haut dans JNDI fournisseur LDAP, les connexions sont déjà mis en commun à l'aide de la sémantique similaire à JDBC sources de données où les piscines sont maintenus pour les différentes Url LDAP et de propriétés de sécurité.
Lors de la création d'un JNDI
DirContext
, configurez la propriété com.soleil.jndi.ldap.connectez.piscine à vrai et la mise en commun sera activé.Il n'y a plus d'informations sur le protocole LDAP mise en commun ici.
De détails sur la configuration de LDAP de mise en commun des ici.
OriginalL'auteur Nicholas
Un peu compliqué, mais peut-être que votre administrateur de système peut stocker le nom d'utilisateur/mot de passe de votre base de données, soit cryptée, ou sur une table avec des droits d'accès limités?
Quelque chose comme (pseudo-haricots)
Edit:
Et en dev, votre
ldapCredentialProvider
bean pourrait être une simple propriétés de fichier basé sur la mise en œuvre?OriginalL'auteur toolkit
Toute chance que vous pouvez mettre en place un dev de la version de LDAP et de l'utiliser? Vous pouvez ensuite utiliser jndi.fichier de propriétés qui seraient spécifiques à un environnement, mais agnostique à votre système.
Edit: la différence ici est que lorsque vous construisez votre application, votre administrateur peut déployer dans le système de production, ce qui protège le précieux mot de passe ldap comme il n'existe dans le fichier de propriétés sur la boîte de production.
OriginalL'auteur Spencer Kormos
Avec jboss, vous pouvez fédérer externe contextes JNDI dans le serveur JBoss espace de nom JNDI.
Tout ce que vous avez à faire est de décrire le LDAP de l'accès à un MBean fichier de configuration.
Vous pouvez également activer la mise en cache.
On utilise cette solution pour accéder à un Active Directory server.
http://www.jboss.org/community/docs/DOC-9726
OriginalL'auteur