Index: topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java diff -u topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java:1.1 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java:1.2 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java:1.1 Wed Sep 13 08:45:10 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java Wed Sep 13 14:26:18 2006 @@ -24,16 +24,19 @@ * Created: 15 févr. 2006 * * @author Arnaud Thimel -* @version $Revision: 1.1 $ +* @version $Revision: 1.2 $ * -* Mise a jour: $Date: 2006/09/13 08:45:10 $ +* Mise a jour: $Date: 2006/09/13 14:26:18 $ * par : $Author: ruchaud $ */ package org.codelutin.topia.security.jaas; +import static org.codelutin.topia.security.TopiaSecurityUtil.SECURITY_MANAGER_KEY; + import java.security.Principal; +import java.util.Collection; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -49,15 +52,11 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codelutin.topia.TopiaException; -import org.codelutin.topia.framework.TopiaContextImplementor; import org.codelutin.topia.security.TopiaSecurityManager; import org.codelutin.topia.security.entities.TopiaPrincipal; import org.codelutin.topia.security.entities.user.TopiaGroup; import org.codelutin.topia.security.entities.user.TopiaUser; import org.codelutin.topia.security.entities.user.TopiaUserDAO; -import static org.codelutin.topia.security.TopiaSecurityUtil.hash; - -import static org.codelutin.topia.security.TopiaSecurityUtil.SECURITY_MANAGER_KEY; public class TopiaLoginModule extends Object implements LoginModule { @@ -65,7 +64,6 @@ private Subject subject; private CallbackHandler callbackHandler; - private boolean loginSuccess; private Set principals; private TopiaSecurityManager securityManager; @@ -137,17 +135,20 @@ throw le; } - if(user != null && user.isCorrectPassword(hash(password))) { + if(user != null && user.isCorrectPassword(password)) { // Récupération des principals principals = new HashSet(); - principals.add(new TopiaPrincipal(user.getLogin())); - for(TopiaGroup group : user.getGroup()) { - principals.add(new TopiaPrincipal(group.getName())); + principals.add(new TopiaPrincipal(user.getTopiaId())); + Collection groups = user.getTopiaGroup(); + if(groups != null) { + for(TopiaGroup group : groups) { + principals.add(new TopiaPrincipal(group.getTopiaId())); + } } } else { // Echec d'authentification principals = null; - throw new LoginException("Erreur lors de l'authentification" + login); + throw new LoginException("Erreur lors de l'authentification " + login); } return true; @@ -157,9 +158,7 @@ * @see javax.security.auth.spi.LoginModule#commit() */ public boolean commit() throws LoginException { - if (loginSuccess) { - subject.getPrincipals().addAll(principals); - } + subject.getPrincipals().addAll(principals); return true; } @@ -177,7 +176,6 @@ public boolean logout() throws LoginException { //On libère les ressources subject.getPrincipals().remove(principals); - loginSuccess = false; subject = null; principals.clear(); principals = null;