Bonjour,
J'ai un petit soucis avec le login/password sous JBOSS lorsqu'on change le mot de passe d'un utlisateur dans la base de données.
Je travaille actuellement sur une application auquel je me connecte avec un formulaire de login "j_security_check". Je me connecte une première fois avec un login et pas de mot de passe. Je me déconnecte et je modifie le mot de passe de l'utilisateur dans la base de donnée. Je me reconnecte en utilisant ce login et aucun mot de passe, je peux me connecter alors que je ne devrais pouvoir me connecter qu'avec le nouveau mot de passe. Si je réessaye de me connecter avec le login et le mot de passe renseigné, je peux aussi me connecter. Par contre je ne peux plus me connecter sans mot de passe.
J'ai l'impression que jboss garde en mémoire le couple login/password. D'après ce que j'ai compris c'est l'option password-stacking="useFirstPass" qui devrait avoir cet effet, hors elle n'est pas active dans mon appli.
Ma configuration est la suivante:
-J'utilise un module de login qui hérite de UsernamePasswordLoginModule
-dans mon fichier auth.conf côté client et server j'ai
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 public class maPolicyLoginModule extends UsernamePasswordLoginModule { public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) { super.initialize(subject, callbackHandler, sharedState, options); // Interdit le cache des login/password super.useFirstPass = false; } public boolean login() throws LoginException { //vérifie que le couple login/password existe dans la base de données ... } public Group[] getRoleSets() throws LoginException { return monAppliSecurity.getMonAppliRoles(); } public String getUsersPassword() { return ""; } }- dans mon fichier login-config.xml j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 maPolicy { fr.asso.anfh.appli.security.maPolicyLoginModule required; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <application-policy name = "maPolicy"> <authentication> <login-module code = "fr.asso.anfh.maPolicy.security.maPolicyLoginModule" flag = "required"> </login-module> </authentication> </application-policy>
J'ai bien vérifié que password-stacking n'était pas actif et j'ai même rajouté useFirstPass = false; pour être sûr.
En fait le server ne passe dans mon module login que lorsqu'il ne connaît pas le couple login/password, ce qui est embêtant puisque c'est dans ce module que je vérifie le mot de passe dans la base.
Je n'est pas trouvé ce que je devais configurer pour que mon module login soit appellé dans tous les cas.
Voilà j'espère que j'ai été clair, si quelqu'un a une idée du problème merci de répondre.
Partager