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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]