Index: topia-security/src/java/org/codelutin/topia/security/TopiaSecurityManagerImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/TopiaSecurityManagerImpl.java:1.3 topia-security/src/java/org/codelutin/topia/security/TopiaSecurityManagerImpl.java:1.4 --- topia-security/src/java/org/codelutin/topia/security/TopiaSecurityManagerImpl.java:1.3 Thu Sep 14 13:41:59 2006 +++ topia-security/src/java/org/codelutin/topia/security/TopiaSecurityManagerImpl.java Mon Sep 18 15:49:25 2006 @@ -20,6 +20,8 @@ package org.codelutin.topia.security; +import static org.codelutin.topia.security.TopiaSecurityUtil.TOPIA_SECURITY_PERSISTENCE_CLASSES; + import javax.security.auth.login.Configuration; import org.apache.commons.logging.Log; @@ -42,9 +44,9 @@ private TopiaContext rootContext; private TopiaContext securityContext; - public TopiaSecurityManagerImpl(TopiaContext context) throws TopiaException { + public TopiaSecurityManagerImpl(TopiaContext context) { this.rootContext = context; - securityContext = context.beginTransaction(); + this.securityContext = null; } /* @@ -62,81 +64,71 @@ /* * (non-Javadoc) - * @see org.codelutin.topia.security.TopiaSecurityManager#getTopiaSecurityContext() + * @see org.codelutin.topia.security.TopiaSecurityManager#getSecurityContext() */ - public TopiaContext getTopiaSecurityContext() { + public TopiaContext getSecurityContext() throws TopiaException { + if(securityContext == null) { + securityContext = rootContext.beginTransaction(); + } return securityContext; } - /* (non-Javadoc) - * @see org.codelutin.topia.security.TopiaSecurityManagerInterface#getTopiaUserDAO() + /* + * (non-Javadoc) + * @see org.codelutin.topia.security.TopiaSecurityManager#getPersistenceClasses() */ + public String getPersistenceClasses() { + return TOPIA_SECURITY_PERSISTENCE_CLASSES; + } + public TopiaUserDAO getTopiaUserDAO() { try { - return TopiaSecurityDAOHelper.getTopiaUserDAO(securityContext); + return TopiaSecurityDAOHelper.getTopiaUserDAO(getSecurityContext()); } catch (TopiaException te) { log.error("Recuperation du TopiaUserDAO impossible", te); } return null; } - /* (non-Javadoc) - * @see org.codelutin.topia.security.TopiaSecurityManagerInterface#getTopiaGroupDAO() - */ public TopiaGroupDAO getTopiaGroupDAO() { try { - return TopiaSecurityDAOHelper.getTopiaGroupDAO(securityContext); + return TopiaSecurityDAOHelper.getTopiaGroupDAO(getSecurityContext()); } catch (TopiaException te) { log.error("Recuperation du TopiaGroupDAO impossible", te); } return null; } - /* (non-Javadoc) - * @see org.codelutin.topia.security.TopiaSecurityManagerInterface#getTopiaAuthorizationDAO() - */ public TopiaAuthorizationDAO getTopiaAuthorizationDAO() { try { - return TopiaSecurityDAOHelper.getTopiaAuthorizationDAO(securityContext); + return TopiaSecurityDAOHelper.getTopiaAuthorizationDAO(getSecurityContext()); } catch (TopiaException te) { log.error("Recuperation du TopiaAuthorizationDAO impossible", te); } return null; } - /* - * (non-Javadoc) - * @see org.codelutin.topia.security.TopiaSecurityManager#getTopiaEntityAuthorizationDAO() - */ public TopiaEntityAuthorizationDAO getTopiaEntityAuthorizationDAO() { try { - return TopiaSecurityDAOHelper.getTopiaEntityAuthorizationDAO(securityContext); + return TopiaSecurityDAOHelper.getTopiaEntityAuthorizationDAO(getSecurityContext()); } catch (TopiaException te) { log.error("Recuperation du TopiaEntityAuthorizationDAO impossible", te); } return null; } - /* - * (non-Javadoc) - * @see org.codelutin.topia.security.TopiaSecurityManager#getTopiaLinkAuthorizationDAO() - */ public TopiaLinkAuthorizationDAO getTopiaLinkAuthorizationDAO() { try { - return TopiaSecurityDAOHelper.getTopiaLinkAuthorizationDAO(securityContext); + return TopiaSecurityDAOHelper.getTopiaLinkAuthorizationDAO(getSecurityContext()); } catch (TopiaException te) { log.error("Recuperation du TopiaLinkAuthorizationDAO impossible", te); } return null; } - /* - * (non-Javadoc) - * @see org.codelutin.topia.security.TopiaSecurityManager#getTopiaAssociationAuthorizationDAO() - */ public TopiaAssociationAuthorizationDAO getTopiaAssociationAuthorizationDAO() { try { - return TopiaSecurityDAOHelper.getTopiaAssociationAuthorizationDAO(securityContext); + return TopiaSecurityDAOHelper.getTopiaAssociationAuthorizationDAO(getSecurityContext()); } catch (TopiaException te) { log.error("Recuperation du TopiaAssociationAuthorizationDAO impossible", te); } Index: topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java diff -u topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java:1.5 topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java:1.6 --- topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java:1.5 Fri Sep 15 16:12:05 2006 +++ topia-security/src/java/org/codelutin/topia/security/TopiaSecurityUtil.java Mon Sep 18 15:49:25 2006 @@ -24,9 +24,9 @@ * Created: 15 févr. 2006 * * @author Arnaud Thimel -* @version $Revision: 1.5 $ +* @version $Revision: 1.6 $ * -* Mise a jour: $Date: 2006/09/15 16:12:05 $ +* Mise a jour: $Date: 2006/09/18 15:49:25 $ * par : $Author: ruchaud $ */ @@ -60,10 +60,11 @@ public static final String TOPIA_LOGIN_MODULE = TopiaLoginModule.class.getName(); + public static final String TOPIA_SECURITY_PERSISTENCE_CLASSES = "org.codelutin.topia.security.entities.user.TopiaUserImpl,org.codelutin.topia.security.entities.authorization.TopiaEntityAuthorizationImpl,org.codelutin.topia.security.entities.user.TopiaGroupImpl,org.codelutin.topia.security.entities.authorization.TopiaLinkAuthorizationImpl,org.codelutin.topia.security.entities.authorization.TopiaAssociationAuthorizationImpl,org.codelutin.topia.security.entities.authorization.TopiaAuthorizationImpl"; + public static String hash(String msg) { return digestSHAHex(msg); } - /** * Applique un algorithme de hashage sur la chaine de caratère passée en