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