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

API standards et tierces Java Discussion :

Probleme LDAP java


Sujet :

API standards et tierces Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Par défaut Probleme LDAP java
    Bonjour à tous .
    Je suis en stage et mon projet se traduit par la création d'une application en java, qui surveille les serveurs et leurs services.
    J'ai deja testé quelques ports comme http, mysql, ... et je bloque sur l'annuaire d'entreprise LDAP.
    Je ne connaissai pas ce type de service; j'ai donc effectué des recherches sur le net. Il en ressort ce 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
     
     try {
                    // Initialisation du contexte et connexion au serveur
                    DirContext ctx = new InitialDirContext(env);
                    // Recuperation des attributs
                    Attributes attrs = ctx.getAttributes("cn=Toto Dupont,ou=personnels EN,ou=titi,ou=tata,o=tutu,c=fr");
                    if (attrs == null) {
                        System.out.println("non trouvé");
                    } else {
                        // Parcours des attributs
                        for (NamingEnumeration ae = attrs.getAll();
                                                    ae.hasMoreElements(); ) {
                            Attribute attr = (Attribute) ae.next();
                            String attrId = attr.getID();
                            // Parcours des valeurs
                            for (NamingEnumeration vals = attr.getAll();
                                    vals.hasMoreElements();
                                    System.out.println(attrId + ": " +
                                    vals.nextElement())) {
                                ;
                            }
                        }
                    }
                } catch (NamingException e) {
                    e.printStackTrace();
                }
    La connexion au service s'effectue parfaitement et donc je ne l'ai pas mise ici.

    voici l'erreur que le programme m'affiche :
    javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'cn=Toto Dupont,ou=personnels EN,ou=titi,ou=tata,o=tutu,c=fr'
    Les attributs sont corrects ...
    Es que j'ai oublié d'importer une librairie ? ou alors ai-je une erreur de syntaxe ?

    Merci d'avance
    Au plaisir de vous lire

  2. #2
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut


    Donne nous quand même le "env".

    "Toto Dupont" existe vraiment sinon c'est normal je pense.

    getAttributes ne renvoie pas "null" je crois. Soit il renvoit les attributs soit il pète une exception.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Env {
            /*
             * Contexte inital
             */
            public final static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
     
            /*
             * Machine + port du serveur LDAP
             */
            public final static String HOST = "ldap://serveur.fr";
    }
    voici ma classe " env " de connection.

    Pour test, j'ai enlevé les attributs et là; l'application ne m'a pas renvoyé d'erreur ...

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Hashtable env = new Hashtable(5, 0.75f);
                env.put(Context.INITIAL_CONTEXT_FACTORY, Env.INITCTX);
                env.put(Context.PROVIDER_URL, Env.HOST);
    Je n'ai que ca :s

    Serait il possible de m'expliquer le code que je viens d'afficher ainsi que le base name ?

  5. #5
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    Il te manque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "ou=personnels EN,ou=titi,ou=tata,o=tutu,c=fr");
    env.put(Context.SECURITY_CREDENTIALS, "le_mot_de_passe");

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Par défaut
    Est il possible de s'authentifier de facon anonyme et de ce fait ne pas utiliser le mot de passe ?

    merci d'avance

  7. #7
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    euh, peut être. Essaye de juste rajouter cela alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    env.put(Context.SECURITY_AUTHENTICATION, "none");

  8. #8
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Par défaut
    Le "none" ne fonctionne pas;
    Par contre je n'ai pas pu essayer avec le mot de passe car je ne l'ai pas :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     //connexion
                Hashtable env = new Hashtable(5, 0.75f);
                env.put(Context.INITIAL_CONTEXT_FACTORY, Env.INITCTX);
                env.put(Context.PROVIDER_URL, Env.HOST);
                env.put(Context.SECURITY_AUTHENTICATION, "none");
                env.put(Context.SECURITY_PRINCIPAL, "ou=personnels EN,ou=titi,ou=tata,o=tutu,c=fr");
    Une autre idée ?

  9. #9
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    Essaye ca et donne nous l'erreur renvoyée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DirContext ctx = new InitialDirContext(env);
    ctx.getSchema("ou=personnels EN,ou=titi,ou=tata,o=tutu,c=fr");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DirContext ctx = new InitialDirContext(env);
    ctx.getSchema("o=tutu,c=fr");

  10. #10
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Par défaut
    Là c'est pour la connection au serveur LDAP ?
    bref, en utilisant ta deuxieme méthode; la connection devint impossible.
    Sinon, toujours la meme erreur :
    avax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]

  11. #11
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    Avais tu bien lu cette phrase ?

    Citation Envoyé par Bezout Voir le message
    getAttributes ne renvoie pas "null" je crois. Soit il renvoit les attributs soit il pète une exception.

  12. #12
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Par défaut
    Oui j'avais bien lu et de ce fait j'avais enlevé le test mais ca n'a rien apporté de plus concluant ...
    Je continue mes recherches

    bonne journée

  13. #13
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    Donc une exception à ce niveau ne veut pas forcément idre un pb de connexion. Le user cité peut simplement ne pas exister.

  14. #14
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Par défaut
    Le user existe vraiment.
    Par contre je n'ai pas dis qu'il y avait un probleme de connexion, au contraire.
    D'apres moi, la requete de LDAP n'arrive pas à trouver l'endroit où chercher le user ...

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Par défaut
    Bonjour,

    Dans ce même code, a quoi correspond "Env"?

    env.put(Context.INITIAL_CONTEXT_FACTORY, Env.INITCTX);
    env.put(Context.PROVIDER_URL, Env.HOST);

    Merci.

    P.S. :Autant pour moi, Env.INICTX pointait sur un String INITCTX dans Env.java

Discussions similaires

  1. Probleme erreur java.lang.NullPointerException
    Par Tsukaasa dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2006, 18h19
  2. probleme avec java.util.Scanner
    Par d-a-v-e dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 04/05/2006, 22h08
  3. Probleme Programation JAVA débutant
    Par tomtom62136 dans le forum Langage
    Réponses: 1
    Dernier message: 03/03/2006, 12h07
  4. Probleme applet java sur mon site
    Par halo90 dans le forum Applets
    Réponses: 5
    Dernier message: 01/02/2006, 16h18
  5. probleme securite java
    Par ghan77 dans le forum Langage
    Réponses: 2
    Dernier message: 20/01/2006, 10h09

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