luehe       2003/08/12 17:13:54

  Modified:    catalina/src/share/org/apache/catalina/authenticator
                        AuthenticatorBase.java
               catalina/src/share/org/apache/catalina/util DateTool.java
  Log:
  Optimizations:
  
  - Bugtraq 4730584 ("HttpResponseBase should create date format only
    when needed")
  
  - Bugtraq 4701695 ("avoid reformatting constant Expires header on every
    request")
  
  Revision  Changes    Path
  1.10      +17 -5     
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java
  
  Index: AuthenticatorBase.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AuthenticatorBase.java    25 Jul 2003 05:06:49 -0000      1.9
  +++ AuthenticatorBase.java    13 Aug 2003 00:13:54 -0000      1.10
  @@ -72,6 +72,9 @@
   import java.security.MessageDigest;
   import java.security.NoSuchAlgorithmException;
   import java.security.Principal;
  +import java.text.SimpleDateFormat;
  +import java.util.Date;
  +import java.util.Locale;
   import java.util.Random;
   import java.util.List;
   import java.util.Iterator;
  @@ -103,6 +106,7 @@
   import org.apache.catalina.util.LifecycleSupport;
   import org.apache.catalina.util.RequestUtil;
   import org.apache.catalina.util.StringManager;
  +import org.apache.catalina.util.DateTool;
   import org.apache.catalina.valves.ValveBase;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  @@ -244,6 +248,14 @@
       protected boolean started = false;
   
   
  +    /**
  +     * "Expires" header always set to Date(1), so generate once only
  +     */
  +    private static final String DATE_ONE =
  +        (new SimpleDateFormat(DateTool.HTTP_RESPONSE_DATE_HEADER,
  +                              Locale.US)).format(new Date(1));
  +
  +
       // ------------------------------------------------------------- Properties
   
   
  @@ -512,7 +524,7 @@
                   (HttpServletResponse) response.getResponse();
               sresponse.setHeader("Pragma", "No-cache");
               sresponse.setHeader("Cache-Control", "no-cache");
  -            sresponse.setDateHeader("Expires", 1);
  +            sresponse.setHeader("Expires", DATE_ONE);
           }
        int i;
        for(i=0; i < constraints.length; i++) {
  
  
  
  1.2       +21 -9     
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/DateTool.java
  
  Index: DateTool.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/util/DateTool.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DateTool.java     18 Jul 2002 16:47:45 -0000      1.1
  +++ DateTool.java     13 Aug 2003 00:13:54 -0000      1.2
  @@ -82,19 +82,28 @@
       private static StringManager sm =
           StringManager.getManager("org.apache.catalina.util");
   
  -    /** US locale - all HTTP dates are in english
  +    /**
  +     * US locale - all HTTP dates are in english
        */
       public final static Locale LOCALE_US = Locale.US;
   
  -    /** GMT timezone - all HTTP dates are on GMT
  +    /**
  +     * GMT timezone - all HTTP dates are on GMT
        */
       public final static TimeZone GMT_ZONE = TimeZone.getTimeZone("GMT");
   
  -    /** format for RFC 1123 date string -- "Sun, 06 Nov 1994 08:49:37 GMT"
  +    /**
  +     * format for RFC 1123 date string -- "Sun, 06 Nov 1994 08:49:37 GMT"
        */
       public final static String RFC1123_PATTERN =
           "EEE, dd MMM yyyyy HH:mm:ss z";
   
  +    /** 
  +     * Format for http response header date field
  +     */
  +    public static final String HTTP_RESPONSE_DATE_HEADER =
  +        "EEE, dd MMM yyyy HH:mm:ss zzz";
  +
       // format for RFC 1036 date string -- "Sunday, 06-Nov-94 08:49:37 GMT"
       private final static String rfc1036Pattern =
           "EEEEEEEEE, dd-MMM-yy HH:mm:ss z";
  @@ -103,16 +112,19 @@
       private final static String asctimePattern =
           "EEE MMM d HH:mm:ss yyyyy";
   
  -    /** Pattern used for old cookies
  +    /**
  +     * Pattern used for old cookies
        */
       public final static String OLD_COOKIE_PATTERN = "EEE, dd-MMM-yyyy HH:mm:ss z";
   
  -    /** DateFormat to be used to format dates
  +    /**
  +     * DateFormat to be used to format dates
        */
       public final static DateFormat rfc1123Format =
           new SimpleDateFormat(RFC1123_PATTERN, LOCALE_US);
   
  -    /** DateFormat to be used to format old netscape cookies
  +    /**
  +     * DateFormat to be used to format old netscape cookies
        */
       public final static DateFormat oldCookieFormat =
           new SimpleDateFormat(OLD_COOKIE_PATTERN, LOCALE_US);
  
  
  

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

Reply via email to