Author: billbarker Date: Fri Nov 23 17:37:36 2007 New Revision: 597781 URL: http://svn.apache.org/viewvc?rev=597781&view=rev Log: Remove conditional headers from the re-played request.
These confuse some UAs (notably FireFox), and we can't really keep them from the HTTP/1.1 spec. Fix for bug #43687 Reported By: Przemyslaw Madzik Modified: tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java Modified: tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java?rev=597781&r1=597780&r2=597781&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java Fri Nov 23 17:37:36 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 reposponse 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() ); + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]