2009-10-17 8 views
2

Un utilisateur accède à une application Web restreinte avec JAAS (sur Glassfish 2.1). LDAPRealm est utilisé et l'authentification est effectuée avec succès à partir de LDAP. Une politique de mot de passe devrait être installée pour les utilisateurs, afin qu'ils soient obligés de changer les mots de passe, avoir des mots de passe d'une certaine complexité/longueur, des échecs de mot de passe et N derniers mots de passe devraient être vérifiés. La politique de mot de passe du serveur LDAP utilisé (OpenDS) supporte tout cela, mais il n'est pas du tout évident de recevoir ce type d'informations dans la connexion JAAS FORM que nous utilisons, de sorte que l'information ("Veuillez changer votre mot de passe") peut être affiché à l'utilisateur.Stratégie de mot de passe JAAS avec LDAP

Avez-vous des idées sur la façon de mettre en œuvre cela? Utiliser uniquement la base de données n'est pas une option, les utilisateurs doivent être dans LDAP. Ce qui n'est pas évident, c'est de savoir si vous devez utiliser les politiques de mot de passe LDAP ou si elles ont toutes été programmées dans notre application Web. Je voudrais éviter cela et utiliser les politiques de mot de passe natives de LDAP.

Merci pour les réponses et meilleures salutations, Bozo

Répondre

1

Malheureusement, ce que vous pouvez faire en utilisant JAAS est une sorte de contrainte à un petit ensemble d'opérations que tout système de connexion peut prendre en charge. Bien que LDAP prenne en charge une stratégie de mot de passe, les autres systèmes de connexion (par exemple, les fichiers de clés) peuvent ne pas l'être, de sorte que JAAS ne peut pas avoir le code qui le requiert. Par conséquent, vous devrez parler directement au serveur LDAP à l'aide de JNDI ou éventuellement du this library from Novell.

+0

Bonjour Zarkonnen - Dois-je être en mesure d'écrire un module de connexion JAAS personnalisé, celui qui va attraper l'exception envoyée par LDAP et faire la logique appropriée à l'utilisateur? – bozo

+0

, c'est-à-dire en utilisant quelque chose comme ceci: http://stuffthathappens.com/blog/2008/05/16/writing-a-custom-jaas-loginmodule/. – bozo

+0

Cette réponse est tout simplement fausse. Vous pouvez programmer votre propre module de connexion JAAS pour effectuer toutes les opérations LDAP que vous souhaitez, y compris les opérations de stratégie de mot de passe étendues. J'ai fait exactement cela. @bozo – EJP

0

Vous l'avez. Avoir à utiliser un SAM, puisque vous ne pouvez pas recevoir LoginException (en raison d'un échec de connexion) dans les mécanismes d'authentification existants dans Glassfish. La réponse est ici: How to override j_security_check in glassfish?

Questions connexes