Bonjonr ! Mon problème est que je veut récupérer des utilisateur ayant un champs non complété comme par exemple le champ mail.

J'ai cette fonction de recherche dans LDAP :
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
   /**
   * Fonction permettant d'effectuer une recherche paramétrée
   * @param typeCritere : l'attribut sur lequel la recherche va s'effectuer (exemple : "department")
   * @param valeurCritere : la valeur que ce critère doit avoir pour être valable comme résultat
   * @param Attributs : les attributs que l'on souhaite avoir avec le resultat (exemple : { "cn","distinguishedName","description" })
   * @param OU : la racine à partir de laquelle on veut commencer à chercher les resultats pertinents (exemple : "CN=Valence,DC=postal,DC=local")
   * @param SCOPE : 0 pour OBJECT_SCOPE, 1 pour ONELEVEL_SCOPE,2 pour SUBTREE_SCOPE
   * @return une collection comprenant tous les résultats de la recherche efféctuée
   */
  public Collection Rechercher(String typeCritere, String valeurCritere, String[] Attributs, String OU, int SCOPE)
  {
    String searchFilter = "(" + typeCritere + "=" + valeurCritere + ")";       // création du filtre de recherche
    String[] attrIDs = Attributs;                                               // attributs à récupérer
    Collection Results = new ArrayList() ;
    int nbResult = 0 ;
    try
    {
      SearchControls ctls = new SearchControls();                               // contrôles de recherche
      ctls.setReturningAttributes(attrIDs);                                     // configuration de la récupération des éléments
      ctls.setSearchScope(SCOPE);                                               // configuration de la portée
      NamingEnumeration searchRes = ldapContext.search(OU,searchFilter,ctls);   // exécute la recherche
      while (searchRes.hasMoreElements())                                       // hasMoreElements ne renvoie jamais d'erreur
      {
        SearchResult result = (SearchResult) searchRes.next();                  // on recupère l'objet résultat
        Results.add(result) ;
      }
    }
    catch (InvalidSearchFilterException isfe)
    {
        System.out.println("Erreur au niveau du filtre de la recherche...");
        return null;
    }
    catch (InvalidSearchControlsException isce)
    {
        System.out.println("Erreur au niveau du controle de la recherche...");
        return null;
    }
    catch (NamingException ne)
    {
        System.out.println("Erreur au niveau du nom de la recherche...");
        return null;
    }
    catch (Exception e)
    {
    System.out.println("Erreur...");
    return null;
    }
    return Results;
  }


Et donc pour ma recherche du champ vide je fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ArrayList listTmp = (ArrayList) ConAD.Rechercher("&(" + champTmp.getCodechamp(),'"")(objectClass=user)',listeAttributs,"DC=postal,DC=local",2);
ConAD => ma connection à l'AD
champTmp.getCodechamp() => le nom du champ vide à rechercher
listeAttributs => le tableau correspondant à la liste des attributs à retourner
2 => le SCOPE de la recherche (ici SUBTREE_SCOPE)

Je suis passé en debuggage avec JBuilder un bon nombre de fois et à chaque fois la fonction a les bons paramètres mais à l'execution c'est comme si il ne trouver aucun enregistrements... (pas d'erreurs retourner non plus)

Je ne comprend donc pas tout à fait d'où vient l'erreur ...
Je vous remercie d'avance de l'aide que vous pourrez m'apporter et je reste à disposition pour de plus ample explications !