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 :

Connexion LDAP


Sujet :

API standards et tierces Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 137
    Par défaut Connexion LDAP
    Bonjour,

    Je suis débutante en LDAP et je voudrais récupérer les valeurs (login et pwd) pour faire l'authentification (application en J2EE).

    J'ai trouvé un code et j'ai essayé de le modifier:


    Code Java : 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
                   Hashtable env = new Hashtable();
     
                    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
                    env.put(Context.PROVIDER_URL, "ldap://localhost:389/");  // SET YOUR SERVER AND STARTING CONTEXT HERE
                    env.put(Context.SECURITY_PRINCIPAL, "cn="+getUsername() +",dc=di,dc=com");  // SET USER THAT CAN SEARCH AND MODIFY FULL NAME HERE
                    env.put(Context.SECURITY_CREDENTIALS, getPassword());  // SET PASSWORD HERE
                    env.put(LdapContext.CONTROL_FACTORIES, "com.sun.jndi.ldap.ControlFactory");
     
            // Create the initial context with no connection request controls
            try{
            DirContext ctx = new InitialDirContext(env);
            System.out.println("Connexion à LDAP établie");
            return "indexall";      
            }
            catch(Exception e) 
    		     { 
    		    	System.out.println("Problème de connexion" + e); 
    		     }  
            return null;


    ->> Erreur: NullPointerException


    Je suis débutante en J2EE et en LDAP, j'ai beau cherché des solutions mais le problème persiste!


    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 26
    Par défaut
    J'ai le code suivant qui marche impec, si ça peut t'aider :
    (je l'ai un peu adapté à ce que j'ai compris de tes fonctions getUserName et getPassword, mais je peux me tromper...)
    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
     
      DirContext ldapContext = null;
      String ldap_server="127.0.0.1"; //+ ":636"
      //le port par défaut n'a pas besoin d'être précisé.
      //127.0.0.1 pour localhost ;)
      String global_dc="dc=ton_dc,dc=com"; //ton_dc à changer
      String ou_dn="ou=ton_ou,"+global_dc; //ton_ou à changer, en fonction de l'architecture de ton annuaire
     
      String admin_dn="cn="+getUserName()+","+global_dc; //Identifiant de connexion à l'annuaire
      String admin_pwd=getPassword();
     
    String user_uid="user_a_tester"; //Identifiant à tester dans l'annuaire
    String user_pwd="pass_a_tester";
     
      String user_dn="uid="+user_uid+","+ou_dn;
     
        try{
          Hashtable<String,String> ldapEnv = new Hashtable<String,String>();
          ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
          ldapEnv.put(Context.PROVIDER_URL,  "ldap://" + ldap_server);
          ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple");
          //ldapEnv.put(Context.SECURITY_PRINCIPAL, admin_dn);
          //ldapEnv.put(Context.SECURITY_CREDENTIALS, admin_pwd);
          ldapEnv.put(Context.SECURITY_PRINCIPAL, user_dn);
          ldapEnv.put(Context.SECURITY_CREDENTIALS, user_pwd);
          //ldapEnv.put(Context.SECURITY_PROTOCOL, "ssl");
          ldapContext = new InitialDirContext(ldapEnv);
          System.out.println("LDAP : Bind Ok = "+user_uid);
          return true;
        }catch (Exception e){
          System.out.println("LDAP : Bind Error = "+e);
          return false;
        }

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 137
    Par défaut
    Merci pour votre réponse G déjà résolu le pb de cnx mais peut-être bien ke j'aurai besoin de votre aide prochainement car je travaille encore sur LDAP !

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

Discussions similaires

  1. comment déclarer une connexion LDAP en global ?
    Par ben83 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/03/2007, 15h24
  2. connexion ldap dans le livre jsp professionnel
    Par mjihanne dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 27/05/2006, 16h46
  3. Connexion LDAP (active directory)
    Par Mateache dans le forum ASP
    Réponses: 2
    Dernier message: 09/05/2006, 13h33
  4. connexion Ldap et recupération d'information
    Par lechatmagik dans le forum ASP
    Réponses: 13
    Dernier message: 31/10/2005, 10h44
  5. [LDAP] connexion LDAP
    Par abertaud dans le forum API standards et tierces
    Réponses: 15
    Dernier message: 20/07/2005, 09h49

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