Comment vérifier le mot de passe de l'utilisateur dans ldap whith java avec LdapContext donné?

J'ai une application web, où les utilisateurs doivent se connecter. Le mot de passe est stocké dans un serveur LDAP. Toutes les informations sur le serveur LDAP sont stockées dans le serveur d'application (glassfish) comme externes ressource jndi. Donc, ma demande n'est pas de savoir quelque chose sur le serveur LDAP et obtient seulement une LdapContext comme ceci:

@Resource(name = "ldap/users")
private LdapContext ctx;

Dans ce contexte, il est facile de modifier ou de lire les informations stockées pour les utilisateurs, mais comment puis-je vérifier leurs mots de passe?
Normalement, je voudrais juste faire une nouvelle connexion pour vérifier un mot de passe des utilisateurs. Comme ceci:

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");

env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=S. User, ou=NewHires, o=JNDITutorial");
env.put(Context.SECURITY_CREDENTIALS, "mysecret");

DirContext ctx = new InitialDirContext(env);

Mais depuis je ne sais pas ce paramètres, je ne peux pas faire ça. Alors, comment puis-je vérifier si le mot de passe d'un utilisateur est correct avec mon LdapContext?
Les mots de passe sont stockées sous forme cryptée (asis) donc je ne peux pas il suffit de comparer les attributs.

Merci
Raffael

source d'informationauteur raffael