Hello,
j'utilise le code suivant pour lister les membres d'un groupe en paramètre :
Ce qui me retourne ceci :
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 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, server); env.put(Context.SECURITY_PROTOCOL, "ssl"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, ldapDN); env.put(Context.SECURITY_CREDENTIALS, ldapPassword); String filter = "(&(cn=GROUPE_5))"; DirContext ctx; DirContext ldapContext; try { ldapContext = new InitialDirContext(env); SearchControls ctls = new SearchControls(); ctls.setSearchScope(SearchControls.SUBTREE_SCOPE); ctls.setReturningAttributes(new String[] { "uniquemember"}); NamingEnumeration<SearchResult> resultEnum = ldapContext.search("ou=groups,dc=toto", filter , ctls); while (resultEnum.hasMoreElements()) { SearchResult result = resultEnum.next(); Attributes attrs = result.getAttributes(); for (NamingEnumeration ae = attrs.getAll(); ae.hasMoreElements();) { Attribute attr = (Attribute) ae.next(); String attrId = attr.getID(); for (NamingEnumeration vals = attr.getAll(); vals.hasMore();) { String thing = vals.next().toString(); System.out.println(attrId + ": " + thing); } System.out.println("--------"); } } ldapContext.close(); } catch (NamingException e) { System.out.println(e); }
Ce que je souhaite faire maintenant, c'est pour chaque uniqueMember, récupérer ses infos ( cn, mail, nom, prenom .... ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 uniqueMember: uid=C45804,ou=People,dc=toto uniqueMember: uid=J85405,ou=People,dc=toto
Après quelques recherches, j'ai l'impression que je vais devoir extraire l'uid de mes String, puis faire un lookup sur cet uid et boucler sur les attributes ?
Y'a pas un moyen plus "propre" ?
Cdlt.
Partager