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 :

Problème recherche/vérification login/mot de passe dans un annuaire OpenLDAP


Sujet :

Java

  1. #1
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut Problème recherche/vérification login/mot de passe dans un annuaire OpenLDAP
    Bonjour,

    Je sollicite votre aide pour un problème que je n'ai pas encore résolu.

    Ce problème concerne la recherche d'un identifiant et mot de passe dans un annuaire OpenLDAP pour vérifier s'il existe ou pas, s'il est juste ou pas.

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    public class CheckUser {
        
        public static void main(String[] args) {
            
            Hashtable env = new Hashtable();
            String url = "ldap://localhost:389";
            String modeAuthentification = "simple";
            String user = "cn=admin,dc=my_domain,dc=com";
            String mdp = "admin";
            String lieuRecherche = "dc=my_domain,dc=com";
            String qui = "Pierre";
            String filtre = "(|(cn="+qui+")(sn="+qui+"))";
            String userpswd = "pierrep";
            String filtre2 = "userPassword ="+userpswd+"";
            String filtre3 = "(&(cn="+qui+")(userPassword ="+userpswd+"))";
            
            
            env.put(Context.INITIAL_CONTEXT_FACTORY,
                    "com.sun.jndi.ldap.LdapCtxFactory");
            env.put(Context.PROVIDER_URL, url);
            env.put(Context.SECURITY_AUTHENTICATION, modeAuthentification);
            env.put(Context.SECURITY_PRINCIPAL, user);
            env.put(Context.SECURITY_CREDENTIALS, mdp);
            DirContext dirContext;   
         
            try {
              dirContext = new InitialDirContext(env);
              SearchControls searchControls = new SearchControls();
    
              searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    
    
              NamingEnumeration resultat = dirContext.search("dc=my_domain,dc=com",
                      "(&(cn="+qui+")(userPassword ="+userpswd+"))", searchControls);
    // l'erreur semble se situer ici
         
              while (resultat.hasMore()) 
              {
                  SearchResult sr = (SearchResult)resultat.next();
                     if (resultat != null)
                     {
    
                         System.out.println("True");
                    }
                 
                 else {
                        System.out.println("le login et/ou ce mot de passe n'existe pas dans l'annuaire");
                      }
              }
              
            } 
            
            catch (NamingException e) {
              System.err.println("Erreur lors de l'acces au serveur LDAP" + e);
              e.printStackTrace();
            }
            
            System.out.println("fin des traitements");
          }
    Et voici le message d'erreur qu'il me sort :
    Erreur lors de l'acces au serveur LDAPjavax.naming.directory.InvalidSearchFilterException: invalid attribute description; remaining name 'dc=my_domain,dc=com'
    javax.naming.directory.InvalidSearchFilterException: invalid attribute description; remaining name 'dc=my_domain,dc=com'
    at com.sun.jndi.ldap.Filter.encodeSimpleFilter(Unknown Source)
    at com.sun.jndi.ldap.Filter.encodeFilter(Unknown Source)
    at com.sun.jndi.ldap.Filter.encodeFilterList(Unknown Source)
    at com.sun.jndi.ldap.Filter.encodeComplexFilter(Unknown Source)
    at com.sun.jndi.ldap.Filter.encodeFilter(Unknown Source)
    at com.sun.jndi.ldap.Filter.encodeFilterString(Unknown Source)
    at com.sun.jndi.ldap.LdapClient.search(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.doSearch(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 CheckUser.main(CheckUser.java:52)
    fin des traitements
    Cependant je ne pense pas que ce soit une erreur de connexion à mon annuaire OpenLDAP car j'ai utilisé ce même code de connexion pour d'autre 'module', et cela ceux-ci fonctionnent bien...

    Mon erreur ce situe surtout au niveau de "LDAPjavax.naming.directory.InvalidSearchFilterException: invalid attribute description;" mais je ne sais pas à quoi cela correspond...

    Auriez-vous une idée, s'il vous plaît ?

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  2. #2
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    En fait cette erreur est dû au fait que je fait plusieurs appels avec plusieurs variables, et il n'a pas l'air d'aimer.....

    Pour corriger cela j'ai dû faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String lieuRecherche = "dc=utbm,dc=com";
            String filtre3 = "(&(|(cn=Marc)(sn=Marc))(userPassword=pierrep))";
     
    ...
     
    NamingEnumeration<?> resultat = dirContext.search(lieuRecherche,filtre3,searchControls);
    Au lieu de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String lieuRecherche = "dc=my_domain,dc=com";
    String qui = "Pierre";
    String filtre = "(|(cn="+qui+")(sn="+qui+"))";
    String userpswd = "pierrep";
    String filtre2 = "userPassword ="+userpswd+"";
    String filtre3 = "(&(cn="+qui+")(userPassword ="+userpswd+"))";
     
    ...
     
    NamingEnumeration resultat = dirContext.search("dc=my_domain,dc=com",
                      "(&(cn="+qui+")(userPassword ="+userpswd+"))", searchControls);
    Voilà.

    Bonne journée.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  3. #3
    Membre confirmé 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
    Points : 558
    Points
    558
    Par défaut
    Je pense plutôt que ton problème venais de la valorisation de "lieuRecherche".
    Dans un cas, ca valait "dc=my_domain,dc=com" (d'ou le message d'erreur), dans l'autre "dc=utbm,dc=com"
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

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

Discussions similaires

  1. Problème de vérification de mot de passe
    Par MALLM dans le forum Tkinter
    Réponses: 6
    Dernier message: 04/05/2013, 18h55
  2. [XL-2007] Ajouter un login + Mot de passe dans une fenetre
    Par lenovo49 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 15/11/2011, 14h09
  3. [AC-2010] Vérification de mot de passe dans une table ne fonctionne pas
    Par toumack dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/08/2011, 20h50
  4. Login et mot de passe dans un script
    Par Safaritn dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 06/12/2007, 08h06
  5. Passage de login mot de passe dans l'URL avec IE6 sp2
    Par SPA dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/10/2005, 08h47

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