Jelajahi Sumber

修复缓存请求头大小写敏感问题

Woody 1 bulan lalu
induk
melakukan
432b343cdf

+ 12 - 3
framework-base/src/main/java/com/chelvc/framework/base/interceptor/RequestCachingInterceptor.java

@@ -204,7 +204,10 @@ public class RequestCachingInterceptor extends OncePerRequestFilter {
 
         @Override
         public String getHeader(String name) {
-            String[] values = this.headers.get(name);
+            if (StringUtils.isEmpty(name)) {
+                return null;
+            }
+            String[] values = this.headers.get(name.toLowerCase());
             return ObjectUtils.isEmpty(values) ? null : values[0];
         }
 
@@ -223,7 +226,10 @@ public class RequestCachingInterceptor extends OncePerRequestFilter {
 
         @Override
         public Enumeration<String> getHeaders(String name) {
-            return ObjectUtils.enumeration(this.headers.get(name));
+            if (StringUtils.isEmpty(name)) {
+                return Collections.emptyEnumeration();
+            }
+            return ObjectUtils.enumeration(this.headers.get(name.toLowerCase()));
         }
 
         @Override
@@ -236,6 +242,9 @@ public class RequestCachingInterceptor extends OncePerRequestFilter {
 
         @Override
         public String getParameter(String name) {
+            if (StringUtils.isEmpty(name)) {
+                return null;
+            }
             String[] values = this.parameters.get(name);
             return ObjectUtils.isEmpty(values) ? null : values[0];
         }
@@ -255,7 +264,7 @@ public class RequestCachingInterceptor extends OncePerRequestFilter {
 
         @Override
         public String[] getParameterValues(String name) {
-            return this.parameters.get(name);
+            return StringUtils.isEmpty(name) ? null : this.parameters.get(name);
         }
 
         @Override

+ 2 - 1
framework-base/src/main/java/com/chelvc/framework/base/util/HttpUtils.java

@@ -328,7 +328,8 @@ public final class HttpUtils {
         Map<String, String[]> headers = Maps.newHashMap();
         while (names.hasMoreElements()) {
             String name = names.nextElement();
-            headers.put(name, ObjectUtils.array(String.class, request.getHeaders(name)));
+            Enumeration<String> values = request.getHeaders(name);
+            headers.put(name.toLowerCase(), ObjectUtils.array(String.class, values));
         }
         return headers.isEmpty() ? Collections.emptyMap() : Collections.unmodifiableMap(headers);
     }