You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jf...@apache.org on 2004/03/04 18:51:16 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session StandardSession.java
jfarcand 2004/03/04 09:51:16
Modified: catalina/src/share/org/apache/catalina/session
StandardSession.java
Log:
Avoid serializing Subject/Principal when persisting the session.
Revision Changes Path
1.36 +27 -2 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java
Index: StandardSession.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- StandardSession.java 27 Feb 2004 14:58:46 -0000 1.35
+++ StandardSession.java 4 Mar 2004 17:51:16 -0000 1.36
@@ -44,6 +44,7 @@
import javax.servlet.http.HttpSessionListener;
import org.apache.catalina.Context;
+import org.apache.catalina.Globals;
import org.apache.catalina.Manager;
import org.apache.catalina.Session;
import org.apache.catalina.SessionEvent;
@@ -159,6 +160,14 @@
/**
+ * Set of attribute names which are not allowed to be persisted.
+ */
+ private static final String[] excludedAttributes = {
+ Globals.SUBJECT_ATTR
+ };
+
+
+ /**
* We are currently processing a session expiration, so bypass
* certain IllegalStateException tests. NOTE: This value is not
* included in the serialized version of this object.
@@ -1384,7 +1393,8 @@
}
if (value == null)
continue;
- else if (value instanceof Serializable) {
+ else if ( (value instanceof Serializable)
+ && (!exclude(keys[i]) )) {
saveNames.add(keys[i]);
saveValues.add(value);
}
@@ -1410,6 +1420,21 @@
}
}
+ }
+
+
+ /**
+ * Exclude attribute that cannot be serialized.
+ * @param name the attribute's name
+ */
+ protected boolean exclude(String name){
+
+ for (int i = 0; i < excludedAttributes.length; i++) {
+ if (name.equalsIgnoreCase(excludedAttributes[i]))
+ return true;
+ }
+
+ return false;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org