Index: topia2/src/test/org/codelutin/topia/TopiaContextTest.java diff -u topia2/src/test/org/codelutin/topia/TopiaContextTest.java:1.9 topia2/src/test/org/codelutin/topia/TopiaContextTest.java:1.10 --- topia2/src/test/org/codelutin/topia/TopiaContextTest.java:1.9 Fri Jul 21 00:56:36 2006 +++ topia2/src/test/org/codelutin/topia/TopiaContextTest.java Mon Sep 18 15:53:13 2006 @@ -1,5 +1,5 @@ /* - * *##% Copyright (C) 2005 Code Lutin, Cédric Pineau, Benjamin Poussin + * *##% Copyright (C) 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 @@ -19,28 +19,20 @@ /******************************************************************************* * TopiaContextTest.java * - * Created: 28 déc. 2005 16:26:24 + * Created: 28 d?c. 2005 16:26:24 * * @author poussin * - * @version $Revision: 1.9 $ + * @version $Revision: 1.10 $ * - * Last update: $Date: 2006/07/21 00:56:36 $ by : $Author: thimel $ + * Last update: $Date: 2006/09/18 15:53:13 $ by : $Author: ruchaud $ */ package org.codelutin.topia; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.security.Principal; -import java.security.PrivilegedExceptionAction; -import java.util.HashSet; -import java.util.List; import java.util.Properties; -import java.util.Set; - -import javax.security.auth.Subject; -import javax.security.auth.login.LoginContext; import junit.framework.TestCase; @@ -56,13 +48,6 @@ import org.codelutin.topia.event.TopiaVetoableEntityLoadListener; import org.codelutin.topia.framework.TopiaContextImplementor; import org.codelutin.topia.persistence.TopiaDAO; -import org.codelutin.topia.security.TopiaCallbackHandler; -import org.codelutin.topia.security.entities.TopiaEntityPermission; -import org.codelutin.topia.security.entities.TopiaPermission; -import org.codelutin.topia.security.entities.TopiaPermissionManager; -import org.codelutin.topia.security.entities.TopiaPrincipal; -import org.codelutin.topia.security.entities.TopiaUser; -import org.codelutin.topia.security.entities.TopiaUserManager; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; @@ -75,7 +60,7 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(TopiaContextTest.class); - protected String entitiesList = Person.class.getName() + "," + TopiaUser.class.getName() + "," + TopiaEntityPermission.class.getName(); + protected String entitiesList = Person.class.getName(); protected Properties getPostgreSQLProperties() { Properties config = new Properties(); @@ -120,7 +105,7 @@ } protected Properties getProperties() { - return getPostgreSQLProperties(); + return getDerbyProperties(); } /* @@ -447,154 +432,6 @@ assertEquals("entityUpdated", state); } - public void testSecurityUser() throws Exception { - Properties config = getProperties(); - - config.setProperty("topia.authentication", "topia"); - - TopiaContext context = TopiaContextFactory.getContext(config); - - TopiaContextImplementor childContext = (TopiaContextImplementor) context - .beginTransaction(); - - TopiaUserManager userManager = childContext.getUserManager(); - - { - // Ma naissance - TopiaUser user = userManager.create("thimel", "a.thimel@gmail.com", - "zoubida"); - assertEquals("thimel", user.getLogin()); - assertEquals("a.thimel@gmail.com", user.getEmail()); - assertTrue(user.isCorrectPassord("zoubida")); - - // Mon arrivée à Code Lutin - user.setEmail("thimel@codelutin.com"); - user.setPassword("zoubida", "zou;bi@da"); - userManager.update(user); - - assertEquals("thimel", user.getLogin()); - assertEquals("thimel@codelutin.com", user.getEmail()); - assertFalse(user.isCorrectPassord("zoubida")); - assertTrue(user.isCorrectPassord("zou;bi@da")); - - // Suis-je toujours là ? - user = userManager.findUserByLogin("thimel"); - assertEquals("thimel", user.getLogin()); - assertEquals("thimel@codelutin.com", user.getEmail()); - assertTrue(user.isCorrectPassord("zou;bi@da")); - - List users = userManager - .findUserByEmail("thimel@codelutin.com"); - assertEquals(1, users.size()); - users = userManager.findUserByEmail("a.thimel@gmail.com"); - assertEquals(0, users.size()); - - Set principals = null; - try { - principals = userManager.authenticate("thimel", "zou;bi@da"); - assertNotNull(principals); - assertTrue(principals.size() > 0); - } catch (Exception eee) { - eee.printStackTrace(); - assertTrue(false); - } - - principals = null; - try { - principals = userManager.authenticate("thimel", "zimzoum"); - assertTrue(false); - } catch (Exception eee) { - eee.printStackTrace(); - } - assertNull(principals); - - // The end ? - // userManager.delete(user); - // users = userManager.findUserByEmail("thimel@codelutin.com"); - // assertEquals(0, users.size()); - - childContext.commitTransaction(); - } - - System.gc(); - - List users = userManager - .findUserByEmail("thimel@codelutin.com"); - assertEquals(1, users.size()); - } - - public void testSecurityCreateInitialPerm() throws Exception { - Properties config = getProperties(); - - config.setProperty("topia.authentication", "topia"); - - TopiaContext context = TopiaContextFactory.getContext(config); - - final TopiaContextImplementor childContext = (TopiaContextImplementor)context - .beginTransaction(); - - LoginContext ctx = new LoginContext("topia", new TopiaCallbackHandler( - "thimel", "zou;bi@da")); - ctx.login(); - - Subject me = ctx.getSubject(); - - Subject.doAsPrivileged(me, new PrivilegedExceptionAction() { - public Object run() throws Exception { - TopiaPermissionManager permManager = - childContext.getPermissionManager(); - Set principals = new HashSet(); - principals.add(new TopiaPrincipal("thimel")); - permManager.create("*", 15, principals); - childContext.commitTransaction(); - return null; - } - },null); - } - - public void testSecurityPermissions() throws Exception { - Properties config = getProperties(); - - config.setProperty("topia.authentication", "topia"); - - TopiaContext context = TopiaContextFactory.getContext(config); - - final TopiaContextImplementor childContext = (TopiaContextImplementor) context - .beginTransaction(); - - LoginContext ctx = new LoginContext("topia", new TopiaCallbackHandler( - "thimel", "zou;bi@da")); - ctx.login(); - - Subject me = ctx.getSubject(); - - Subject.doAsPrivileged(me, new PrivilegedExceptionAction() { - - public Object run() throws Exception { - TopiaPermissionManager permManager = childContext - .getPermissionManager(); - - TopiaPermission perm1 = permManager.create("abcd1234", 8, - new HashSet()); - assertEquals(2, permManager.getAllPermissions().size()); - - TopiaPermission perm2 = permManager.create("abcd1s34", 10, - new HashSet()); - assertEquals(3, permManager.getAllPermissions().size()); - - permManager.delete(perm2); - assertEquals(2, permManager.getAllPermissions().size()); - -// assertEquals(perm1, permManager.getAllPermissions() -// .iterator().next()); - childContext.commitTransaction(); - return null; - } - - }, null); - - } - public void testProjection() throws Exception { Properties config = getProperties();