Adds null check in quoteIfNeeded

fixes gh-337
This commit is contained in:
Spencer Gibb
2018-05-25 11:57:54 +02:00
parent 7a1bbf08b3
commit 96f5c650bf
2 changed files with 24 additions and 1 deletions

View File

@@ -147,7 +147,7 @@ public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
private String quoteIfNeeded(String s) {
if (s.contains(":")) { //TODO: broaded quote
if (s != null && s.contains(":")) { //TODO: broaded quote
return "\""+s+"\"";
}
return s;

View File

@@ -67,6 +67,29 @@ public class ForwardedHeadersFilterTests {
.containsEntry("for", "\"10.0.0.1:80\"");
}
@Test
public void noHostHeader() throws UnknownHostException {
MockServerHttpRequest request = MockServerHttpRequest
.get("http://localhost/get")
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
.build();
ForwardedHeadersFilter filter = new ForwardedHeadersFilter();
HttpHeaders headers = filter.filter(request.getHeaders(), MockServerWebExchange.from(request));
assertThat(headers.get(FORWARDED_HEADER)).hasSize(1);
List<Forwarded> forwardeds = ForwardedHeadersFilter.parse(headers.get(FORWARDED_HEADER));
assertThat(forwardeds).hasSize(1);
Forwarded forwarded = forwardeds.get(0);
assertThat(forwarded.getValues())
.containsEntry("proto", "http")
.containsEntry("for", "\"10.0.0.1:80\"");
}
@Test
public void forwardedParsedCorrectly() {
String[] valid = new String[] {