This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/10.1.x by this push:
     new ec569ce020 Return the full range with weak etags
ec569ce020 is described below

commit ec569ce020b830bc6836abbd2875702b0165045f
Author: remm <r...@apache.org>
AuthorDate: Mon Mar 3 12:09:32 2025 +0100

    Return the full range with weak etags
---
 java/org/apache/catalina/servlets/DefaultServlet.java                | 2 +-
 .../apache/catalina/servlets/TestDefaultServletRangeRequests.java    | 2 +-
 webapps/docs/changelog.xml                                           | 5 +++--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/java/org/apache/catalina/servlets/DefaultServlet.java 
b/java/org/apache/catalina/servlets/DefaultServlet.java
index 61191c2b3f..7523158add 100644
--- a/java/org/apache/catalina/servlets/DefaultServlet.java
+++ b/java/org/apache/catalina/servlets/DefaultServlet.java
@@ -2468,7 +2468,7 @@ public class DefaultServlet extends HttpServlet {
             }
             // If the ETag the client gave does not match the entity
             // etag, then the entire entity is returned.
-            if (resourceETag != null && resourceETag.equals(headerValue)) {
+            if (!weakETag && resourceETag != null && 
resourceETag.equals(headerValue)) {
                 return true;
             } else {
                 return false;
diff --git 
a/test/org/apache/catalina/servlets/TestDefaultServletRangeRequests.java 
b/test/org/apache/catalina/servlets/TestDefaultServletRangeRequests.java
index 4fb3952531..e59534b5f9 100644
--- a/test/org/apache/catalina/servlets/TestDefaultServletRangeRequests.java
+++ b/test/org/apache/catalina/servlets/TestDefaultServletRangeRequests.java
@@ -123,7 +123,7 @@ public class TestDefaultServletRangeRequests extends 
TomcatBaseTest {
                 "bytes=0-9", FastHttpDateFormat.formatDate(1000), 
Integer.valueOf(200), strLen, "" });
         // Valid weak etag
         parameterSets.add(new Object[] {
-                "bytes=0-9", weakETag, Integer.valueOf(206), "10", "0-9/" + 
len });
+                "bytes=0-9", weakETag, Integer.valueOf(200), strLen, "" });
         // Invalid strong etag
         parameterSets.add(new Object[] {
                 "bytes=0-9", "\"46273648\"", Integer.valueOf(200), strLen, "" 
});
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 14f25800f9..b6dbd20b12 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -109,8 +109,9 @@
     <changelog>
       <fix>
         <bug>69602</bug>: Fix regression in releases from 12-2024 that were too
-        strict and rejected weak etags in the <code>If-Range</code> header.
-        (remm)
+        strict and rejected weak etags in the <code>If-Range</code> header with
+        a 400 response. Instead will consider it as a failed match since strong
+        etags are required for <code>If-Range</code>. (remm)
       </fix>
     </changelog>
   </subsection>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to