2011-12-08 1 views
0

Actuellement nous faisons quelque chose comme:Comment vérifier si un objet existe dans un répertoire (LDAP ou AD) en utilisant jndi?

Attributes attributes = directoryConnection.find(filter, false); 
if (attributes == null) { 
    // then the object does not exist 
} 

je pense que ce n'est pas efficace, on n'a pas besoin de récupérer l'ensemble des attributs (ils pourraient être quelques thousends dans le cas d'un objet groupe ... je veux juste savoir si l'objet existe ou pas)

Y at-il un meilleur moyen de vérifier si l'objet existe? Je peux utiliser le cn de l'objet ou la totalité de celui-ci

Répondre

0

Pour déterminer si un "objet" existe, vous devez rechercher l'objet. Une demande de recherche se compose d'au moins:

  • objet de base
  • scope
  • filtre
  • a demandé attributs

Plus quelques autres, en option, des paramètres tels que la taille limite et la limite de temps, et ainsi de suite. Recherchez l'objet, demandez l'attribut 1.1 et la réponse de recherche indiquera le nombre d'entrées renvoyées. Si le nombre d'entrées renvoyées est zéro, l'objet n'existe pas. Pour plus d'informations, voir "LDAP: ldapsearch" et "LDAP: Programming Practices".

+1

bien, je sais certains de ces faits, mais ma question est comment puis-je faire ce filtre ou comment effectuer cette "requête" en utilisant jdni ... je dois rechercher un groupe et j'ai le cn du groupe ou le dn du groupe, je pense que je peux demander un champ unique sur le groupe ... ce que nous faisons maintenant est juste pour faire le filtre de cette façon filter = "(" + groupCn + ")"; mais je pense que ce n'est pas le meilleur filtre que nous pouvons faire ... mais je suis assez nouveau dans ldap et ldif et quand je recherche sur google à ce sujet les pages sont plus cryptiques qu'un simple texte ldif ... – cablop

+0

get it ... alors maintenant je dois faire un filtre qui inclut à la fois le cn ou le dn et l'attribut 1.1 ... s'il y a plus d'un résultat ... mais je ne sais pas comment faire ce filtre. – cablop

+0

Le filtre doit être '(cn = quelquechose)', ou si vous connaissez l'objectClass auquel l'entrée appartient, '(& (cn = quelquechose) (objectClass = theKnownObjectClass))'. Les attributs demandés sont un paramètre différent. –

Questions connexes