You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2024/02/23 11:29:40 UTC
(turbine-fulcrum-security) branch master updated: Add serializable interface, and transient to userGroupRoleSet, update to parent pom 13-snapshot
This is an automated email from the ASF dual-hosted git repository.
gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-security.git
The following commit(s) were added to refs/heads/master by this push:
new 69bfa31 Add serializable interface, and transient to userGroupRoleSet, update to parent pom 13-snapshot
69bfa31 is described below
commit 69bfa31ed4b35f4fc4cd5e24f168e6d279f2fc17
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Fri Feb 23 12:10:56 2024 +0100
Add serializable interface, and transient to userGroupRoleSet, update to parent pom 13-snapshot
---
.../turbine/entity/TurbineUserGroupRoleEntity.java | 4 +-
.../impl/AbstractTurbineSecurityEntityImpl.java | 2 +-
.../fulcrum/security/spi/AbstractGroupManager.java | 2 +-
pom.xml | 2 +-
.../security/torque/TorqueAbstractRoleManager.java | 2 +-
...TorqueAbstractTurbineTurbineSecurityEntity.java | 2 +-
.../TurbineUserManagerWithDefaultPeerLazyTest.java | 66 ++++++++++++++++++++++
7 files changed, 74 insertions(+), 6 deletions(-)
diff --git a/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java b/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
index 98805e0..904a0b4 100644
--- a/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
+++ b/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
@@ -1,5 +1,7 @@
package org.apache.fulcrum.security.model.turbine.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 @@ import org.apache.fulcrum.security.util.DataBackendException;
* @author <a href="mailto:epugh@upstate.com">Eric Pugh </a>
* @version $Id: TurbineRole.java 535465 2007-05-05 06:58:06Z tv $
*/
-public interface TurbineUserGroupRoleEntity {
+public interface TurbineUserGroupRoleEntity extends Serializable {
/**
* Get the User/Group/Role set associated with this entity
diff --git a/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java b/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java
index 99fc4c3..0999825 100644
--- a/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java
+++ b/api/src/java/org/apache/fulcrum/security/model/turbine/entity/impl/AbstractTurbineSecurityEntityImpl.java
@@ -40,7 +40,7 @@ public abstract class AbstractTurbineSecurityEntityImpl extends SecurityEntityIm
*
*/
private static final long serialVersionUID = 1L;
- private Set<? extends TurbineUserGroupRole> userGroupRoleSet = new HashSet<TurbineUserGroupRole>();
+ private transient Set<? extends TurbineUserGroupRole> userGroupRoleSet = new HashSet<TurbineUserGroupRole>();
/**
* Get the User/Group/Role set associated with this entity
diff --git a/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java b/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
index 19ce6ee..7ef962e 100644
--- a/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
+++ b/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
@@ -57,7 +57,7 @@ public abstract class AbstractGroupManager extends AbstractEntityManager impleme
try
{
@SuppressWarnings("unchecked")
- T group = (T) Class.forName(getClassName()).newInstance();
+ T group = (T) Class.forName(getClassName()).getConstructor( null ).newInstance();
return group;
}
catch (Exception e)
diff --git a/pom.xml b/pom.xml
index 2df0c53..28eb0b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
<parent>
<artifactId>turbine-parent</artifactId>
<groupId>org.apache.turbine</groupId>
- <version>12</version>
+ <version>13-SNAPSHOT</version>
<relativePath />
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java b/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
index 52e1153..e0abf3e 100644
--- a/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
+++ b/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
@@ -366,7 +366,7 @@ public abstract class TorqueAbstractRoleManager extends AbstractRoleManager impl
}
catch (NoRowsException e)
{
- throw new UnknownEntityException("Could not find role" + name);
+ throw new UnknownEntityException("Could not find role " + name);
}
catch (TooManyRowsException e)
{
diff --git a/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java b/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java
index ac9c637..8b3d6f8 100644
--- a/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java
+++ b/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntity.java
@@ -39,7 +39,7 @@ public abstract class TorqueAbstractTurbineTurbineSecurityEntity extends TorqueA
private static final long serialVersionUID = -6230312046016785990L;
/** a cache of user_group_role objects */
- private Set<? extends TurbineUserGroupRole> userGroupRoleSet = null;
+ private transient Set<? extends TurbineUserGroupRole> userGroupRoleSet = null;
/* (non-Javadoc)
* @see org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRoleEntity#addUserGroupRole(org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole)
diff --git a/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerWithDefaultPeerLazyTest.java b/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerWithDefaultPeerLazyTest.java
index 1900dff..f36433f 100644
--- a/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerWithDefaultPeerLazyTest.java
+++ b/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerWithDefaultPeerLazyTest.java
@@ -26,9 +26,19 @@ import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.PrintWriter;
+import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
+import java.util.Set;
+import org.apache.commons.lang3.SerializationUtils;
import org.apache.fulcrum.security.SecurityService;
import org.apache.fulcrum.security.UserManager;
import org.apache.fulcrum.security.acl.AccessControlList;
@@ -38,11 +48,14 @@ import org.apache.fulcrum.security.entity.User;
import org.apache.fulcrum.security.model.test.AbstractUserManagerTest;
import org.apache.fulcrum.security.model.turbine.TurbineAccessControlList;
import org.apache.fulcrum.security.model.turbine.TurbineModelManager;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineGroup;
import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRoleEntity;
import org.apache.fulcrum.security.torque.HsqlDB;
import org.apache.fulcrum.security.torque.om.TurbineGroupPeer;
import org.apache.fulcrum.security.torque.om.TurbinePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TurbineRole;
import org.apache.fulcrum.security.torque.om.TurbineRolePeer;
import org.apache.fulcrum.security.torque.om.TurbineRolePermissionPeer;
import org.apache.fulcrum.security.torque.om.TurbineUserPeer;
@@ -404,8 +417,61 @@ public class TurbineUserManagerWithDefaultPeerLazyTest
acl = userManager.getACL( user );
assertTrue( ( (TurbineAccessControlList) acl ).hasRole( testRole ) );
+
+ TurbineAccessControlList dacl = (TurbineAccessControlList) acl;
+ Serializable serDeSer1 = SerializationUtils.roundtrip(dacl.getPermissions());
+ Serializable serDeSer3 = SerializationUtils.roundtrip(dacl.getAllGroups());
+
+ Set<TurbineUserGroupRole> tugrs_group = ((TurbineGroup) dacl.getGroupSet().getByName( TEST_GROUP )).getUserGroupRoleSet();
+ assertTrue(tugrs_group.size()>0);
+ assertTrue(tugrs_group instanceof Serializable, "Expected Set of TurbineUserGroupRole is serializable: " + tugrs_group.getClass());
+
+ TurbineUserGroupRole tugr_group = tugrs_group.iterator().next();
+ assertTrue(tugr_group instanceof Serializable, "Expected TurbineUserGroupRole is serializable: " + tugr_group.getClass());
+
+ Serializable serDeSer0001 = SerializationUtils.roundtrip((Serializable) tugr_group);
+
+ Serializable serDeSer0002 = SerializationUtils.roundtrip(tugr_group.getUser());
+ // lower limit class check
+ TurbineRole tr = new TurbineRole();
+ Serializable serDeSer0003 = SerializationUtils.roundtrip(tr);
+
+ Serializable serDeSer00031 = SerializationUtils.roundtrip(tugr_group.getRole());
+ Serializable serDeSer0004 = SerializationUtils.roundtrip(tugr_group.getGroup());
+ Serializable serDeSer0005 = SerializationUtils.roundtrip(dacl.getGroupSet().getByName( TEST_GROUP ));
+
+ Set<TurbineUserGroupRole> tugrs_role = ((TurbineRole) dacl.getRoles().getByName( TEST_ROLE )).getUserGroupRoleSet();
+ assertTrue(tugrs_role instanceof Serializable, "Expected TurbineUserGroupRole is serializable: " + tugrs_role.getClass());
+ TurbineUserGroupRole tugr_role = tugrs_role.iterator().next();
+ assertTrue(tugr_role instanceof Serializable, "Expected TurbineUserGroupRole is serializable: " + tugr_role.getClass());
+
+ System.out.println( "tugr.getUser():" + tugr_role.getUser().getClass() );
+ System.out.println( "tugr.getGroup():" + tugr_role.getGroup().getClass() );
+ System.out.println( "tugr.getRole():" + tugr_role.getRole().getClass() );
+ System.out.println( "set role tugr has next:" + tugrs_role.iterator().hasNext() );
+
+ Serializable serDeSer010 = SerializationUtils.roundtrip(tugr_role.getUser());
+ ((org.apache.fulcrum.security.torque.om.TurbineGroup)tugr_role.getGroup()).resetTurbineUserGroupRole();
+ Serializable serDeSer0011 = SerializationUtils.roundtrip(tugr_role.getGroup());
+
+// ((org.apache.fulcrum.security.torque.om.TurbineRole)tugr_role.getRole()).resetTurbineUserGroupRole();
+// ((org.apache.fulcrum.security.torque.om.TurbineRole)tugr_role.getRole()).resetTurbineRolePermission();
+// ((org.apache.fulcrum.security.torque.om.TurbineRole)tugr_role.getRole()).setUserGroupRoleSet( null );
+// // this will as role.lastTurbineRolePermissionCriteria and lastTurbineUserGroupRoleCriteria not serializable
+// Serializable serDeSer0012 = SerializationUtils.roundtrip(tugr_role.getRole());
+// Serializable serDeSer0013 = SerializationUtils.roundtrip((Serializable) tugr_role);
+// Serializable serDeSer0014 = SerializationUtils.roundtrip(dacl.getRoles().getByName( TEST_ROLE ));
+// Serializable serDeSer0015 = SerializationUtils.roundtrip(dacl.getRoles());
+
+ Serializable serDeSer020 = SerializationUtils.roundtrip(dacl.getGroupSet());
+
+ // this will fail as role fails
+// Serializable serDeSer = SerializationUtils.roundtrip(acl);
+// assertTrue( ((TurbineAccessControlList)serDeSer).getRoles().toString().equals(dacl.getRoles().toString()),
+// "Expected RoleSet: ... GroupSet: ..");
}
+
@Test
public void testRemoveUser()
throws Exception