You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2004/02/06 03:09:39 UTC

cvs commit: jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session DeltaSession.java SerializablePrincipal.java

fhanik      2004/02/05 18:09:38

  Modified:    modules/cluster/src/share/org/apache/catalina/cluster/session
                        DeltaSession.java SerializablePrincipal.java
  Log:
  fixed serialization of principal when replicating data, this is currently hard coded to the GenericPrincipal.
  
  Revision  Changes    Path
  1.14      +8 -8      jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java
  
  Index: DeltaSession.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DeltaSession.java	5 Feb 2004 22:57:52 -0000	1.13
  +++ DeltaSession.java	6 Feb 2004 02:09:38 -0000	1.14
  @@ -1419,8 +1419,7 @@
           boolean hasPrincipal = stream.readBoolean();
           principal = null;   
           if ( hasPrincipal ) {
  -            SerializablePrincipal p = (SerializablePrincipal)stream.readObject();
  -            principal = p.getPrincipal(getManager().getContainer().getRealm());
  +            principal = SerializablePrincipal.readPrincipal(stream,getManager().getContainer().getRealm());
           }
               
           //        setId((String) stream.readObject());
  @@ -1479,8 +1478,9 @@
           stream.writeObject(new Boolean(isValid));
           stream.writeObject(new Long(thisAccessedTime));
           stream.writeBoolean(getPrincipal()!=null);
  -        if (getPrincipal() != null) stream.writeObject(SerializablePrincipal.
  -            createPrincipal( (GenericPrincipal) getPrincipal()));
  +        if (getPrincipal() != null) {
  +            SerializablePrincipal.writePrincipal((GenericPrincipal)principal,stream);
  +        }
           
           stream.writeObject(id);
           if (log.isDebugEnabled())
  
  
  
  1.2       +22 -4     jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/SerializablePrincipal.java
  
  Index: SerializablePrincipal.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/SerializablePrincipal.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SerializablePrincipal.java	19 Feb 2003 20:32:10 -0000	1.1
  +++ SerializablePrincipal.java	6 Feb 2004 02:09:38 -0000	1.2
  @@ -212,6 +212,24 @@
       {
           return new GenericPrincipal(realm,name,password,getRoles()!=null?Arrays.asList(getRoles()):null);
       }
  +    
  +    public static GenericPrincipal readPrincipal(java.io.ObjectInputStream in, Realm realm) throws java.io.IOException{
  +        String name = in.readUTF();
  +        String pwd = in.readUTF();
  +        int size = in.readInt();
  +        String[] roles = new String[size];
  +        for ( int i=0; i<size; i++ ) roles[i] = in.readUTF();
  +        return new GenericPrincipal(realm,name,pwd,Arrays.asList(roles));
  +    }
  +    
  +    public static void writePrincipal(GenericPrincipal p, java.io.ObjectOutputStream out) throws java.io.IOException {
  +        out.writeUTF(p.getName());
  +        out.writeUTF(p.getPassword());
  +        String[] roles = p.getRoles();
  +        if ( roles == null ) roles = new String[0];
  +        out.writeInt(roles.length);
  +        for ( int i=0; i<roles.length; i++ ) out.writeUTF(roles[i]);
  +    }
   
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org