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 );


Reply via email to