Skip to content

Commit 7602976

Browse files
committed
Merge pull request #160 from alexpogue/safeheaders
Add defensive code behind extraHeaders
2 parents 4549349 + 3e90dde commit 7602976

File tree

1 file changed

+12
-0
lines changed
  • com.ibm.streamsx.inet/impl/java/src/com/ibm/streamsx/inet/http

1 file changed

+12
-0
lines changed

com.ibm.streamsx.inet/impl/java/src/com/ibm/streamsx/inet/http/HTTPUtils.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
import java.io.InputStreamReader;
1313
import java.net.HttpURLConnection;
1414
import java.net.URL;
15+
import java.util.Collections;
1516
import java.util.HashMap;
1617
import java.util.List;
1718
import java.util.Map;
19+
import java.util.logging.Logger;
1820
import java.security.SecureRandom;
1921
import java.security.cert.X509Certificate;
2022

@@ -31,8 +33,13 @@
3133
import org.apache.http.impl.client.DefaultHttpClient;
3234
import org.apache.http.impl.conn.BasicClientConnectionManager;
3335

36+
import com.ibm.streams.operator.logging.TraceLevel;
37+
3438
public class HTTPUtils {
3539

40+
static final String CLASS_NAME="com.ibm.streamsx.inet.http.HTTPUtils";
41+
private static Logger trace = Logger.getLogger(CLASS_NAME);
42+
3643
public static HttpURLConnection getNewConnection(String url)
3744
throws IOException {
3845
return (HttpURLConnection)new URL(url).openConnection();
@@ -59,9 +66,14 @@ public static String readFromStream(InputStream stream) {
5966
}
6067

6168
public static Map<String, String> getHeaderMap(List<String> headers) {
69+
if(headers == null) return Collections.emptyMap();
6270
Map<String, String> headerMap = new HashMap<String, String>(headers.size());
6371
for(String header : headers) {
6472
String[] headerParts = header.split(":\\s*", 2);
73+
if(headerParts.length < 2) {
74+
trace.log(TraceLevel.ERROR, "No ':' found in extraHeaders element '" + header + "', skipping");
75+
continue;
76+
}
6577
String headerName = headerParts[0];
6678
String headerValue = headerParts[1];
6779
headerMap.put(headerName, headerValue);

0 commit comments

Comments
 (0)