Bonjour,
J'aimerais afficher le dn de l'utilisateur connecté en parcourant l'arborescence.
Est-ce que quelqu'un pourrait m'aider SVP?
Merci d'avance.
Version imprimable
Bonjour,
J'aimerais afficher le dn de l'utilisateur connecté en parcourant l'arborescence.
Est-ce que quelqu'un pourrait m'aider SVP?
Merci d'avance.
Salut,
cela sera plus pratique. :P .....
bon moi personnellement je n'utilise pas JNDI mais la classe Novell (plus pratique)
1) La recherche ne dois pas posé de problème : Le scope SearchControls.SUBTREE_SCOPE permet une recherche sur l'annuaire.
2) Tu pose un filtre sur la clé d'unicité de ton user (exple: uid=TOTO)
3) la méthode getNameInNamespace(); devrait normalement te renvoyer le DN
Salut beegood.
Effectivement c'est plus pratique sur le forum.
Je vais essayer de reconstituer le dn d'après tes informations.
Par contre, j'ai un petit soucis avec mon enum. Peut-être que tu pourras m'aider...
Voilà ce que j'ai codé :
Le problème est que le paramètre de ma méthode getNumberScope est de type Scope et que ma variable qui se trouve dans mon fichier Properties est de type String.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public enum Scope { OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE; } public int getNumberScope (Scope scope) { int value = 0; switch (scope) { case OBJECT_SCOPE: value = 0; break; case ONELEVEL_SCOPE: value = 1; break; case SUBTREE_SCOPE: value = 2; break; } return value; }
Y'a-t'il moyen de faire une conversion ?
Je t'ai donné la solution
Avec ce code jowo j'obtiens toujours la même erreur...
Je comprends bien qu'il réclame une } mais mon but de cet enum est qu'il prenne également les autres lignes en compte.Code:
1
2
3 .\src\ch\ldap\ClientLDAP.java:131: '}' expected OBJECT setSearchScope.OBJECT_SCOPE,
Pour être plus précise, lorsque je compile :
J'obtiens l'erreur suivante :Code:
1
2
3
4
5
6 public enum Scope { OBJECT setSearchScope.OBJECT_SCOPE, ONELEVEL setSearchScope.OBJECT_SCOPE, SUBTREE setSearchScope.SUBTREE_SCOPE }
Merci d'avance!Code:
1
2
3 \src\ch\ldap\ClientLDAP.java:131: '}' expected OBJECT setSearchScope.OBJECT_SCOPE,
essaie avec
si ça ne compile pasCode:
1
2
3
4
5
6 public enum Scope { OBJECT 0, ONELEVEL 1, SUBTREE 2 }
essaie avecCode:
1
2
3
4
5
6 public enum Scope { OBJECT, ONELEVEL, SUBTREE }
Pendant ce temps, je vais appendre à coder des enumes en Java.... :wink: [/code]
salut,
désolé j'ai du partir en réunion .....
as tu récupéré le DN ?
Pas de problème beegood.
Merci jowo pour tes infos. Le seul enum qui passe la compilation est celui-là :
Code:
1
2
3
4
5
6 public enum Scope { OBJECT, ONELEVEL, SUBTREE }
Pas de problème beegood.
Je ne me suis pas encore occupée de ce dn.
J'ai un problème avec un enum que j'aimerais résoudre avant de chercher le dn.
Merci beaucoup de ton aide beegood. Ca fonctionne maintenant très bien.
:D
code sans garantie:
Bon chance et surtout tiens bon :wink:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 publisc enum Scope { OBJECT(setSearchScope.OBJECT_SCOPE), ONELEVEL(setSearchScope.OBJECT_SCOPE), SUBTREE(setSearchScope.SUBTREE_SCOPE); Scope(int scopeLevel) { this.scopeLevel = scopeLevel; } private final int scopeLevel; public int scopeLevel() { return scopeLevel; } /* Exemple d'usage */ String roleParam = "SUBTREE"; Scope role = Scole.valueOf(roleParam); searchCtls.setSearchScope (role.scopeLevel());
question, ne faut il pas être en java 1.5 pour utiliser le type enum ?
oui, beegood, il faut être en Java 1.5 pour utiliser enum.
Sauf ereur, sangei est en Java 1.5.
Oui oui je travaille bien avec Java 1.5
Petite question jowo. Tu viens de me fournir très aimablement un code et moi quand j'utilise celui là
Ca marche aussi.Code:
1
2
3
4
5
6
7
8
9
10 private enum Scope { OBJECT, ONELEVEL, SUBTREE } String roleParam = roleSubtree; Scope role = Scope.valueOf(roleParam); searchCtls.setSearchScope (role.ordinal());
Quelle solution est la meilleure ?
Si mon dernier code fonctionne, je l'utiliserai de préférence car il initialise correctement les valeurs de scope.
La première solution s'appuie sur la valeur "cardinale" (pas sûr du terme) de l'énumération (premier terme vaut 0, deuxième vaut 1, etc...).
Merci jowo. Je vais essayer ton nouveau code.
J'ai quelques petits soucis avec le getNameInNamespace()
J'ai mis en place le filtre, la base de recherche et le scope, mais après je ne sais pas trop comment faire pour retrouver mon dn...
Est-ce qu'une bonne âme pourrait m'aider SVP?Code:
1
2
3
4
5
6
7
8
9
10
11 public void getDn () throws ch.ldap.ClientLDAPException { try { SearchControls searchCtls = new SearchControls(); searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); String searchBase = "dc=ecole, dc=ch"; String searchFilter = "(&(uid=dupont))"; NamingEnumeration answer = ctx.search (searchBase, searchFilter, searchCtls); String name = ctx.getNameInNamespace();
Merci d'avance.
Salut,
tu récuperes quoi au juste avec lString name = ctx.getNameInNamespace();
?
quel est ton soucis ?
Merci
Salut beegood,
Comment vas-tu?
En fait, je ne sais pas trop ce que je récupère avec String name = ctx.getNameInNamespace();
Mon soucis est que je ne sais pas trop comment utiliser cette méthode getNameInNamespace :roll: