Skip to content

Commit 4dd6455

Browse files
committed
Unit test & clean up
1 parent 2c44b78 commit 4dd6455

File tree

2 files changed

+26
-20
lines changed

2 files changed

+26
-20
lines changed

gateway-ha/src/main/java/com/lyft/data/gateway/ha/handler/QueryIdCachingProxyHandler.java

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -83,28 +83,11 @@ public void preConnectionHook(HttpServletRequest request, Request proxyRequest)
8383
}
8484

8585
if (isPathWhiteListed(request.getRequestURI())) {
86-
// Set the Host Header to proxy target
8786
setForwardedHostHeaderOnProxyRequest(request, proxyRequest);
88-
logRequestHeaders("After Setting Host Header on proxyRequest", proxyRequest);
8987
}
9088

9189
}
9290

93-
private void logRequestHeaders(String msg, Request request) {
94-
HttpFields httpFields = request.getHeaders();
95-
StringBuilder sb = new StringBuilder();
96-
if (httpFields != null) {
97-
Enumeration<String> headerNameFields = httpFields.getFieldNames();
98-
while (headerNameFields.hasMoreElements()) {
99-
String headerName = headerNameFields.nextElement();
100-
String value = httpFields.get(headerName);
101-
sb.append(headerName).append(":").append(value).append(",");
102-
}
103-
}
104-
log.debug("[{}] For Request [{}], headers are [{}]", msg, request.getURI().toString(),
105-
sb.toString());
106-
}
107-
10891
private boolean isPathWhiteListed(String path) {
10992
return path.startsWith(V1_STATEMENT_PATH)
11093
|| path.startsWith(V1_QUERY_PATH)
@@ -282,8 +265,8 @@ protected void postConnectionHook(
282265
super.postConnectionHook(request, response, buffer, offset, length, callback);
283266
}
284267

285-
private void setForwardedHostHeaderOnProxyRequest(HttpServletRequest request,
286-
Request proxyRequest) {
268+
static void setForwardedHostHeaderOnProxyRequest(HttpServletRequest request,
269+
Request proxyRequest) {
287270
if (request.getHeader(PROXY_TARGET_HEADER) != null) {
288271
try {
289272
URI backendUri = new URI(request.getHeader(PROXY_TARGET_HEADER));

gateway-ha/src/test/java/com/lyft/data/gateway/ha/handler/TestQueryIdCachingProxyHandler.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44
import static org.testng.Assert.assertNull;
55

66
import java.io.IOException;
7+
8+
import javax.servlet.http.HttpServletRequest;
9+
10+
import org.eclipse.jetty.client.HttpClient;
11+
import org.eclipse.jetty.client.api.Request;
12+
import org.mockito.Mockito;
13+
import org.testng.Assert;
714
import org.testng.annotations.Test;
815

916
public class TestQueryIdCachingProxyHandler {
@@ -17,7 +24,7 @@ public void testExtractQueryIdFromUrl() throws IOException {
1724
"/ui/api/query.html?20200416_160256_03078_6b4yt"};
1825
for (String path : paths) {
1926
String queryId = QueryIdCachingProxyHandler.extractQueryIdIfPresent(path, null);
20-
assertEquals(queryId,"20200416_160256_03078_6b4yt");
27+
assertEquals(queryId, "20200416_160256_03078_6b4yt");
2128
}
2229
String[] nonPaths = {
2330
"/ui/api/query/myOtherThing",
@@ -27,4 +34,20 @@ public void testExtractQueryIdFromUrl() throws IOException {
2734
assertNull(queryId);
2835
}
2936
}
37+
38+
@Test
39+
public void testForwardedHostHeaderOnProxyRequest() throws IOException {
40+
String backendServer = "prestocluster";
41+
String backendPort = "80";
42+
HttpServletRequest mockServletRequest = Mockito.mock(HttpServletRequest.class);
43+
Mockito.when(mockServletRequest.getHeader("proxytarget")).thenReturn(String.format("http://%s"
44+
+ ":%s", backendServer, backendPort));
45+
HttpClient httpClient = new HttpClient();
46+
Request proxyRequest = httpClient.newRequest("http://localhost:80");
47+
QueryIdCachingProxyHandler.setForwardedHostHeaderOnProxyRequest(mockServletRequest,
48+
proxyRequest);
49+
Assert.assertEquals(proxyRequest.getHeaders().get("Host"), String.format("%s:%s",
50+
backendServer, backendPort));
51+
}
52+
3053
}

0 commit comments

Comments
 (0)