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

Langage Java Discussion :

le package javax.naming


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Par défaut le package javax.naming
    j'utilise dans mon application l'autothentification via LDAP
    dans mon code java j'utilise le package javax.naming
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Hashtable env = new Hashtable(); 
     
          try {
     
       		           env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
                env.put(Context.PROVIDER_URL,url_ldap); 
                env.put(Context.SECURITY_PRINCIPAL, username + "@" + domaine);
                InitialDirContext ctx = new InitialDirContext(env);
     
     }
    comment je peux vérifier si l'utilisateur "username" existe dans Ldap ou non
    merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // Authenticate as S. User and the password "mysecret"
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "cn=S. User, ou=NewHires, o=JNDITutorial");
    env.put(Context.SECURITY_CREDENTIALS, "mysecret");
    try{
    // Create the initial context
    DirContext ctx = new InitialDirContext(env);
       // user/pass correct
    } catch (AuthenticationException e){
       // user/pass incorrect
    }

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Par défaut
    ce que je veux faire c'est juste vérifier si l'utilisateur "username" existe dans LDAP sans vérifier le passe word
    en essayant cette solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // Authenticate as S. User and the password "mysecret"
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "cn=S. User, ou=NewHires, o=JNDITutorial");
    env.put(Context.SECURITY_CREDENTIALS, "mysecret");
    try{
    // Create the initial context
    DirContext ctx = new InitialDirContext(env);
       // user/pass correct
    } catch (AuthenticationException e){
       // user/pass incorrect
    }
    meme si l'utilisateur n'existe pas ça ne rentre pas dans l'exception

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par john_wili Voir le message

    meme si l'utilisateur n'existe pas ça ne rentre pas dans l'exception
    ca devrais sortir cette exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.naming.AuthenticationException: [LDAP: Invalid Credentials]
    Note que suivant l'implementation, l'authentification peux n'avoir lieu qu'au moment ou tu requiert effectivement des données du ldap.

    Pour récupérer des noeuds du ldap, il faut utiliser ctx.lookup(name);

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ca devrais sortir cette exception: 
    Code :
    javax.naming.AuthenticationException: [LDAP: Invalid Credentials]
    mais moi j'ai omis cette ligne (fournir le mot de passe comme paramètre)
    car je ne veux pas vérifer le mot de passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    env.put(Context.SECURITY_CREDENTIALS, "mysecret");
    je crois que le message d'erreur que vous m'avez fournie est lié à cette ligne ?
    j'ai tort?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    oui, c'est pour vérifier les credential. Si ton ldap autorise l'accès annonym, comme je te l'ai dit, c'est la méthode lookup qu'il faut utiliser pour vérifier si un noeud existe.

Discussions similaires

  1. Utiliser les packages javax.servlet.*; sur Eclipse
    Par nikita2 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 12/12/2012, 01h51
  2. Le package javax.servlet.http. n'existe pas
    Par sophie1909 dans le forum JBuilder
    Réponses: 5
    Dernier message: 25/08/2009, 03h17
  3. [EJB] [Débutant] Package javax.ejb
    Par Amnesiak dans le forum Java EE
    Réponses: 2
    Dernier message: 11/08/2005, 07h04
  4. [EJB Stateless] javax.naming.NameNotFoundException: ejb not bound
    Par slymira dans le forum Java EE
    Réponses: 18
    Dernier message: 04/07/2005, 15h30
  5. [EJB] [JBOSS][javax.naming.NameNotFoundException]
    Par hamed dans le forum Java EE
    Réponses: 5
    Dernier message: 18/12/2003, 18h00

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