This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push: new 266fdc7a3a Simplify 266fdc7a3a is described below commit 266fdc7a3a7944939cd2f5086a3922f91ded9432 Author: remm <r...@apache.org> AuthorDate: Wed Dec 11 17:25:58 2024 +0100 Simplify --- .../apache/catalina/servlets/DefaultServlet.java | 73 ++-------------------- 1 file changed, 6 insertions(+), 67 deletions(-) diff --git a/java/org/apache/catalina/servlets/DefaultServlet.java b/java/org/apache/catalina/servlets/DefaultServlet.java index 753f50d9b0..02ba6dc02f 100644 --- a/java/org/apache/catalina/servlets/DefaultServlet.java +++ b/java/org/apache/catalina/servlets/DefaultServlet.java @@ -749,72 +749,8 @@ public class DefaultServlet extends HttpServlet { */ protected boolean checkIfHeaders(HttpServletRequest request, HttpServletResponse response, WebResource resource) throws IOException { - String ifNoneMatchHeader = request.getHeader("If-None-Match"); - - // RFC9110 #13.3.2 defines preconditions evaluation order - int next = 1; - while (true) { - switch (next) { - case 1: - if (request.getHeader("If-Match") != null) { - if (checkIfMatch(request, response, resource)) { - next = 3; - } else { - return false; - } - } else { - next = 2; - } - break; - case 2: - if (request.getHeader("If-Unmodified-Since") != null) { - if (checkIfUnmodifiedSince(request, response, resource)) { - next = 3; - } else { - return false; - } - } else { - next = 3; - } - break; - case 3: - if (ifNoneMatchHeader != null) { - if (checkIfNoneMatch(request, response, resource)) { - next = 5; - } else { - return false; - } - } else { - next = 4; - } - break; - case 4: - if (("GET".equals(request.getMethod()) || "HEAD".equals(request.getMethod())) && - ifNoneMatchHeader == null && request.getHeader("If-Modified-Since") != null) { - if (checkIfModifiedSince(request, response, resource)) { - next = 5; - } else { - return false; - } - } else { - next = 5; - } - break; - case 5: - if ("GET".equals(request.getMethod()) && request.getHeader("If-Range") != null && - request.getHeader("Range") != null) { - if (checkIfRange(request, response, resource) && determineRangeRequestsApplicable(resource)) { - // Partial content, precondition passed - return true; - } else { - // ignore the Range header field - return true; - } - } else { - return true; - } - } - } + return checkIfMatch(request, response, resource) && checkIfModifiedSince(request, response, resource) && + checkIfNoneMatch(request, response, resource) && checkIfUnmodifiedSince(request, response, resource); } @@ -2335,6 +2271,10 @@ public class DefaultServlet extends HttpServlet { protected boolean checkIfModifiedSince(HttpServletRequest request, HttpServletResponse response, WebResource resource) { + String method = request.getMethod(); + if (!"GET".equals(method) && !"HEAD".equals(method)) { + return true; + } long resourceLastModified = resource.getLastModified(); try { @@ -2348,7 +2288,6 @@ public class DefaultServlet extends HttpServlet { // specified by the client. This is not an error case. response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); response.setHeader("ETag", generateETag(resource)); - return false; } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org