Question

Je dois insérer un contexte LDAP contextSource dans l'arborescence JNDI de mon conteneur Java EE afin qu'il puisse être utilisé par les applications à l'intérieur du conteneur.

J'utilise Spring-LDAP pour effectuer des requêtes sur ORACLE OVD. Pour le développement, j'ai simplement configuré contextSource dans le fichier de configuration Spring xml. Pour la production, toutefois, je dois pouvoir utiliser une recherche JNDI pour saisir la connexion / le contexte du conteneur (comme suggéré ici: http://forum.springframework.org/showthread.php?t=35122&highlight=jndi ). Je ne suis pas autorisé à accéder à l'URL / nom d'utilisateur / pwd de l'instance OVD de production, donc cela semble exclure de le placer dans un fichier jndi.properties.

Idéalement, j'aimerais disposer d'un pool de connexions (comme JDBC), car mon application peut exécuter plusieurs requêtes LDAP en même temps. Extraire l'objet d'une recherche JNDI et l'injecter dans mon SimpleLdapTemplate semble assez simple, mais je ne sais pas comment obtenir la connexion / le contexte / le pool dans l'arborescence JNDI. Aurais-je besoin de le construire et de le conditionner dans un RAR? Si tel est le cas, quelles sont les options permettant à l'équipe des opérations de spécifier l'URL / nom d'utilisateur / pwd de manière à ce qu'elles ne soient pas accessibles aux développeurs?

Le conteneur que j'utilise est OAS / OC4J, bien que les stratégies qui ont également fonctionné pour d'autres conteneurs soient les bienvenues.

Était-ce utile?

La solution

Particulièrement en référence au pooling réel de connexions LDAP, si vous utilisez le fournisseur LDAP JNDI intégré, les connexions sont déjà mises en pool en utilisant une sémantique similaire aux sources de données JDBC, dans lesquelles des pools distincts sont gérés pour différentes URL LDAP et propriétés de sécurité.

Lors de la création d'un DirContext JNDI, configurez la propriété com.sun.jndi.ldap.connect.pool sur true et le regroupement sera activé.

Plus d'informations sur le regroupement LDAP ici .

Cliquez ici pour plus de détails sur la configuration du pool LDAP.

Autres conseils

Avez-vous une chance de configurer une version de développement de LDAP et de l'utiliser? Vous pouvez ensuite utiliser un fichier jndi.properties, qui serait spécifique à l’environnement, mais indépendant de votre système.

Modifier: la différence réside dans le fait que lorsque vous créez votre application, votre administrateur peut la déployer sur le système de production, protégeant ainsi le précieux mot de passe LDAP, car il n'existe que dans le fichier de propriétés de la boîte de production.

Avec jboss, vous pouvez fédérer des contextes JNDI externes dans l'espace de noms JNDI du serveur JBoss. Tout ce que vous avez à faire est de décrire l’accès LDAP dans un fichier de configuration MBean. Vous pouvez également activer la mise en cache.

Nous utilisons cette solution pour accéder à un serveur Ative Directory.

http://www.jboss.org/community/docs/DOC-9726

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