luehe       2004/10/25 14:18:49

  Modified:    catalina/src/share/org/apache/catalina/security
                        SecurityUtil.java
  Log:
  Call session.setAttribute(Globals.SUBJECT_ATTR, subject) only if
  necessary, i.e, only if the session does not already contain such an
  attribute, allowing for session persistence optimizations by
  persisting only those sessions that have actually changed (i.e., whose
  setAttribute() or removeAttribute() have been called) since the
  sessions were last persisted.
  
  Revision  Changes    Path
  1.13      +8 -9      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/security/SecurityUtil.java
  
  Index: SecurityUtil.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/security/SecurityUtil.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- SecurityUtil.java 20 Aug 2004 14:43:17 -0000      1.12
  +++ SecurityUtil.java 25 Oct 2004 21:18:49 -0000      1.13
  @@ -224,7 +224,7 @@
        * @param targetArguments <code>Object</code> array contains the 
        * runtime parameters instance.
        * @param principal the <code>Principal</code> to which the security 
  -     * privilege apply..
  +     * privilege applies
        */    
       private static void execute(final Method method,
                                   final Object targetObject, 
  @@ -251,18 +251,17 @@
                   if (session != null){
                       subject = 
                           (Subject)session.getAttribute(Globals.SUBJECT_ATTR);
  -                }
   
  -                if (subject == null){
  -                    subject = new Subject();
  +                    if (subject == null){
  +                        subject = new Subject();
                       
  -                    if (principal != null){
  -                        subject.getPrincipals().add(principal);
  +                        if (principal != null){
  +                            subject.getPrincipals().add(principal);
  +                        }
  + 
  +                        session.setAttribute(Globals.SUBJECT_ATTR, subject);
                       }
                   }
  -
  -                if (session != null)
  -                    session.setAttribute(Globals.SUBJECT_ATTR, subject);
               }
   
               Subject.doAsPrivileged(subject, pea, null);       
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to