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/07/30 14:26:21 UTC
[tomcat] 03/04: Align with master. Use FastDateFormat to parse date
headers
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
commit a7a8ea8ef61c61761cffc0322d9a3c567a847e16
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Jul 30 15:19:11 2019 +0100
Align with master. Use FastDateFormat to parse date headers
---
.../apache/catalina/filters/RemoteIpFilter.java | 33 +++-------------------
1 file changed, 4 insertions(+), 29 deletions(-)
diff --git a/java/org/apache/catalina/filters/RemoteIpFilter.java b/java/org/apache/catalina/filters/RemoteIpFilter.java
index a0dee98..f513ccd 100644
--- a/java/org/apache/catalina/filters/RemoteIpFilter.java
+++ b/java/org/apache/catalina/filters/RemoteIpFilter.java
@@ -17,18 +17,13 @@
package org.apache.catalina.filters;
import java.io.IOException;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
import java.util.regex.Pattern;
@@ -49,6 +44,7 @@ import org.apache.catalina.connector.RequestFacade;
import org.apache.catalina.servlet4preview.http.PushBuilder;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.http.FastHttpDateFormat;
import org.apache.tomcat.util.res.StringManager;
/**
@@ -448,18 +444,6 @@ public class RemoteIpFilter implements Filter {
public static class XForwardedRequest extends HttpServletRequestWrapper {
- static final ThreadLocal<SimpleDateFormat[]> threadLocalDateFormats = new ThreadLocal<SimpleDateFormat[]>() {
- @Override
- protected SimpleDateFormat[] initialValue() {
- return new SimpleDateFormat[] {
- new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US),
- new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss zzz", Locale.US),
- new SimpleDateFormat("EEE MMMM d HH:mm:ss yyyy", Locale.US)
- };
-
- }
- };
-
protected final Map<String, List<String>> headers;
protected int localPort;
@@ -496,20 +480,11 @@ public class RemoteIpFilter implements Filter {
if (value == null) {
return -1;
}
- DateFormat[] dateFormats = threadLocalDateFormats.get();
- Date date = null;
- for (int i = 0; ((i < dateFormats.length) && (date == null)); i++) {
- DateFormat dateFormat = dateFormats[i];
- try {
- date = dateFormat.parse(value);
- } catch (ParseException ex) {
- // Ignore
- }
- }
- if (date == null) {
+ long date = FastHttpDateFormat.parseDate(value);
+ if (date == -1) {
throw new IllegalArgumentException(value);
}
- return date.getTime();
+ return date;
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org