Author: jalkanen
Date: Sat Apr 12 08:24:53 2008
New Revision: 647459
URL: http://svn.apache.org/viewvc?rev=647459&view=rev
Log:
Now implements Serializable.
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/WikiPrincipal.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclEntryImpl.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclImpl.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/DefaultAclManager.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/UnresolvedPrincipal.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/authorize/Role.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/AllPermission.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/GroupPermission.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/PagePermission.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/WikiPermission.java
incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/acl/AclImplTest.java
Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/WikiPrincipal.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/WikiPrincipal.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/WikiPrincipal.java
(original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/WikiPrincipal.java Sat
Apr 12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth;
+import java.io.Serializable;
import java.security.Principal;
import java.util.Arrays;
import java.util.Comparator;
@@ -36,8 +37,9 @@
* @author Andrew Jaquith
* @since 2.2
*/
-public final class WikiPrincipal implements Principal, Comparable
+public final class WikiPrincipal implements Principal, Comparable, Serializable
{
+ private static final long serialVersionUID = 1L;
/**
* Represents an anonymous user. WikiPrincipals may be
@@ -72,6 +74,12 @@
private final String m_name;
private final String m_type;
+ /** For serialization purposes */
+ protected WikiPrincipal()
+ {
+ this(null);
+ }
+
/**
* Constructs a new WikiPrincipal with a given name and a type of
* [EMAIL PROTECTED] #UNSPECIFIED}.
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclEntryImpl.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclEntryImpl.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclEntryImpl.java
(original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclEntryImpl.java
Sat Apr 12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth.acl;
+import java.io.Serializable;
import java.security.Permission;
import java.security.Principal;
import java.util.Enumeration;
@@ -34,10 +35,10 @@
* @author Andrew Jaquith
* @since 2.3
*/
-public class AclEntryImpl implements AclEntry
+public class AclEntryImpl implements AclEntry, Serializable
{
-
- private Vector m_permissions = new Vector();
+ private static final long serialVersionUID = 1L;
+ private Vector<Permission> m_permissions = new Vector<Permission>();
private Principal m_principal;
/**
@@ -151,10 +152,8 @@
sb.append( "[AclEntry ALLOW " + ( p != null ? p.getName() : "null" ) );
sb.append( " " );
- for( Iterator i = m_permissions.iterator(); i.hasNext(); )
+ for( Permission pp : m_permissions )
{
- Permission pp = (Permission) i.next();
-
sb.append( pp.toString() );
sb.append( "," );
}
@@ -170,10 +169,8 @@
*/
private Permission findPermission( Permission p )
{
- for( Iterator i = m_permissions.iterator(); i.hasNext(); )
+ for( Permission pp : m_permissions )
{
- Permission pp = (Permission) i.next();
-
if ( pp.implies( p ) )
{
return pp;
Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclImpl.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclImpl.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclImpl.java
(original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/AclImpl.java Sat Apr
12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth.acl;
+import java.io.Serializable;
import java.security.Permission;
import java.security.Principal;
import java.util.Enumeration;
@@ -32,9 +33,10 @@
* @author Andrew Jaquith
* @since 2.3
*/
-public class AclImpl implements Acl
+public class AclImpl implements Acl, Serializable
{
- private final Vector m_entries = new Vector();
+ private static final long serialVersionUID = 1L;
+ private final Vector<AclEntry> m_entries = new Vector<AclEntry>();
/**
* Constructs a new AclImpl instance.
@@ -45,15 +47,15 @@
/**
* Returns all Principal objects assigned a given Permission in the access
- * control list. The Princiapls returned are those that have been granted
+ * control list. The Principals returned are those that have been granted
* either the supplied permission, or a permission implied by the supplied
* permission. Principals are not "expanded" if they are a role or group.
* @param permission the permission to search for
- * @return an array of Principals posessing the permission
+ * @return an array of Principals possessing the permission
*/
public Principal[] findPrincipals( Permission permission )
{
- Vector principals = new Vector();
+ Vector<Principal> principals = new Vector<Principal>();
Enumeration entries = entries();
while (entries.hasMoreElements())
@@ -79,10 +81,8 @@
return false;
}
- for( Iterator i = m_entries.iterator(); i.hasNext(); )
+ for( AclEntry e : m_entries )
{
- AclEntry e = (AclEntry) i.next();
-
Principal ep = e.getPrincipal();
Principal entryp = entry.getPrincipal();
@@ -155,10 +155,8 @@
*/
public AclEntry getEntry( Principal principal )
{
- for( Enumeration e = m_entries.elements(); e.hasMoreElements(); )
+ for( AclEntry entry : m_entries )
{
- AclEntry entry = (AclEntry) e.nextElement();
-
if( entry.getPrincipal().getName().equals( principal.getName() ) )
{
return entry;
@@ -176,10 +174,8 @@
{
StringBuffer sb = new StringBuffer();
- for( Enumeration myEnum = entries(); myEnum.hasMoreElements(); )
+ for( AclEntry entry : m_entries )
{
- AclEntry entry = (AclEntry) myEnum.nextElement();
-
Principal pal = entry.getPrincipal();
if( pal != null )
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/DefaultAclManager.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/DefaultAclManager.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
---
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/DefaultAclManager.java
(original)
+++
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/DefaultAclManager.java
Sat Apr 12 08:24:53 2008
@@ -48,7 +48,7 @@
static Logger log = Logger.getLogger(
DefaultAclManager.class );
private AuthorizationManager m_auth = null;
- private WikiEngine m_engine = null;
+ private WikiEngine m_engine = null;
private static final String PERM_REGEX = "(" +
PagePermission.COMMENT_ACTION + "|" +
PagePermission.DELETE_ACTION + "|" +
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/UnresolvedPrincipal.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/UnresolvedPrincipal.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
---
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/UnresolvedPrincipal.java
(original)
+++
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/acl/UnresolvedPrincipal.java
Sat Apr 12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth.acl;
+import java.io.Serializable;
import java.security.Principal;
/**
@@ -35,9 +36,9 @@
* @author Andrew Jaquith
* @since 2.3
*/
-public final class UnresolvedPrincipal implements Principal
+public final class UnresolvedPrincipal implements Principal, Serializable
{
-
+ private static final long serialVersionUID = 1L;
private final String m_name;
/**
Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/authorize/Role.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/authorize/Role.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/authorize/Role.java
(original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/authorize/Role.java Sat
Apr 12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth.authorize;
+import java.io.Serializable;
import java.security.Principal;
/**
@@ -30,8 +31,9 @@
* @author Andrew Jaquith
* @since 2.3
*/
-public final class Role implements Principal
+public final class Role implements Principal, Serializable
{
+ private static final long serialVersionUID = 1L;
/** All users, regardless of authentication status */
public static final Role ALL = new Role( "All" );
@@ -47,6 +49,11 @@
private final String m_name;
+ protected Role()
+ {
+ this(null);
+ }
+
/**
* Constructs a new Role with a given name.
* @param name the name of the Role
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/AllPermission.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/AllPermission.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
---
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/AllPermission.java
(original)
+++
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/AllPermission.java
Sat Apr 12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth.permissions;
+import java.io.Serializable;
import java.security.Permission;
import java.security.PermissionCollection;
@@ -30,7 +31,7 @@
* @author Andrew Jaquith
* @since 2.3.80
*/
-public final class AllPermission extends Permission
+public final class AllPermission extends Permission implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -38,6 +39,12 @@
private final String m_wiki;
+ /** For serialization purposes. */
+ protected AllPermission()
+ {
+ this(null);
+ }
+
/**
* Creates a new AllPermission for the given wikis.
*
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/GroupPermission.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/GroupPermission.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
---
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/GroupPermission.java
(original)
+++
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/GroupPermission.java
Sat Apr 12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth.permissions;
+import java.io.Serializable;
import java.security.AccessControlContext;
import java.security.AccessController;
import java.security.DomainCombiner;
@@ -81,7 +82,7 @@
* @author Andrew Jaquith
* @since 2.4.17
*/
-public final class GroupPermission extends Permission
+public final class GroupPermission extends Permission implements Serializable
{
/** Special target token that denotes all groups that a Subject's
Principals are members of. */
public static final String MEMBER_TOKEN = "<groupmember>";
@@ -126,6 +127,12 @@
private final String m_wiki;
+ /** For serialization purposes */
+ protected GroupPermission()
+ {
+ this("");
+ }
+
/**
* Private convenience constructor that creates a new GroupPermission for
* all wikis and groups (*:*) and set of actions.
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/PagePermission.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/PagePermission.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
---
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/PagePermission.java
(original)
+++
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/PagePermission.java
Sat Apr 12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth.permissions;
+import java.io.Serializable;
import java.security.Permission;
import java.security.PermissionCollection;
import java.util.Arrays;
@@ -65,7 +66,7 @@
* @author Andrew Jaquith
* @since 2.3
*/
-public final class PagePermission extends Permission
+public final class PagePermission extends Permission implements Serializable
{
private static final long serialVersionUID = 2L;
@@ -127,6 +128,12 @@
private final String m_wiki;
+ /** For serialization purposes. */
+ protected PagePermission()
+ {
+ this("");
+ }
+
/**
* Private convenience constructor that creates a new PagePermission for
all wikis and pages
* (*:*) and set of actions.
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/WikiPermission.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/WikiPermission.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
---
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/WikiPermission.java
(original)
+++
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/auth/permissions/WikiPermission.java
Sat Apr 12 08:24:53 2008
@@ -20,6 +20,7 @@
*/
package com.ecyrd.jspwiki.auth.permissions;
+import java.io.Serializable;
import java.security.Permission;
import java.security.PermissionCollection;
import java.util.Arrays;
@@ -37,7 +38,7 @@
* @author Andrew Jaquith
* @since 2.3
*/
-public final class WikiPermission extends Permission
+public final class WikiPermission extends Permission implements Serializable
{
private static final long serialVersionUID = 1L;
Modified:
incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/acl/AclImplTest.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/acl/AclImplTest.java?rev=647459&r1=647458&r2=647459&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/acl/AclImplTest.java
(original)
+++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/auth/acl/AclImplTest.java
Sat Apr 12 08:24:53 2008
@@ -19,6 +19,7 @@
*/
package com.ecyrd.jspwiki.auth.acl;
+import java.io.*;
import java.security.Principal;
import java.util.HashMap;
import java.util.Map;
@@ -232,6 +233,25 @@
assertFalse( "Dave delete", inGroup( m_aclGroup.findPrincipals(
PagePermission.DELETE ), wup ) );
}
+ public void testSerialization() throws IOException, ClassNotFoundException
+ {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+ ObjectOutputStream out2 = new ObjectOutputStream(out);
+
+ out2.writeObject( m_acl );
+
+ out2.close();
+
+ byte[] stuff = out.toByteArray();
+
+ ObjectInputStream in = new ObjectInputStream( new
ByteArrayInputStream(stuff) );
+
+ AclImpl newacl = (AclImpl) in.readObject();
+
+ assert( newacl.equals(m_acl) );
+ }
+
public static Test suite()
{
return new TestSuite( AclImplTest.class );