IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Problème de reconnexion au Ldap [Integration]


Sujet :

Spring Java

  1. #1
    pjv
    pjv est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Problème de reconnexion au Ldap
    Bonjour,

    Je fais appel à votre aide car je rencontre un problème que je n'arrive pas à solutionner lors du développement d'un service web.

    Voici le contexte :
    J’ai développé un web service avec J2ee 1.6, Apache CXF pour la communication SOAP, Spring et Spring-ldap pour la communication avec l’annuaire LDAP.
    Le serveur d’application utilisé est Apache Tomcat 6.0.18.

    Mon soucis se situe au moment où le web service perd la connexion avec l’annuaire. De ce fait, spring-ldap lève une exception (jusqu’à là rien d’anormal).
    Seulement, une fois l’annuaire rétablit, le web service ne le détecte toujours pas.

    Voici la configuration au niveau des beans spring :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <bean id="contextSource" class="org.springframework.ldap.pool.factory.PoolingContextSource">
          <property name="contextSource" ref="contextSourceTarget" />
    </bean>
     
    <bean id="contextSourceTarget" class="org.springframework.ldap.core.support.LdapContextSource">
          <property name="url" value="blablabla" />
          <property name="base" value="blebleble" />
          <property name="userDn" value="bliblibli" />
          <property name="password" value="blobloblo" />
          <property name="pooled" value="true" />
    </bean>
     
    <bean id="templateLdap" class="org.springframework.ldap.core.LdapTemplate">
          <constructor-arg>
                <ref bean="contextSource" />
          </constructor-arg>
    </bean>
    Connaissez-vous la configuration qui permettrait de résoudre mon problème sans utiliser de DataSource ?

    Pour le moment, je cherche une solution au niveau de spring avant de me retourner vers un solution java.

    En l'attente d'une réponse, je vous souhaite à tous une bonne journée.

    Cordialement.

  2. #2
    pjv
    pjv est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Je me réponds moi-même car j'ai trouvé une solution.

    Mon soucis venait de la gestion du pool. En effet, deux pools étaient configurés à savoir la propriété « pooled » à true dans le bean « contextSourceTarget » et celui du bean « contextSource ».
    Pour palier à cela, j’ai arrêté le premier et configurer le second en rajoutant les options « testOnBorrow » à true (false par défaut) et « dirContextValidator » qui pointe vers une feuille de l’annuaire.
    Par défaut, la propriété « maxWait » est négative (-1L) donc les tentatives de connexion sont « infinies ». La propriété « testOnBorrow » est à true et permet de tester la connexion avant chaque envoi à l’annuaire.
    Ce test est effectué sur l’objet « dirContextValidator », c'est-à-dire la racine de l’annuaire. De ce fait, si le test échoue, une exception est lancée et le service web se met en attente de nouvelle requête alors qu’au par avant, il semblait « enregistrer » la perte de connexion et se bloquer là dessus.

    Voici la bonne configuration :

    <bean id="dirContextValidator" class="org.springframework.ldap.pool.validation.DefaultDirContextValidator">
    <property name="base" value="" /> // Attention à la valeur passée, seule la racine de l'annuaire a fonctionné pour moi.
    </bean>

    <bean id="contextSource" class="org.springframework.ldap.pool.factory.PoolingContextSource">
    <property name="contextSource" ref="contextSourceTarget" />
    <property name="testOnBorrow" value="true" />
    <property name="dirContextValidator" ref="dirContextValidator" />
    </bean>

    <bean id="contextSourceTarget" class="org.springframework.ldap.core.support.LdapContextSource">
    <property name="url" value="blablabla" />
    <property name="base" value="blablabla" />
    <property name="userDn" value="blablabla" />
    <property name="password" value="blablabla" />
    <property name="pooled" value="false" />
    </bean>
    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec use Net::LDAP::LDIF;
    Par lcurbiere dans le forum Langage
    Réponses: 1
    Dernier message: 10/02/2009, 11h47
  2. [LDAP] Problème de connexion en ldaps via php4
    Par xjinh dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 26/08/2008, 15h10
  3. problème authentification sso et ldap (openldap)
    Par javaweb44 dans le forum Websphere
    Réponses: 11
    Dernier message: 12/10/2007, 11h10
  4. Réponses: 10
    Dernier message: 02/03/2007, 09h35
  5. problème avec une requête LDAP
    Par tfdarklink dans le forum Modules
    Réponses: 2
    Dernier message: 02/08/2006, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo