Author: gk
Date: Wed Apr 26 14:36:57 2017
New Revision: 1792752
URL: http://svn.apache.org/viewvc?rev=1792752&view=rev
Log:
- Update commons to 2.6 in api, using commons lang3 for serializing test in
memory
- Use serializable where needed in ACL
- Update changes.xml (including 12th April commit)
Added:
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
(with props)
Modified:
turbine/fulcrum/trunk/security/api/pom.xml
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java
turbine/fulcrum/trunk/security/memory/pom.xml
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java
turbine/fulcrum/trunk/security/pom.xml
turbine/fulcrum/trunk/security/src/changes/changes.xml
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
Modified: turbine/fulcrum/trunk/security/api/pom.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/pom.xml?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/api/pom.xml (original)
+++ turbine/fulcrum/trunk/security/api/pom.xml Wed Apr 26 14:36:57 2017
@@ -40,7 +40,7 @@
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- <version>2.5</version>
+ <version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.avalon.framework</groupId>
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
Wed Apr 26 14:36:57 2017
@@ -18,6 +18,8 @@ package org.apache.fulcrum.security;
* specific language governing permissions and limitations
* under the License.
*/
+import java.io.Serializable;
+
import org.apache.fulcrum.security.entity.Group;
import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.fulcrum.security.util.EntityExistsException;
@@ -37,7 +39,7 @@ import org.apache.fulcrum.security.util.
* @author <a href="mailto:[email protected]">Eric Pugh</a>
* @version $Id$
*/
-public interface GroupManager
+public interface GroupManager extends Serializable
{
/** Avalon role - used to id the component within the manager */
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java
Wed Apr 26 14:36:57 2017
@@ -1,5 +1,7 @@
package org.apache.fulcrum.security;
+import java.io.Serializable;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -26,7 +28,7 @@ package org.apache.fulcrum.security;
* @author <a href="mailto:[email protected]">Eric Pugh</a>
* @version $Id$
*/
-public interface ModelManager
+public interface ModelManager extends Serializable
{
/** Avalon role - used to id the component within the manager */
String ROLE = ModelManager.class.getName();
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
Wed Apr 26 14:36:57 2017
@@ -18,6 +18,8 @@ package org.apache.fulcrum.security;
* specific language governing permissions and limitations
* under the License.
*/
+import java.io.Serializable;
+
import org.apache.fulcrum.security.entity.Permission;
import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.fulcrum.security.util.EntityExistsException;
@@ -37,7 +39,7 @@ import org.apache.fulcrum.security.util.
* @author <a href="mailto:[email protected]">Eric Pugh</a>
* @version $Id$
*/
-public interface PermissionManager
+public interface PermissionManager extends Serializable
{
/** Avalon role - used to id the component within the manager */
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
Wed Apr 26 14:36:57 2017
@@ -18,6 +18,8 @@ package org.apache.fulcrum.security;
* specific language governing permissions and limitations
* under the License.
*/
+import java.io.Serializable;
+
import org.apache.fulcrum.security.entity.Role;
import org.apache.fulcrum.security.util.DataBackendException;
import org.apache.fulcrum.security.util.EntityExistsException;
@@ -37,7 +39,7 @@ import org.apache.fulcrum.security.util.
* @author <a href="mailto:[email protected]">Eric Pugh</a>
* @version $Id$
*/
-public interface RoleManager
+public interface RoleManager extends Serializable
{
/** Avalon role - used to id the component within the manager */
String ROLE = RoleManager.class.getName();
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
Wed Apr 26 14:36:57 2017
@@ -18,6 +18,8 @@ package org.apache.fulcrum.security;
* specific language governing permissions and limitations
* under the License.
*/
+import java.io.Serializable;
+
import org.apache.fulcrum.security.acl.AccessControlList;
import org.apache.fulcrum.security.entity.User;
import org.apache.fulcrum.security.util.DataBackendException;
@@ -40,7 +42,7 @@ import org.apache.fulcrum.security.util.
* @author <a href="mailto:[email protected]">Rafal Krzewski</a>
* @version $Id$
*/
-public interface UserManager
+public interface UserManager extends Serializable
{
/** Avalon role - used to id the component within the manager */
String ROLE = UserManager.class.getName();
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java
Wed Apr 26 14:36:57 2017
@@ -1,5 +1,7 @@
package org.apache.fulcrum.security.entity;
+import java.io.Serializable;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -31,7 +33,7 @@ package org.apache.fulcrum.security.enti
* @version $Id$
*/
-public interface SecurityEntity
+public interface SecurityEntity extends Serializable
{
/**
* Get the Name of the SecurityEntity.
Modified:
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
Wed Apr 26 14:36:57 2017
@@ -34,7 +34,12 @@ import org.apache.fulcrum.security.util.
*/
public abstract class AbstractGroupManager extends AbstractEntityManager
implements GroupManager
{
- protected abstract <T extends Group> T persistNewGroup(T group) throws
DataBackendException;
+ /**
+ * serial id
+ */
+ private static final long serialVersionUID = 1L;
+
+ protected abstract <T extends Group> T persistNewGroup(T group) throws
DataBackendException;
/**
* Construct a blank Group object.
Modified:
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java
(original)
+++
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java
Wed Apr 26 14:36:57 2017
@@ -11,6 +11,11 @@ import org.apache.fulcrum.security.util.
public class ModelManagerDummyImpl extends AbstractTurbineModelManager
{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
@Override
public void grant(Role role, Permission permission)
throws DataBackendException, UnknownEntityException {
Modified: turbine/fulcrum/trunk/security/memory/pom.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/memory/pom.xml?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/memory/pom.xml (original)
+++ turbine/fulcrum/trunk/security/memory/pom.xml Wed Apr 26 14:36:57 2017
@@ -64,6 +64,12 @@
<dependencies>
<dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.5</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.fulcrum</groupId>
<artifactId>fulcrum-security-api</artifactId>
</dependency>
Modified:
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java
(original)
+++
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java
Wed Apr 26 14:36:57 2017
@@ -22,9 +22,11 @@ import static org.junit.Assert.assertEqu
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
+import org.apache.commons.lang3.SerializationUtils;
import org.apache.fulcrum.security.GroupManager;
import org.apache.fulcrum.security.PermissionManager;
import org.apache.fulcrum.security.RoleManager;
@@ -39,6 +41,7 @@ import org.apache.fulcrum.security.model
import org.apache.fulcrum.security.model.dynamic.DynamicModelManager;
import org.apache.fulcrum.security.model.dynamic.entity.DynamicGroup;
import org.apache.fulcrum.security.model.dynamic.entity.DynamicRole;
+import org.apache.fulcrum.security.model.turbine.TurbineAccessControlList;
import org.apache.fulcrum.security.util.GroupSet;
import org.apache.fulcrum.security.util.PermissionSet;
import org.apache.fulcrum.security.util.RoleSet;
@@ -105,6 +108,9 @@ public class AccessControlListTest exten
DynamicAccessControlList dacl = (DynamicAccessControlList) acl;
assertTrue(dacl.hasRole(role));
assertTrue(dacl.hasPermission(permission));
+
+ Serializable serDeSer = SerializationUtils.roundtrip(acl);
+ assertTrue(
((DynamicAccessControlList)serDeSer).getRoles().toString().equals(dacl.getRoles().toString()));
}
@Test
Added:
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java?rev=1792752&view=auto
==============================================================================
---
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
(added)
+++
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
Wed Apr 26 14:36:57 2017
@@ -0,0 +1,423 @@
+package org.apache.fulcrum.security.acl;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.SerializationUtils;
+import org.apache.fulcrum.security.GroupManager;
+import org.apache.fulcrum.security.PermissionManager;
+import org.apache.fulcrum.security.RoleManager;
+import org.apache.fulcrum.security.SecurityService;
+import org.apache.fulcrum.security.UserManager;
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Permission;
+import org.apache.fulcrum.security.entity.Role;
+import org.apache.fulcrum.security.entity.User;
+import org.apache.fulcrum.security.model.turbine.TurbineAccessControlList;
+import org.apache.fulcrum.security.model.turbine.TurbineModelManager;
+import org.apache.fulcrum.security.util.GroupSet;
+import org.apache.fulcrum.security.util.PermissionSet;
+import org.apache.fulcrum.security.util.RoleSet;
+import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test that we can generate AccessControlLists from the Factory
+ *
+ * @author <a href="mailto:[email protected]">Eric Pugh</a>
+ * @version $Id: AccessControlListTest.java 1791100 2017-04-12 09:48:44Z gk $
+ */
+public class TurbineAccessControlListTest extends BaseUnit4Test
+{
+
+ private UserManager userManager;
+ private GroupManager groupManager;
+ private RoleManager roleManager;
+ private TurbineModelManager modelManager;
+ private PermissionManager permissionManager;
+ private TurbineAccessControlList acl;
+ private static int counter = 1;
+ private User user;
+
+ @Before
+ public void setUp() throws Exception
+ {
+
+ this.setRoleFileName("src/test/TurbineMemoryRoleConfig.xml");
+
this.setConfigurationFileName("src/test/TurbineMemoryComponentConfig.xml");
+
+ SecurityService securityService = (SecurityService)
lookup(SecurityService.ROLE);
+ userManager = securityService.getUserManager();
+ groupManager = securityService.getGroupManager();
+ roleManager = securityService.getRoleManager();
+ permissionManager = securityService.getPermissionManager();
+ modelManager = (TurbineModelManager) securityService.getModelManager();
+
+ user = userManager.getUserInstance("User 1");
+ if (!userManager.checkExists(user)) {
+ userManager.addUser(user, "secretpassword");
+ }
+
+
+ }
+
+ @Test
+ public void testCreatingDefaultAccessControlListViaFactory() throws
Exception
+ {
+ Group group = getGroup();
+ Role role = getRole();
+ Role globalRole = getRole();
+ Permission permission = getPermission();
+ modelManager.grant(user, modelManager.getGlobalGroup(), globalRole);
+ modelManager.grant(user, group, role);
+ modelManager.grant(role, permission);
+ RoleSet roleSet = new RoleSet();
+ PermissionSet permissionSet = new PermissionSet();
+ roleSet.add(role);
+ permissionSet.add(permission);
+ Map<Group, RoleSet> roleSets = new HashMap<Group, RoleSet>();
+ Map<Group, PermissionSet> permissionSets = new HashMap<Group,
PermissionSet>();
+ roleSets.put(group, roleSet);
+ permissionSets.put(group, permissionSet);
+ AccessControlList acl = userManager.getACL(user);
+ assertTrue(acl instanceof TurbineAccessControlList);
+ TurbineAccessControlList dacl = (TurbineAccessControlList) acl;
+ assertTrue(dacl.hasRole(role,group));
+ assertTrue(dacl.hasRole(globalRole));
+ assertTrue(dacl.hasPermission(permission,group));
+
assertEquals(dacl.getPermissions(group).toString(),permissionSets.get(group).toString());
+ Serializable serDeSer = SerializationUtils.roundtrip(acl);
+ assertTrue("Expected RoleSet: [role 4 -> 4]",
((TurbineAccessControlList)serDeSer).getRoles().toString().equals(dacl.getRoles().toString()));
+
+ }
+ @Test
+ public void testGetRolesGroup() throws Exception
+ {
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ modelManager.grant(user, modelManager.getGlobalGroup(), role);
+ modelManager.grant(user, modelManager.getGlobalGroup(), role2);
+ acl = userManager.getACL(user);
+ RoleSet resultRoleSet = acl.getRoles();
+ assertTrue(resultRoleSet.contains(role));
+ assertTrue(resultRoleSet.contains(role2));
+ assertFalse(resultRoleSet.contains(role3));
+ }
+
+ /*
+ * Class to test for RoleSet getRoles()
+ */
+ @Test
+ public void testGetRoles() throws Exception
+ {
+ Group group = getGroup();
+ Group group2 = getGroup();
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ modelManager.grant(user,group, role);
+ modelManager.grant(user,group, role2);
+ modelManager.grant(user,group2, role2);
+ modelManager.grant(user,group2, role3);
+ acl = userManager.getACL(user);
+ RoleSet resultRoleSet = acl.getRoles(group);
+ assertTrue(resultRoleSet.contains(role));
+ assertTrue(resultRoleSet.contains(role2));
+ assertTrue(!resultRoleSet.contains(role3));
+ assertEquals(2, resultRoleSet.size());
+ }
+
+ /*
+ * Class to test for PermissionSet getPermissions(Group)
+ */
+ @Test
+ public void testGetPermissionsGroup() throws Exception
+ {
+ Group group = getGroup();
+ Group group2 = getGroup();
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ Permission permission = getPermission();
+ Permission permission2 = getPermission();
+ Permission permission3 = getPermission();
+ modelManager.grant(user,group, role);
+ modelManager.grant(user,group, role2);
+ modelManager.grant(user,group2, role3);
+ modelManager.grant(role, permission);
+ modelManager.grant(role, permission2);
+ modelManager.grant(role, permission3);
+ modelManager.grant(role2, permission2);
+ modelManager.grant(role2, permission3);
+ acl = userManager.getACL(user);
+ PermissionSet resultPermissionSet = acl.getPermissions(group);
+ assertEquals(3, resultPermissionSet.size());
+ assertTrue(resultPermissionSet.contains(permission));
+ assertTrue(resultPermissionSet.contains(permission2));
+ assertTrue(resultPermissionSet.contains(permission3));
+ resultPermissionSet = acl.getPermissions(group2);
+ assertEquals(0, resultPermissionSet.size());
+ }
+
+ /*
+ * Class to test for PermissionSet getPermissions()
+ */
+ @Test
+ public void testGetPermissions() throws Exception
+ {
+ Group group = getGroup();
+ Group group2 = getGroup();
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ Permission permission = getPermission();
+ Permission permission2 = getPermission();
+ Permission permission3 = getPermission();
+ modelManager.grant(user,group, role);
+ modelManager.grant(user,group, role2);
+ modelManager.grant(user,group2, role3);
+ modelManager.grant(role, permission);
+ modelManager.grant(role, permission2);
+ modelManager.grant(role, permission3);
+ modelManager.grant(role2, permission2);
+ modelManager.grant(role2, permission3);
+ acl = userManager.getACL(user);
+ PermissionSet resultPermissionSet = acl.getPermissions(group);
+ assertEquals(3, resultPermissionSet.size());
+ }
+
+ /*
+ * Class to test for boolean hasRole(Role, Group)
+ */
+ @Test
+ public void testHasRoleRoleGroup() throws Exception
+ {
+ Group group = getGroup();
+ Group group2 = getGroup();
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ modelManager.grant(user,group, role);
+ modelManager.grant(user,group, role2);
+ modelManager.grant(user,group2, role);
+ modelManager.grant(user,group2, role3);
+ acl = userManager.getACL(user);
+ assertTrue(acl.hasRole(role, group));
+ assertTrue(acl.hasRole(role, group2));
+ assertTrue(acl.hasRole(role2, group));
+ assertFalse(acl.hasRole(role2, group2));
+ assertTrue(acl.hasRole(role, group2));
+ assertFalse(acl.hasRole(role2, group2));
+ assertTrue(acl.hasRole(role3, group2));
+ }
+
+ /*
+ * Class to test for boolean hasRole(Role, GroupSet)
+ */
+ @Test
+ public void testHasRoleRoleGroupSet() throws Exception
+ {
+ Group group = getGroup();
+ Group group2 = getGroup();
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ modelManager.grant(user,group, role);
+ modelManager.grant(user,group, role2);
+ modelManager.grant(user,group2, role);
+ modelManager.grant(user,group2, role3);
+ acl = userManager.getACL(user);
+ GroupSet groupSet = new GroupSet();
+ groupSet.add(group);
+ assertTrue(acl.hasRole(role, groupSet));
+ assertTrue(acl.hasRole(role2, groupSet));
+ assertFalse(acl.hasRole(role3, groupSet));
+ groupSet.add(group2);
+ assertTrue(acl.hasRole(role, groupSet));
+ assertTrue(acl.hasRole(role2, groupSet));
+ assertTrue(acl.hasRole(role3, groupSet));
+ groupSet.add(group2);
+ }
+
+ /*
+ * Class to test for boolean hasRole(String, String)
+ */
+ @Test
+ public void testHasRoleStringString() throws Exception
+ {
+ Group group = getGroup();
+ Group group2 = getGroup();
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ modelManager.grant(user, group, role);
+ modelManager.grant(user, group, role2);
+ modelManager.grant(user, group2, role);
+ modelManager.grant(user, group2, role3);
+ acl = userManager.getACL(user);
+ assertTrue(acl.hasRole(role.getName(), group.getName()));
+ assertTrue(acl.hasRole(role.getName(), group2.getName()));
+ assertTrue(acl.hasRole(role2.getName(), group.getName()));
+ assertFalse(acl.hasRole(role2.getName(), group2.getName()));
+ assertTrue(acl.hasRole(role.getName(), group2.getName()));
+ assertFalse(acl.hasRole(role2.getName(), group2.getName()));
+ assertTrue(acl.hasRole(role3.getName(), group2.getName()));
+ }
+
+ /*
+ * Class to test for boolean hasPermission(Permission, Group)
+ */
+ @Test
+ public void testHasPermissionPermissionGroup() throws Exception
+ {
+ Group group = getGroup();
+ Group group2 = getGroup();
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ Permission permission = getPermission();
+ Permission permission2 = getPermission();
+ Permission permission3 = getPermission();
+ Permission permission4 = getPermission();
+ modelManager.grant(user, group, role);
+ modelManager.grant(user, group, role2);
+ modelManager.grant(user, group2, role3);
+ modelManager.grant(role, permission);
+ modelManager.grant(role, permission2);
+ modelManager.grant(role, permission3);
+ modelManager.grant(role2, permission2);
+ modelManager.grant(role2, permission3);
+ modelManager.grant(role3, permission4);
+ acl = userManager.getACL(user);
+ assertTrue(acl.hasPermission(permission, group));
+ assertTrue(acl.hasPermission(permission2, group));
+ assertTrue(acl.hasPermission(permission3, group));
+ assertFalse(acl.hasPermission(permission4, group));
+ assertTrue(acl.hasPermission(permission4, group2));
+ assertFalse(acl.hasPermission(permission, group2));
+ }
+
+ /*
+ * Class to test for boolean hasPermission(Permission, GroupSet)
+ */
+ @Test
+ public void testHasPermissionPermissionGroupSet() throws Exception
+ {
+ Group group = getGroup();
+ Group group2 = getGroup();
+ Group group3 = getGroup();
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ Role role4 = getRole();
+ Permission permission = getPermission();
+ Permission permission2 = getPermission();
+ Permission permission3 = getPermission();
+ Permission permission4 = getPermission();
+ Permission permission5 = getPermission();
+ modelManager.grant(user,group, role);
+ modelManager.grant(user,group, role2);
+ modelManager.grant(user,group2, role3);
+ modelManager.grant(user,group3, role4);
+ modelManager.grant(role, permission);
+ modelManager.grant(role, permission2);
+ modelManager.grant(role, permission3);
+ modelManager.grant(role2, permission2);
+ modelManager.grant(role2, permission3);
+ modelManager.grant(role3, permission4);
+ modelManager.grant(role4, permission5);
+ acl = userManager.getACL(user);
+ GroupSet groupSet = new GroupSet();
+ groupSet.add(group);
+ groupSet.add(group2);
+ assertTrue(acl.hasPermission(permission, groupSet));
+ assertFalse(acl.hasPermission(permission5, groupSet));
+ groupSet.add(group3);
+ assertTrue(acl.hasPermission(permission5, groupSet));
+ }
+
+ /*
+ * Class to test for boolean hasPermission(Permission)
+ */
+ @Test
+ public void testHasPermissionPermission() throws Exception
+ {
+ Role role = getRole();
+ Role role2 = getRole();
+ Role role3 = getRole();
+ Role role4 = getRole();
+ Permission permission = getPermission();
+ Permission permission2 = getPermission();
+ Permission permission3 = getPermission();
+ Permission permission4 = getPermission();
+ Permission permission5 = getPermission();
+ modelManager.grant(user,modelManager.getGlobalGroup(), role);
+ modelManager.grant(user,modelManager.getGlobalGroup(), role2);
+ modelManager.grant(user,modelManager.getGlobalGroup(), role3);
+ modelManager.grant(user,modelManager.getGlobalGroup(), role4);
+ modelManager.grant(role, permission);
+ modelManager.grant(role, permission2);
+ modelManager.grant(role, permission3);
+ modelManager.grant(role2, permission2);
+ modelManager.grant(role2, permission3);
+ modelManager.grant(role3, permission4);
+ modelManager.grant(role4, permission5);
+ acl = userManager.getACL(user);
+ assertTrue(acl.hasPermission(permission));
+ assertTrue(acl.hasPermission(permission2));
+ assertTrue(acl.hasPermission(permission3));
+ assertTrue(acl.hasPermission(permission4));
+ assertTrue(acl.hasPermission(permission5));
+ }
+
+ private int getId()
+ {
+ return ++counter;
+ }
+
+ private Role getRole() throws Exception
+ {
+ Role role = roleManager.getRoleInstance("Role " + getId());
+ roleManager.addRole(role);
+ return role;
+ }
+
+ private Group getGroup() throws Exception
+ {
+ Group group = groupManager.getGroupInstance("Group " + getId());
+ groupManager.addGroup(group);
+ return group;
+ }
+
+ private Permission getPermission() throws Exception
+ {
+ Permission permission =
permissionManager.getPermissionInstance("Permission " + getId());
+ permissionManager.addPermission(permission);
+ return permission;
+ }
+}
Propchange:
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: turbine/fulcrum/trunk/security/pom.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/pom.xml?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/pom.xml (original)
+++ turbine/fulcrum/trunk/security/pom.xml Wed Apr 26 14:36:57 2017
@@ -111,12 +111,12 @@
<version>1.0.7</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.fulcrum</groupId>
- <artifactId>fulcrum-yaafi</artifactId>
- <version>1.0.6</version>
- <scope>test</scope>
- </dependency>
+ <dependency>
+ <groupId>org.apache.fulcrum</groupId>
+ <artifactId>fulcrum-yaafi</artifactId>
+ <version>1.0.6</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.fulcrum</groupId>
<artifactId>fulcrum-security-memory</artifactId>
Modified: turbine/fulcrum/trunk/security/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/src/changes/changes.xml?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/src/changes/changes.xml (original)
+++ turbine/fulcrum/trunk/security/src/changes/changes.xml Wed Apr 26 14:36:57
2017
@@ -22,8 +22,15 @@
<title>Changes</title>
<author email="[email protected]">Eric Pugh</author>
</properties>
-
+
<body>
+ <release version="1.1.1" date="in Subversion">
+ <action type="update" dev="gk">
+ Update to JUnit4
+ Configurable global group in Turbine and dynamic model
+ Optional second level permission check, i.e. TurbineRole and
TurbineGroup impl are optional in Turbine ACL and Torque Manager, only
TurbineUser interface implementation is required
+ </action>
+ </release>
<release version="1.1.0" date="">
<action type="update" dev="tv">
Updated to Hibernate 3.6.7
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
Wed Apr 26 14:36:57 2017
@@ -43,8 +43,10 @@ import org.apache.torque.util.Transactio
public abstract class TorqueAbstractGroupManager extends AbstractGroupManager
{
-
- /**
+ /** Serial version */
+ private static final long serialVersionUID = -3735730556110100621L;
+
+ /**
* Avalon Service lifecycle method
*/
@Override
@@ -204,7 +206,7 @@ public abstract class TorqueAbstractGrou
}
catch (NoRowsException e)
{
- throw new UnknownEntityException("Could not find group" + name);
+ throw new UnknownEntityException("Could not find group " + name);
}
catch (TooManyRowsException e)
{
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java
Wed Apr 26 14:36:57 2017
@@ -42,7 +42,10 @@ import org.apache.torque.util.Transactio
public abstract class TorqueAbstractPermissionManager extends
AbstractPermissionManager
{
- /**
+ /** Serial version */
+ private static final long serialVersionUID = 194503017446833485L;
+
+ /**
* Avalon Service lifecycle method
*/
@Override
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
Wed Apr 26 14:36:57 2017
@@ -42,7 +42,10 @@ import org.apache.torque.util.Transactio
public abstract class TorqueAbstractRoleManager extends AbstractRoleManager
{
- /**
+ /** Serial version */
+ private static final long serialVersionUID = 4258137881250800204L;
+
+ /**
* Avalon Service lifecycle method
*/
@Override
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
Wed Apr 26 14:36:57 2017
@@ -42,7 +42,10 @@ import org.apache.torque.util.Transactio
public abstract class TorqueAbstractUserManager extends AbstractUserManager
{
- /**
+ /** Serial version */
+ private static final long serialVersionUID = 2050218990148719292L;
+
+ /**
* Avalon Service lifecycle method
*/
@Override
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
Wed Apr 26 14:36:57 2017
@@ -1,5 +1,7 @@
package org.apache.fulcrum.security.torque.peer;
+import java.io.Serializable;
+
import org.apache.fulcrum.security.spi.AbstractEntityManager;
import org.apache.fulcrum.security.util.DataBackendException;
@@ -17,7 +19,7 @@ import org.apache.fulcrum.security.util.
* @author <a href="mailto:[email protected]">Georg Kallidis</a>
* @version $Id$
*/
-public interface PeerManager
+public interface PeerManager extends Serializable
{
String ROLE = PeerManager.class.getName();
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
Wed Apr 26 14:36:57 2017
@@ -23,7 +23,9 @@ public class PeerManagerDefaultImpl exte
implements PeerManager, Disposable
{
- private Map<String,Peer> peers = new
ConcurrentHashMap<String,Peer>(4,0.75f,4);
+ /** Serial version */
+ private static final long serialVersionUID = -3891813089694207441L;
+ private Map<String,Peer> peers = new
ConcurrentHashMap<String,Peer>(4,0.75f,4);
@Override
public <P extends Peer> P getPeerInstance(String peerClassName) throws
DataBackendException
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
Wed Apr 26 14:36:57 2017
@@ -35,10 +35,14 @@ import org.apache.torque.criteria.Criter
* @author <a href="mailto:[email protected]">Thomas Vandahl</a>
* @version $Id:$
*/
-public class TorqueTurbineGroupManagerImpl extends PeerGroupManager
+public class TorqueTurbineGroupManagerImpl extends PeerGroupManager
{
- /**
+
+ /** Serial version */
+ private static final long serialVersionUID = -5583297428186549693L;
+
+ /**
* @see
org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectAllGroups(java.sql.Connection)
*/
@Override
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
Wed Apr 26 14:36:57 2017
@@ -43,7 +43,10 @@ import org.apache.torque.util.Transactio
*/
public class TorqueTurbineModelManagerImpl extends AbstractTurbineModelManager
implements TurbineModelManager
{
- /**
+ /** Serial version */
+ private static final long serialVersionUID = -306753988209612899L;
+
+ /**
* Grants a Role a Permission
*
* @param role the Role.
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
Wed Apr 26 14:36:57 2017
@@ -39,7 +39,10 @@ public class TorqueTurbinePermissionMana
{
- /**
+ /** Serial version */
+ private static final long serialVersionUID = 1L;
+
+ /**
* @see
org.apache.fulcrum.security.torque.TorqueAbstractPermissionManager#doSelectAllPermissions(java.sql.Connection)
*/
@Override
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
Wed Apr 26 14:36:57 2017
@@ -38,6 +38,9 @@ import org.apache.torque.criteria.Criter
public class TorqueTurbineRoleManagerImpl extends PeerRoleManager
{
+ /** Serial version */
+ private static final long serialVersionUID = 1L;
+
/**
* @see
org.apache.fulcrum.security.torque.TorqueAbstractRoleManager#doSelectAllRoles(java.sql.Connection)
*/
Modified:
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
---
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
(original)
+++
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
Wed Apr 26 14:36:57 2017
@@ -41,7 +41,9 @@ import org.apache.torque.criteria.Criter
public class TorqueTurbineUserManagerImpl extends PeerUserManager implements
TurbineUserManager
{
- private static final String ANON = "anon";
+ /** Serial version */
+ private static final long serialVersionUID = 1L;
+ private static final String ANON = "anon";
/**
* Default implementation.