Author: billbarker
Date: Wed Nov 28 20:19:46 2007
New Revision: 599259

URL: http://svn.apache.org/viewvc?rev=599259&view=rev
Log:
Remove conditional headers on Form Auth replay, since the UA (esp. FireFox) 
isn't expecting it.

Fix for bug #43687

Reported by:   Przemyslaw Madzik  


Modified:
    tomcat/tc6.0.x/trunk/STATUS.txt
    
tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
    tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=599259&r1=599258&r2=599259&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Wed Nov 28 20:19:46 2007
@@ -31,11 +31,6 @@
   +1: jfclere
   -1: fhanik - Can we add the 'package' directive to make the package match 
the dir structure
 
-* Remove conditional headers on Form Auth replay, since the UA (esp. FireFox) 
isn't expecting it.
-  http://issues.apache.org/bugzilla/show_bug.cgi?id=43687
-  +1: billbarker, remm, jfclere, pero
-  -1:
-
 * Fix another license issue
   http://svn.apache.org/viewvc?rev=598412&view=rev
   +1: markt, fhanik, pero, remm, billbarker 

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java?rev=599259&r1=599258&r2=599259&view=diff
==============================================================================
--- 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
 (original)
+++ 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
 Wed Nov 28 20:19:46 2007
@@ -402,12 +402,20 @@
 
         MimeHeaders rmh = request.getCoyoteRequest().getMimeHeaders();
         rmh.recycle();
+        boolean cachable = "GET".equalsIgnoreCase(saved.getMethod()) ||
+                           "HEAD".equalsIgnoreCase(saved.getMethod());
         Iterator names = saved.getHeaderNames();
         while (names.hasNext()) {
             String name = (String) names.next();
-            Iterator values = saved.getHeaderValues(name);
-            while (values.hasNext()) {
-                rmh.addValue(name).setString( (String)values.next() );
+            // The browser isn't expecting this conditional response now.
+            // Assuming that it can quietly recover from an unexpected 412.
+            // BZ 43687
+            if(!("If-Modified-Since".equalsIgnoreCase(name) ||
+                 (cachable && "If-None-Match".equalsIgnoreCase(name)))) {
+                Iterator values = saved.getHeaderValues(name);
+                while (values.hasNext()) {
+                    rmh.addValue(name).setString( (String)values.next() );
+                }
             }
         }
         

Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=599259&r1=599258&r2=599259&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Wed Nov 28 20:19:46 2007
@@ -72,6 +72,9 @@
         Improve the webDAV Servlet Javadocs to make clear that the WebDAV
         Servlet can not be used as the default servlet. (markt)
       </update>
+      <fix><bug>43687</bug> Remove conditional headers on Form Auth replay, 
+           since the UA (esp. FireFox) isn't expecting it.
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Jasper">



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

Reply via email to