bonjour,
je débute en jsp et l'on m'a demandé de récupérer des informations d'un LDAP tels que le nom d'utilisateur et le password d'une entrée de ce LDAP.
j'utilise donc l'API JNDI pour interagir avec mon annuaire LDAP (au passage, j'utilise OpenDS).
je récupère donc aisément l'uid de l'utilisateur (en string) mais je n'arrive pas a récupérer le password car il est bien évidemment crypté !!!!!!
j'ai donc deux questions :
-si jamais quelqu'un sait, quel est l'algo de cryptage par défaut de OpenDS (je sais qu'on peut le choisir mais je ne sais pas lequel est par défaut)
-si l'on suppose que je sais quel algo est utilisé, comment décrypter ce mot de passe et le rendre lisible et affichable ?
--Question subsidiaire : si jamais c'est pas possible, ou non sécurisé, comment crypter alors le mot de passe en clair pour pouvoir le comparer avec le mot de passe crypté (toujours en sachant l'algo utilisé) ????
mon morceau de code des fois que ça aiderait :
le e.getMessage() ==> null
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 try { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, CONTEXT); env.put(Context.PROVIDER_URL, HOST); DirContext ctx = new InitialDirContext(env); SearchControls sc = new SearchControls(); sc.setSearchScope(SearchControls.SUBTREE_SCOPE); NamingEnumeration items = ctx.search(BASE, filter, sc); SearchResult sr = (SearchResult)items.next(); Attributes attrs = sr.getAttributes(); Attribute resUID=attrs.get("UID"); String res=(String)resUID.get(); Attribute resMDP=attrs.get("userPassword"); String res2=(String)resMDP.get(); out.println("Login : "+res+"\nMot de Passe : "+res2.toString()+"\n"); //test pour voir s'ils sont corrects } catch(Exception e) { out.println(e.getMessage()); out.println(e.getStackTrace()); }
le e.getStackTrace ==> [Ljava.lang.StackTraceElement;@1ba8574
merci d'avance de votre aide !
Partager