2009-04-02 4 views
1

J'espère que quelqu'un peut m'aider à comprendre comment travailler avec l'objet renvoyé par un appel à DirContext.lookup.Comment puis-je accéder aux attributs de cet objet LDAP?

L'extrait de code suivant fonctionne et renvoie un objet. Je n'arrive tout simplement pas à comprendre comment obtenir les attributs de l'objet.

javax.naming.directory.DirContext ctx = 
    javax.naming.directory.getContext(false); 
Object o = ctx.lookup(rdn); 

Toute aide serait grandement appréciée.

Répondre

0

Vous devez savoir quel objet vous attendez du lookup(), le transtyper explicitement, et ensuite faire ce que vous voulez avec.

En fin de compte, vous devriez avoir quelque chose comme ceci:

InitialContext iCtx = new InitialContext(); 
// load the iCtx with environment variables if necessary 
Object o = iCtx.lookup("objectNameOrString"); 
ExpectedObjectType eot = (ExpectedObjectType) o; 
eot.doWhatever(); 
+0

Il me manque quelque chose ici. Je connais la classe d'objet de l'objet dans LDAP mais je n'ai pas d'objet application correspondant. Il doit y avoir un mécanisme semblable à la réflexion pour interroger les attributs de l'objet? –

0

Dans un annuaire LDAP, vous feriez:

Attributs attrs = ctx.getAttributes (dn);

pour obtenir les attributs de l'objet

2

Attributes attrs = ctx.getAttributes (dn); récupérera les attributs de l'utilisateur en supposant que l'entrée demandant les valeurs d'arrtibute a des droits appropriés. Cependant, il est recommandé de ne rechercher que les attributs dont vous avez besoin.

Si vous souhaitez voir tous les attributs, vous devez interroger les valeurs d'attribut objectclass, puis interroger le schéma pour obtenir "tous" les attributs affectés et décider quels attributs vous devez récupérer.

-jim

Questions connexes