2010-03-02 11 views
3

J'utilise JNDI pour l'authentification dans une application Web. Du côté d'OpenLDAP, j'utilise ppolicy pour (par exemple) bloquer le compte d'un utilisateur après trois tentatives infructueuses de connexion.Comment obtenir des erreurs spécifiques lors de l'utilisation de ppolicy dans LDAP à partir de Java en utilisant JNDI

Mon problème est que j'ai besoin des messages d'erreur spécifiques (par exemple, « compte bloqué ») pour laisser l'utilisateur de savoir quel était le problème spécifique, mais je suis en ce moment juste faire une exception lors de l'exécution:

InitialLdapContext ctx = new InitialLdapContext(env, null); 

Et le message dans l'exception est juste [LDAP: error code 49 - Invalid Credentials]. J'ai trouvé a related post qui montre un exemple de comment faire exactement cela; cependant, cela ne fait que m'embrouiller car je n'ai pas pu trouver de classes telles que PasswordExpiringResponseControl n'importe où, plus je reçois une exception tout de suite, donc je ne pourrais pas exécuter respControls = ctx.getResponseControls().

+0

Avez-vous trouvé une solution? – kukudas

Répondre

3

Cela peut être plus pénible que cela en vaut la peine, mais si vous utilisez Spring-LDAP, il convertira automatiquement ces codes d'erreur en de belles exceptions. La bibliothèque est vraiment sympa quand même et rendra votre code plus propre et plus facile à maintenir à long terme.

Si vous n'êtes pas familier avec Spring, il se peut qu'il y ait un peu de courbe d'apprentissage; Cependant, si vous ne voulez aller dans cette voie, this is a good article on it, y compris comment le configurer avec JNDI, etc

+0

J'ai également utilisé Spring LDAP. C'est génial comparé à l'écriture de code LDAP "brut". – Vinnie