Index: topia-security/src/java/org/codelutin/topia/security/jaas/TopiaConfiguration.java diff -u topia-security/src/java/org/codelutin/topia/security/jaas/TopiaConfiguration.java:1.1 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaConfiguration.java:1.2 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaConfiguration.java:1.1 Wed Sep 13 08:45:10 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaConfiguration.java Mon Sep 25 13:24:40 2006 @@ -24,16 +24,16 @@ * Created: 20 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/25 13:24:40 $ * par : $Author: ruchaud $ */ package org.codelutin.topia.security.jaas; -import static org.codelutin.topia.security.TopiaSecurityUtil.SECURITY_MANAGER_KEY; -import static org.codelutin.topia.security.TopiaSecurityUtil.TOPIA_LOGIN_MODULE; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.SECURITY_MANAGER_KEY; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.TOPIA_LOGIN_MODULE; import java.util.HashMap; import java.util.Map; @@ -43,6 +43,11 @@ import org.codelutin.topia.security.TopiaSecurityManager; +/** + * Classe permettant de passer des paramètres entre le LoginModule et le + * CallbackHandler. Ici on passe le SecurityManager. + * @author ruchaud + */ public class TopiaConfiguration extends Configuration { private Map appConfEntries; Index: topia-security/src/java/org/codelutin/topia/security/jaas/TopiaCallbackHandler.java diff -u topia-security/src/java/org/codelutin/topia/security/jaas/TopiaCallbackHandler.java:1.1 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaCallbackHandler.java:1.2 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaCallbackHandler.java:1.1 Wed Sep 13 08:45:10 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaCallbackHandler.java Mon Sep 25 13:24:40 2006 @@ -24,9 +24,9 @@ * Created: 20 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/25 13:24:40 $ * par : $Author: ruchaud $ */ @@ -40,6 +40,10 @@ import javax.security.auth.callback.PasswordCallback; import javax.security.auth.callback.UnsupportedCallbackException; +/** + * Classe permettant l'interfaçage entre l'application et la sécurité. + * @author ruchaud + */ public class TopiaCallbackHandler implements CallbackHandler { private String username; @@ -47,8 +51,9 @@ private String password; /** - * @param username - * @param password + * Contructeur + * @param username login de l'utilisateur + * @param password mot de passe de l'utilisateur */ public TopiaCallbackHandler(String username, String password) { super(); Index: topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipal.java diff -u topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipal.java:1.1 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipal.java:1.2 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipal.java:1.1 Wed Sep 13 08:45:10 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipal.java Mon Sep 25 13:24:40 2006 @@ -24,9 +24,9 @@ * 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/25 13:24:40 $ * par : $Author: ruchaud $ */ @@ -34,10 +34,18 @@ import java.security.Principal; +/** + * Implantation des principals de JAAS. + * @author ruchaud + */ public class TopiaPrincipal implements Principal { protected String name; + /** + * Contructeur avec comme paramètre le nom du principal. + * @param name topiaId d'un group ou d'utilisateur + */ public TopiaPrincipal(String name) { this.name = name; } 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.5 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java:1.6 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java:1.5 Mon Sep 18 15:49:25 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java Mon Sep 25 13:24:40 2006 @@ -24,16 +24,15 @@ * Created: 15 févr. 2006 * * @author Arnaud Thimel -* @version $Revision: 1.5 $ +* @version $Revision: 1.6 $ * -* Mise a jour: $Date: 2006/09/18 15:49:25 $ +* Mise a jour: $Date: 2006/09/25 13:24:40 $ * par : $Author: ruchaud $ */ - package org.codelutin.topia.security.jaas; -import static org.codelutin.topia.security.TopiaSecurityUtil.SECURITY_MANAGER_KEY; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.SECURITY_MANAGER_KEY; import java.security.Principal; import java.util.Collection; @@ -58,7 +57,11 @@ import org.codelutin.topia.security.entities.user.TopiaUser; import org.codelutin.topia.security.entities.user.TopiaUserDAO; -public class TopiaLoginModule extends Object implements LoginModule { +/** + * LoginModule permettant l'authentification d'un utilisateur au près du système. + * @author ruchaud + */ +public class TopiaLoginModule implements LoginModule { private Log log = LogFactory.getLog(TopiaLoginModule.class); @@ -135,7 +138,7 @@ throw le; } - if(user != null && user.isCorrectPassword(password)) { + if(user != null && user.checkPassword(password)) { // Récupération des principals principals = new HashSet(); principals.add(new org.codelutin.topia.security.jaas.TopiaPrincipal(user.getTopiaId())); Index: topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipalMap.java diff -u topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipalMap.java:1.1 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipalMap.java:1.2 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipalMap.java:1.1 Thu Sep 21 13:22:14 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPrincipalMap.java Mon Sep 25 13:24:40 2006 @@ -1,3 +1,23 @@ +/* *##% +* Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, +* Cédric Pineau, Benjamin Poussin, +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*##%*/ + package org.codelutin.topia.security.jaas; import java.security.Principal; @@ -6,20 +26,37 @@ import java.util.Set; import java.util.StringTokenizer; +/** + * Classe permettant la manipulation des principals sous forme d'une map pour plus + * de performance. + * @author ruchaud + */ public class TopiaPrincipalMap extends HashMap> { private static final long serialVersionUID = 1L; + /** + * Contructeur de base + */ public TopiaPrincipalMap() { super(); } + /** + * Permet d'ajouter un ensemble de principals dans la map. + * @param principals ensemble des principals à ajouter + */ public void add(Set principals) { for (Principal principal : principals) { add(principal.getClass().getName(), principal.getName()); } } + /** + * Permet d'ajouter un principal sous la forme d'une chaine de caractère dans + * la map. + * @param principals chaine de caractères du principals à ajouter + */ public void add(String principals) { principals = principals.replaceAll(" +", " ");// Un seul espace quand il y en a plusieurs StringTokenizer tok = new StringTokenizer(principals, " ", false); @@ -30,6 +67,11 @@ } + /** + * Helper pour les méthodes d'ajout. + * @param principalClass classe du principals + * @param principalName le nom du principal + */ protected void add(String principalClass, String principalName) { Set names = (Set) get(principalClass); if (names == null) { Index: topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPolicy.java diff -u topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPolicy.java:1.6 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPolicy.java:1.7 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPolicy.java:1.6 Mon Sep 18 15:49:25 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPolicy.java Mon Sep 25 13:24:40 2006 @@ -24,9 +24,9 @@ * Created: 17 févr. 2006 * * @author Arnaud Thimel - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * - * Mise a jour: $Date: 2006/09/18 15:49:25 $ + * Mise a jour: $Date: 2006/09/25 13:24:40 $ * par : $Author: ruchaud $ */ @@ -49,6 +49,10 @@ import org.codelutin.topia.security.entities.authorization.TopiaAuthorization; import org.codelutin.topia.security.entities.authorization.TopiaAuthorizationDAO; +/** + * Implantation d'un policy avec une prise en compte des permissions à la volée. + * @author ruchaud + */ public class TopiaPolicy extends Policy { private Log log = LogFactory.getLog(TopiaPolicy.class); @@ -76,8 +80,7 @@ /** * Remplace la Policy parente - * @param parentPolicy - * la nouvelle Policy parente + * @param parentPolicy la nouvelle Policy parente */ public void setParentPolicy(Policy parentPolicy) { this.parentPolicy = parentPolicy; Index: topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPermission.java diff -u topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPermission.java:1.4 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPermission.java:1.5 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPermission.java:1.4 Fri Sep 15 16:12:05 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaPermission.java Mon Sep 25 13:24:40 2006 @@ -24,20 +24,25 @@ * Created: 16 févr. 2006 * * @author Arnaud Thimel -* @version $Revision: 1.4 $ +* @version $Revision: 1.5 $ * -* Mise a jour: $Date: 2006/09/15 16:12:05 $ +* Mise a jour: $Date: 2006/09/25 13:24:40 $ * par : $Author: ruchaud $ */ - package org.codelutin.topia.security.jaas; import java.security.Permission; -import static org.codelutin.topia.security.TopiaSecurityUtil.*; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.*; + import org.codelutin.topia.security.entities.authorization.TopiaAuthorization; +/** + * Classe permettant d'encapsuler les autorisations et de déléguer le travail aux + * autorisations. + * @author ruchaud + */ public class TopiaPermission extends Permission { private static final long serialVersionUID = 1L; @@ -49,6 +54,10 @@ this.authorization = authorization; } + /* + * (non-Javadoc) + * @see java.security.Permission#implies(java.security.Permission) + */ @Override public boolean implies(Permission permission) { if (permission == null) @@ -59,6 +68,10 @@ return authorization.implies(other.getAuthorization()); } + /* + * (non-Javadoc) + * @see java.security.Permission#equals(java.lang.Object) + */ @Override public boolean equals(Object obj) { if (obj == null) @@ -71,11 +84,19 @@ return (this.implies(that) && that.implies(this)); } + /* + * (non-Javadoc) + * @see java.security.Permission#hashCode() + */ @Override public int hashCode() { return authorization.hashCode(); } + /* + * (non-Javadoc) + * @see java.security.Permission#getActions() + */ @Override public String getActions() { return actionsInt2String(authorization.getActions());