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