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 :

[LDAP] problème pour récupérer des données


Sujet :

API standards et tierces Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 167
    Points : 112
    Points
    112
    Par défaut [LDAP] problème pour récupérer des données
    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 !

  2. #2
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    Merci d'utiliser les balises CODE sinon c'est trop illisible ...

    ++

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 167
    Points : 112
    Points
    112
    Par défaut
    Ouai dsl c'est mon premier post mais déjà en voyant la mise en forme dans la boite de message je m'étais dit que ca allait être illisible ...
    En tout cas j'ai fait quelques recherche depuis tout à l'heure et je pense avoir trouvé la solution grace à ce lien :
    http://msdn.microsoft.com/library/de...ter_syntax.asp

    Cela explique très bien comment fonctionnent les filtres.
    Voila voila !

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 167
    Points : 112
    Points
    112
    Par défaut Arf les problèmes continuent !
    Bon maintenant que j'ai trouvé les explications pour les filtres, j'en ai fait un joli qui ne retourne pas d'exception mais qui ne me renvoi aucune informations ce qui n'est pas normal ...
    Ce filtre le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((&(description= )(objectClass=user))|(&(!(description=*))(objectClass=user)))
    Il est fait pour retourner tous les user n'ayant pas pas de description ou ayant une description avec un espace seulement. Mais il ne retourne rien ...

    J'ai aussi fait quelques essais et je trouve certaines choses pas normal !
    En effet ce filtre fonctionne :
    mais pas celui-ci qui pourtant est des plus simpliste ! :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (&(!(description=*))(objectClass=user))
    Pourtant tous ces filtres sont apparament bons car ne retournent pas de InvalidSearchFilterException !
    Merci aux personnes qui pourraient m'éclairer, je sens que ma solution est toute proche !

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 167
    Points : 112
    Points
    112
    Par défaut
    Après plus d'une erreur de tests en tout genre je suis arrivé à quelque chose qui fonctionne mais franchement je n'ai pas vu quelle était exactement la différence avec les filtres que je faisait avant cela

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

Discussions similaires

  1. Problème d'utilisation de uiwait pour récupérer des données
    Par gtitou12 dans le forum Interfaces Graphiques
    Réponses: 9
    Dernier message: 06/01/2011, 11h36
  2. fonction pour récupérer des données xml
    Par jeff29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/06/2006, 15h46
  3. Problème pour rentrer des données dans MySQL
    Par Sandara dans le forum Requêtes
    Réponses: 8
    Dernier message: 06/06/2006, 10h59
  4. LDAP - Problème pour récupérer l'uid
    Par sangei dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 16/11/2005, 13h56
  5. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44

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