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

Java Discussion :

[JUnit] Stub Serveur LDAP


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 50
    Points : 40
    Points
    40
    Par défaut [JUnit] Stub Serveur LDAP
    Bonjour la communauté,

    Je cherche à embarquer un serveur LDAP simulé dans mon projet (WS CXF, Spring LDAP) pour écrire des tests unitaires sur les classes faisant appel directement ou indirectement à du LDAP (DAO, Métier)

    Donc, j'aurais besoin de vos conseils et orientations sur la meilleure façon de faire, des liens, noms de solutions pour googler de mon coté car jusqu'ici j'ai pas trouvé ce que je cherche, si j'ai mal cherché, je vous prierais de m'en excuser

    Par avance, Merci.

    inflation

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 50
    Points : 40
    Points
    40
    Par défaut
    Je suis tombé sur ça : UnboundId

    en gros, voici le petit exemple proposé un peu partout sur le net :

    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
    19
    20
    21
    22
    23
    24
    25
    26
     
    // Create a base configuration for the server.
     InMemoryDirectoryServerConfig config =
          new InMemoryDirectoryServerConfig("dc=example,dc=com");
     config.addAdditionalBindCredentials("cn=Directory Manager",
          "password");
     
     // Create and start the server instance and populate it with an
     // initial set of data from the file "/tmp/test.ldif".
     InMemoryDirectoryServer server = new InMemoryDirectoryServer(config);
     server.initializeFromLDIF(true, "/tmp/test.ldif");
     
     // Start the server so it will accept client connections.
     server.startListening();
     
     // Get a connection to the server.
     LDAPConnection conn = server.getConnection();
     
     // Perform various operations in the server....
     
     // Close the connection.
     conn.close();
     
     // Shut down the server so that it will no longer accept client
     // connections, and close all existing connections.
     server.shutDown(true);
    mais ça pète au niveau de cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    server.initializeFromLDIF(true, "/tmp/test.ldif");
    Et me remonte cette exception :

    java.lang.ExceptionInInitializerError
    at com.unboundid.ldap.sdk.ConnectThread.getConnectedSocket(ConnectThread.java:193)
    at com.unboundid.ldap.sdk.LDAPConnectionInternals.<init>(LDAPConnectionInternals.java:137)
    at com.unboundid.ldap.sdk.LDAPConnection.connect(LDAPConnection.java:696)
    at com.unboundid.ldap.sdk.LDAPConnection.connect(LDAPConnection.java:639)
    at com.unboundid.ldap.sdk.LDAPConnection.<init>(LDAPConnection.java:471)
    at com.unboundid.ldap.sdk.LDAPConnection.<init>(LDAPConnection.java:597)
    at com.unboundid.ldap.sdk.LDAPConnection.<init>(LDAPConnection.java:498)
    at fr.ptassures.dao.ApplicationDaoTest.testMachin(ApplicationDaoTest.java:27)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at junit.framework.TestCase.runTest(TestCase.java:168)
    at junit.framework.TestCase.runBare(TestCase.java:134)
    at junit.framework.TestResult$1.protect(TestResult.java:110)
    at junit.framework.TestResult.runProtected(TestResult.java:128)
    at junit.framework.TestResult.run(TestResult.java:113)
    at junit.framework.TestCase.run(TestCase.java:124)
    at junit.framework.TestSuite.runTest(TestSuite.java:243)
    at junit.framework.TestSuite.run(TestSuite.java:238)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
    Caused by: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key INFO_RC_SUCCESS
    at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
    at java.util.ResourceBundle.getString(ResourceBundle.java:334)
    at com.unboundid.ldap.sdk.LDAPMessages.get(LDAPMessages.java:2273)
    at com.unboundid.ldap.sdk.ResultCode.<clinit>(ResultCode.java:345)
    ... 27 more




    Une idée ?

    Merci.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 50
    Points : 40
    Points
    40
    Par défaut
    Juste un petit UP pour dire que je galère toujours

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Salut inflation,

    Je rencontre le même problème que toi mais pas sur la même ligne.
    Ainsi j'aimerais savoir si tu as résolu ton problème et si oui, comment.

    Pour information, mon code est le suivant :
    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
    19
    20
    21
    22
     
        static public Personne getPersonne(String id) {
            try {
                LDAPConnection ldap = new LDAPConnection(host, port, username, password);
                SearchResult sr = ldap.search(baseDN, SearchScope.SUB, "(uid=" + id + ")");
                if(sr.getEntryCount() == 0) {
                    System.out.println("Aucun résultat pour : " + id);
                }
                String firstname = sr.getSearchEntries().get(0).getAttribute(firstnameAttribute).getValue();
                String lastname = sr.getSearchEntries().get(0).getAttribute(lastnameAttribute).getValue();
                Personne p = new Personne();
                p.setId(id);
                p.setPrenom(firstname);
                p.setNom(lastname);
                ldap.close();
                return p;
            }
            catch(Exception e) {
                e.printStackTrace();
                return new Personne();
            }
        }
    Et l'erreur que j'obtiens est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Exception in thread "Connection reader for connection to ldap.mon-domaine.fr:389" java.lang.ExceptionInInitializerError
    	at com.unboundid.ldap.protocol.LDAPMessage.readLDAPResponseFrom(LDAPMessage.java:994)
    	at com.unboundid.ldap.sdk.LDAPConnectionReader.run(LDAPConnectionReader.java:264)
    Caused by: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key INFO_RC_SUCCESS
    	at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
    	at java.util.ResourceBundle.getString(ResourceBundle.java:334)
    	at com.unboundid.ldap.sdk.LDAPMessages.get(LDAPMessages.java:2196)
    	at com.unboundid.ldap.sdk.ResultCode.<clinit>(ResultCode.java:345)
    	... 2 more

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Solution trouvée :

    Il s'avère que j'avais un ldap.properties que j'avais ajouté à mon classpath, alors qu'UnboundID contient déjà un ldap.properties. Les deux entrent donc en conflit et on obtient l'erreur précédemment mentionnée

    @+

  6. #6
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    je sais que c'est un peu tardif... mais c'est plus pour apporter une réponse aux personnes qui seraient dans le même cas.

    Spring LDAP fourni un classe utilitaire de test LdapTestUtilsqui apporte notamment un annuaire ApacheDS embarqué.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 50
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par benratti Voir le message
    je sais que c'est un peu tardif... mais c'est plus pour apporter une réponse aux personnes qui seraient dans le même cas.

    Spring LDAP fourni un classe utilitaire de test LdapTestUtilsqui apporte notamment un annuaire ApacheDS embarqué.
    Tardif mais Merci pour ta réponse

Discussions similaires

  1. Réplication d'un serveur LDAP
    Par inu974 dans le forum Développement
    Réponses: 2
    Dernier message: 18/07/2006, 19h30
  2. Utilisation serveur LDAP
    Par oligig dans le forum Applications
    Réponses: 3
    Dernier message: 20/04/2006, 12h08
  3. Authentification via un serveur LDAP
    Par jh0483 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 16/01/2006, 06h53
  4. LDAP : Problème persistant de connexion à un serveur LDAP!!!
    Par onouiri dans le forum Développement
    Réponses: 11
    Dernier message: 15/11/2005, 19h05
  5. Réponses: 1
    Dernier message: 04/11/2005, 23h26

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