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