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 :

[LDAP] Erreur "javax.naming.NameNotFoundException"


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Septembre 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 9
    Par défaut [LDAP] Erreur "javax.naming.NameNotFoundException"
    Bonjour,

    Je débute en Java et j'aimerais faire une connexion avec LDAP pour faire une recherche dans l'annuaire mais j’obtiens toujours cette erreur:
    Exception in thread "main" javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=xxx,o=xxx'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.searchAux(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.c_search(Unknown Source)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(Unknown Source)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
    at javax.naming.directory.InitialDirContext.search(Unknown Source)
    at test1.main(test1.java:33)
    Voici mon code :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    import java.util.Hashtable;
     
    import javax.naming.Context;
    import javax.naming.NamingEnumeration;
    import javax.naming.directory.Attribute;
    import javax.naming.directory.Attributes;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.InitialDirContext;
    import javax.naming.directory.SearchControls;
    import javax.naming.directory.SearchResult;
     
    public class test1 {
      public static void main(String[] args) throws Exception {
        Hashtable<String, String> env = new Hashtable<String, String>();
     
        String sp = "com.sun.jndi.ldap.LdapCtxFactory";
        env.put(Context.INITIAL_CONTEXT_FACTORY, sp);
     
        String ldapUrl = "ldap://xxx.xxx.x.xx:389/dc=xxx, dc=xxx";
        env.put(Context.PROVIDER_URL, ldapUrl);
     
        DirContext dctx = new InitialDirContext(env);
     
        String base = "ou=xxx,o=xxx";
     
        SearchControls sc = new SearchControls();
        String[] attributeFilter = { "cn", "mail" };
        sc.setReturningAttributes(attributeFilter);
        sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
     
        String filter = "(&(sn=z*))";
     
        NamingEnumeration<?> results = dctx.search(base, filter, sc);
        while (results.hasMore()) {
          SearchResult sr = (SearchResult) results.next();
          Attributes attrs = sr.getAttributes();
     
          Attribute attr = attrs.get("cn");
          System.out.print(attr.get() + ": ");
          attr = attrs.get("mail");
          System.out.println(attr.get());
        }
        dctx.close();
      }
    }
    Quelqu'un saurait-il m'expliquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    En gros cela veut dire que la recherche a échoué, aucune entrée ne correspond a ta recherche. C'est le fonctionnement normal (peut être un peu étrange) lorsqu'une recherche n'aboutie pas)

    Au passage, j'en profite pour faire ma petite pub, si cela peut t'aider, j'ai développé une librairie pour simplifier les recherche LDAP Sinon, je peux continuer a t'aider ici
    Si tu as d'autres question n'hésite pas

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 9
    Par défaut
    Merci beaucoup Mobius pour votre intérêt.

    Je suis obligée de faire l'authentification avec LDAP. J'ai téléchargé la bibliothèque LDAPBeans mais je ne sais pas comment faire la recherche.

  4. #4
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    désolé pour la réponse tardive.
    Quand tu dis que tu es obligé de faire l'authentification LDAP tu parles de rechercher un utilisateur dans LDAP et de faire des vérification toi meme, ou d'utiliser le mécanisme d'authentification LDAP ? Dans le deuxième cas, je ne vois pas le rapport avec le sujet initiale. Dans le premier cas, tu sera effectivement obligé de faire des recherches LDAP et de gérer les cas où tes recherches échoue. (je sais pas pourquoi mais j'ai l'impression de ne pas être clair)

    Pour LDAPBeans, tu as des explications a cette page (en particulier a les toutes fin de la page). Pour résumer, il te faut construire un bean qui représente l'entité LDAP que tu recherches. Ensuite la classe LdapBeanManager (et en particulier la méthode search) te permet de retrouver les entités de ton annuaire LDAP.

  5. #5
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1
    Par défaut application java et ldap
    Bonjour à tous.

    Je voudrais tester une application pki devellopée en java qui stocke des informations dans un annuaire ldap que j'ai configuré. le fichier lorsque je teste le fichier slapd.conf il repond
    file configure success (à peu près). seulement quand je lance le programme, j-obtiens ceci dans ma console:

    javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=rootCA,dc=pkirepository,dc=org'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3057)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2978)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2785)
    at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1401)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:253)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:165)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:154)
    at javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:155)
    at Ldap.LDAP.modifAttribute(LDAP.java:174)
    at Ldap.ldaputils.setCertificateCA(ldaputils.java:77)
    at Setup.setup.run(setup.java:84)
    at Setup.setup.main(setup.java:232)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
    javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=rootCA,dc=pkirepository,dc=org'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3057)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2978)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2785)
    at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1401)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:253)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:165)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:154)
    at javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:155)
    at Ldap.LDAP.modifAttribute(LDAP.java:174)
    at Ldap.ldaputils.setCRL(ldaputils.java:93)
    at Setup.setup.run(setup.java:86)
    at Setup.setup.main(setup.java:232)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
    javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=intermediatePeopleCA,ou=rootCA,dc=pkirepository,dc=org'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3057)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2978)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2785)
    at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1401)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:253)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:165)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:154)
    at javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:155)
    at Ldap.LDAP.modifAttribute(LDAP.java:174)
    at Ldap.ldaputils.setCertificateCA(ldaputils.java:77)
    at Setup.setup.run(setup.java:116)
    at Setup.setup.main(setup.java:232)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
    javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=intermediatePeopleCA,ou=rootCA,dc=pkirepository,dc=org'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3057)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2978)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2785)
    at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1401)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:253)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:165)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:154)
    at javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:155)
    at Ldap.LDAP.modifAttribute(LDAP.java:174)
    at Ldap.ldaputils.setCRL(ldaputils.java:93)
    at Setup.setup.run(setup.java:118)
    at Setup.setup.main(setup.java:232)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
    javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=intermediateServerCA,ou=rootCA,dc=pkirepository,dc=org'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3057)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2978)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2785)
    at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1401)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:253)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:165)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:154)
    at javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:155)
    at Ldap.LDAP.modifAttribute(LDAP.java:174)
    at Ldap.ldaputils.setCertificateCA(ldaputils.java:77)
    at Setup.setup.run(setup.java:133)
    at Setup.setup.main(setup.java:232)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
    javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=intermediateServerCA,ou=rootCA,dc=pkirepository,dc=org'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3057)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2978)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2785)
    at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1401)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:253)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:165)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:154)




    Je pense que l'erreur provient d'une mauvaise configuration mais je ne sais pas où.
    Je vous presente ici le fichier?ldif:


    dn: dc=pkirepository,dc=com
    objectClass: dcObject
    objectClass: organizationalUnit
    objectClass: pkiCA


    dn: cn=rootCA,dc=pkirepository,dc=com
    objectClass: organizationalUnit
    objectClass: cRLDistributionPoint
    objectClass: pkiCA

    lorsque je teste le fichier de configuration, il me dit qu'il ne reconnais pas dn
    en de plus j'obtiens ceci comme reponse dans ma console:

    51cb4c0f /etc/ldap/structure.ldif: line 1: unknown directive <dn:> outside backend info and database definitions.
    slaptest: bad configuration file!


    51cb4c94 bdb_db_open: database "dc=pkirepository,dc=org": database already in use.
    51cb4c94 backend_startup_one (type=bdb, suffix="dc=pkirepository,dc=org"): bi_db_open failed! (-1)
    slap_startup failed


    Pardon je suis coincé depuis plus d'un mois. Je suis sur que je trouverai une aide propice auprès de vous. Merci d'avance et pardonner moi pour la longueur de ma question

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/03/2012, 09h26
  2. Erreur : javax.naming.NameNotFoundException
    Par boobs60 dans le forum JOnAS
    Réponses: 0
    Dernier message: 05/01/2012, 22h14
  3. Réponses: 5
    Dernier message: 13/09/2011, 18h27
  4. Réponses: 2
    Dernier message: 20/07/2011, 19h26
  5. Mon Erreur javax.naming.NameNotFoundException:
    Par nafnaf625 dans le forum JOnAS
    Réponses: 3
    Dernier message: 16/08/2010, 11h40

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