Bonjour,

J'ai écrit une méthode qui permet d'afficher la description et les groupes auxquels l'uid connecté appartient :
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
 
public void printGroups (String roleBase, String roleSubtree, String roleSearch, String roleName, String uid, String dn)
  throws ch.ldap.ClientLDAPException {
    try {
      // Créer le contrôle de recherche
      SearchControls searchCtls = new SearchControls();
      // Spécifier le search scope
      int numberScope = getNumberScope (roleSubtree);
      searchCtls.setSearchScope (numberScope);
      // Spécifier la base de la recherche
      String searchBase = roleBase;
      // Spécifier le filtre de recherche LDAP
      String searchFilter = roleSearch;
      // Spécifier les attributs à retourner
      String returnedAttrs[]=roleName.split(", ");
      searchCtls.setReturningAttributes(returnedAttrs);
      // Rechercher les objets utilisant le filtre
      NamingEnumeration answer = ctx.search(searchBase, searchFilter, searchCtls);
      // Parcourir et afficher les résultats de la recherche
      while (answer.hasMoreElements()) {
        SearchResult sr = (SearchResult)answer.next();
        System.out.println (sr);
        // Afficher les groupes
        Attributes attrs = sr.getAttributes();
        if (attrs != null) {
          try {
            NamingEnumeration ae = attrs.getAll();
            while (ae.hasMore()) {
               Attribute attr = (Attribute)ae.next();
               System.out.println (attr.getID() + " : ");
	       NamingEnumeration e = attr.getAll();
               while (e.hasMore()) {
               System.out.println("       " + e.next());
	      }
            }
          }
	  catch (NamingException e) {
            throw new ch.esnig.ldap.ClientLDAPException("Error : Listage des groupes! (printGroups)", e );
	  }
        }
      }
    }
    catch (javax.naming.NamingException ex) {
      throw new ch.esnig.ldap.ClientLDAPException("Error : Recherche du directory! (printGroups)", ex );
    }
  }
Les valeurs des paramètres de cette méthode sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
dn=uid={0}, ou=personne, dc=ecole, dc=ch
 
roleBase=ou=groupeTomcat, dc=ecole, dc=ch
roleSubtree=SUBTREE_SCOPE
roleSearch=(&(objectClass=groupOfUniqueNames)(uniqueMember=uid={0}, ou=personne, dc=ecole, dc=ch))
roleName=cn, description
Voici ce que ma méthode affiche :
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
 
cn=manager: null:null:{description=description: Groupe Manager, cn=cn: manager}
description :
       Groupe Manager
cn :
       manager
cn=tomcat: null:null:{description=description: Groupe Tomcat, cn=cn: tomcat}
description :
       Groupe Tomcat
cn :
       tomcat
cn=webdav_rw: null:null:{cn=cn: webdav_rw}
cn :
       webdav_rw
cn=wacasable-user: null:null:{cn=cn: wacasable-user}
cn :
       wacasable-user
Le problème est que je ne veux pas que ma méthode affiche les lignes qui ressemble à :
  • cn=wacasable-user: null:null:{cn=cn: wacasable-user}


Mais je ne vois pas trop comment faire.

Est-ce que quelqu'un pourrait m'aider SVP ?

Merci d'avance.

PS : désolée pour la longueur du message!