KNOX-1727 - Values should not be forced in query parameters when proxying through...
authorKevin Risden <krisden@apache.org>
Mon, 7 Jan 2019 17:23:30 +0000 (12:23 -0500)
committerKevin Risden <krisden@apache.org>
Mon, 7 Jan 2019 18:33:39 +0000 (13:33 -0500)
Signed-off-by: Kevin Risden <krisden@apache.org>
gateway-util-common/src/main/java/org/apache/knox/gateway/util/HttpUtils.java
gateway-util-common/src/test/java/org/apache/knox/gateway/util/HttpUtilsTest.java

index c318854..ac96214 100644 (file)
@@ -28,7 +28,6 @@ import java.util.Map;
 import java.util.StringTokenizer;
 
 public class HttpUtils {
-
   public static Map<String, List<String>> splitQuery(String queryString)
       throws UnsupportedEncodingException {
     final Map<String, List<String>> queryPairs = new LinkedHashMap<>();
@@ -42,10 +41,10 @@ public class HttpUtils {
       if (!queryPairs.containsKey(key)) {
         queryPairs.put(key, new ArrayList<>());
       }
-      final String value = idx > 0 && pair.length() > idx + 1
-          ? URLDecoder.decode(pair.substring(idx + 1), StandardCharsets.UTF_8.name()) : "";
-        queryPairs.get(key).add(value);
-      }
+      final String value = idx > 0 && pair.length() > idx
+          ? URLDecoder.decode(pair.substring(idx + 1), StandardCharsets.UTF_8.name()) : null;
+      queryPairs.get(key).add(value);
+    }
     return queryPairs;
   }
 
index 13b92c3..05aea58 100644 (file)
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 
@@ -126,28 +127,28 @@ public class HttpUtilsTest {
     assertThat( map.size(), is( 1 ) );
     assertThat( map.containsKey( "test-name" ), is( true ) );
     assertThat( map.get( "test-name" ).size(), is( 1 ) );
-    assertThat( map.get( "test-name" ).get(0), is("") );
+    assertThat( map.get( "test-name" ).get(0), nullValue() );
 
     map = HttpUtils.splitQuery( "=test-value" );
     assertThat( map, notNullValue() );
     assertThat( map.size(), is( 1 ) );
     assertThat( map.containsKey( "=test-value" ), is( true ) );
     assertThat( map.get( "=test-value" ).size(), is( 1 ) );
-    assertThat( map.get( "=test-value" ).get(0), is( "" ) );
+    assertThat( map.get( "=test-value" ).get(0), nullValue() );
 
     map = HttpUtils.splitQuery( "=" );
     assertThat( map, notNullValue() );
     assertThat( map.size(), is( 1 ) );
     assertThat( map.containsKey( "=" ), is( true ) );
     assertThat( map.get( "=" ).size(), is( 1 ) );
-    assertThat( map.get( "=" ).get(0), is( "" ) );
+    assertThat( map.get( "=" ).get(0), nullValue() );
 
     map = HttpUtils.splitQuery( "==" );
     assertThat( map, notNullValue() );
     assertThat( map.size(), is( 1 ) );
     assertThat( map.containsKey( "==" ), is( true ) );
     assertThat( map.get( "==" ).size(), is( 1 ) );
-    assertThat( map.get( "==" ).get(0), is( "" ) );
+    assertThat( map.get( "==" ).get(0), nullValue() );
 
     map = HttpUtils.splitQuery( "&" );
     assertThat( map, notNullValue() );
@@ -159,14 +160,14 @@ public class HttpUtilsTest {
     assertThat( map.size(), is( 1 ) );
     assertThat( map.containsKey( "?" ), is( true ) );
     assertThat( map.get( "?" ).size(), is( 1 ) );
-    assertThat( map.get( "?" ).get(0), is("") );
+    assertThat( map.get( "?" ).get(0), nullValue() );
 
     map = HttpUtils.splitQuery( ";" );
     assertThat( map, notNullValue() );
     assertThat( map.size(), is( 1 ) );
     assertThat( map.containsKey( ";" ), is( true ) );
     assertThat( map.get( ";" ).size(), is( 1 ) );
-    assertThat( map.get( ";" ).get(0), is("") );
+    assertThat( map.get( ";" ).get(0), nullValue() );
 
     map = HttpUtils.splitQuery( "&=" );
     assertThat( map, notNullValue() );
@@ -174,17 +175,17 @@ public class HttpUtilsTest {
     assertThat( map.keySet(), is(new LinkedHashSet<>(Arrays.asList("", "="))));
     assertThat( map.containsKey( "" ), is( true ) );
     assertThat( map.get( "" ).size(), is( 1 ) );
-    assertThat( map.get( "" ).get(0), is( "" ) );
+    assertThat( map.get( "" ).get(0), nullValue() );
     assertThat( map.containsKey( "=" ), is( true ) );
     assertThat( map.get( "=" ).size(), is( 1 ) );
-    assertThat( map.get( "=" ).get(0), is("") );
+    assertThat( map.get( "=" ).get(0), nullValue() );
 
     map = HttpUtils.splitQuery( "=&" );
     assertThat( map, notNullValue() );
     assertThat( map.size(), is( 1 ) );
     assertThat( map.containsKey( "=" ), is( true ) );
     assertThat( map.get( "=" ).size(), is( 1 ) );
-    assertThat( map.get( "=" ).get(0), is( "" ) );
+    assertThat( map.get( "=" ).get(0), nullValue() );
 
     map = HttpUtils.splitQuery( "&&" );
     assertThat( map, notNullValue() );