You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2019/11/11 15:26:21 UTC
[tomcat] branch 8.5.x updated: Use servlet4preview package to
access mapping info
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push:
new b0ca786 Use servlet4preview package to access mapping info
b0ca786 is described below
commit b0ca786f1aa197dad413839ae69d05183fe413d0
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Nov 11 15:26:00 2019 +0000
Use servlet4preview package to access mapping info
---
.../org/apache/catalina/filters/ExpiresFilter.java | 36 ++++++++++++++--------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/java/org/apache/catalina/filters/ExpiresFilter.java b/java/org/apache/catalina/filters/ExpiresFilter.java
index 85d5fce..740944a 100644
--- a/java/org/apache/catalina/filters/ExpiresFilter.java
+++ b/java/org/apache/catalina/filters/ExpiresFilter.java
@@ -35,13 +35,14 @@ import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
+import javax.servlet.ServletRequestWrapper;
import javax.servlet.ServletResponse;
import javax.servlet.WriteListener;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
-import javax.servlet.http.MappingMatch;
+import org.apache.catalina.servlet4preview.http.MappingMatch;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
@@ -1285,17 +1286,28 @@ public class ExpiresFilter extends FilterBase {
*/
protected Date getExpirationDate(HttpServletRequest request, XHttpServletResponse response) {
String contentType = response.getContentType();
- if (contentType == null && request != null &&
- request.getHttpServletMapping().getMappingMatch() == MappingMatch.DEFAULT &&
- response.getStatus() == HttpServletResponse.SC_NOT_MODIFIED) {
- // Default servlet normally sets the content type but does not for
- // 304 responses. Look it up.
- String servletPath = request.getServletPath();
- if (servletPath != null) {
- int lastSlash = servletPath.lastIndexOf('/');
- if (lastSlash > -1) {
- String fileName = servletPath.substring(lastSlash + 1);
- contentType = request.getServletContext().getMimeType(fileName);
+ if (contentType == null && request != null) {
+ ServletRequest innerRequest = request;
+ while (innerRequest instanceof ServletRequestWrapper) {
+ innerRequest = ((ServletRequestWrapper) innerRequest).getRequest();
+ }
+
+ if (innerRequest instanceof org.apache.catalina.servlet4preview.http.HttpServletRequest) {
+ org.apache.catalina.servlet4preview.http.HttpServletRequest servlet4Request =
+ (org.apache.catalina.servlet4preview.http.HttpServletRequest) request;
+
+ if (servlet4Request.getServletMapping().getMappingMatch() == MappingMatch.DEFAULT &&
+ response.getStatus() == HttpServletResponse.SC_NOT_MODIFIED) {
+ // Default servlet normally sets the content type but does not for
+ // 304 responses. Look it up.
+ String servletPath = request.getServletPath();
+ if (servletPath != null) {
+ int lastSlash = servletPath.lastIndexOf('/');
+ if (lastSlash > -1) {
+ String fileName = servletPath.substring(lastSlash + 1);
+ contentType = request.getServletContext().getMimeType(fileName);
+ }
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org