Author: rwesten
Date: Thu Apr 18 12:09:25 2013
New Revision: 1469290

URL: http://svn.apache.org/r1469290
Log:
STANBOL-979: headers parsed as query parameters are now case insensitive

Modified:
    
stanbol/trunk/commons/httpqueryheaders/src/main/java/org/apache/stanbol/commons/httpqueryheaders/OverwriteableHeaderHttpServletRequest.java

Modified: 
stanbol/trunk/commons/httpqueryheaders/src/main/java/org/apache/stanbol/commons/httpqueryheaders/OverwriteableHeaderHttpServletRequest.java
URL: 
http://svn.apache.org/viewvc/stanbol/trunk/commons/httpqueryheaders/src/main/java/org/apache/stanbol/commons/httpqueryheaders/OverwriteableHeaderHttpServletRequest.java?rev=1469290&r1=1469289&r2=1469290&view=diff
==============================================================================
--- 
stanbol/trunk/commons/httpqueryheaders/src/main/java/org/apache/stanbol/commons/httpqueryheaders/OverwriteableHeaderHttpServletRequest.java
 (original)
+++ 
stanbol/trunk/commons/httpqueryheaders/src/main/java/org/apache/stanbol/commons/httpqueryheaders/OverwriteableHeaderHttpServletRequest.java
 Thu Apr 18 12:09:25 2013
@@ -23,9 +23,12 @@ import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.Map.Entry;
+import java.util.TreeMap;
+import java.util.TreeSet;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
@@ -41,7 +44,8 @@ import org.slf4j.LoggerFactory;
 public class OverwriteableHeaderHttpServletRequest extends 
HttpServletRequestWrapper {
 
     Logger log = 
LoggerFactory.getLogger(OverwriteableHeaderHttpServletRequest.class);
-    Map<String,List<String>> overriddenHeaders = new 
HashMap<String,List<String>>();
+    //headers are case insensitive
+    Map<String,List<String>> overriddenHeaders = new 
TreeMap<String,List<String>>(String.CASE_INSENSITIVE_ORDER);
     
     public OverwriteableHeaderHttpServletRequest(HttpServletRequest request) {
         super(request);
@@ -118,7 +122,7 @@ public class OverwriteableHeaderHttpServ
     
     @Override
     public Enumeration getHeaderNames() {
-        Set<String> names = new HashSet<String>();
+        Set<String> names = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
         Enumeration<String> e = super.getHeaderNames();
         if(e != null){
             while(e.hasMoreElements()){
@@ -128,7 +132,7 @@ public class OverwriteableHeaderHttpServ
         for(Entry<String,List<String>> entry : overriddenHeaders.entrySet()){
             if(entry.getValue() == null){
                 names.remove(entry.getKey());
-            } else {
+            } else if(!names.contains(entry.getKey())){
                 names.add(entry.getKey());
             }
         }


Reply via email to