Update docs for REQUEST_URI_KEY in zuul

This commit is contained in:
Spencer Gibb
2017-03-03 15:19:10 -07:00
parent 5212d138f8
commit 6df7190472
4 changed files with 13 additions and 9 deletions
@@ -1917,6 +1917,8 @@ The filter above populates `SERVICE_ID_KEY` from the `foo` request parameter. In
Now that `SERVICE_ID_KEY` is populated, `PreDecorationFilter` won't run and `RibbonRoutingFilter` will. If you wanted to route to a full URL instead, call `ctx.setRouteHost(url)` instead.
To modify the path that routing filters will forward to, set the `REQUEST_URI_KEY`.
==== How to Write a Route Filter
Route filters are run after pre filters and are used to make requests to other services. Much of the work here is to translate request and response data to and from the client required model.
@@ -16,9 +16,6 @@
package org.springframework.cloud.netflix.zuul.filters;
import static org.springframework.http.HttpHeaders.CONTENT_ENCODING;
import static org.springframework.http.HttpHeaders.CONTENT_LENGTH;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
@@ -45,6 +42,10 @@ import org.springframework.web.util.WebUtils;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.util.HTTPRequestUtils;
import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.REQUEST_URI_KEY;
import static org.springframework.http.HttpHeaders.CONTENT_ENCODING;
import static org.springframework.http.HttpHeaders.CONTENT_LENGTH;
import lombok.extern.apachecommons.CommonsLog;
/**
@@ -88,7 +89,7 @@ public class ProxyRequestHelper {
public String buildZuulRequestURI(HttpServletRequest request) {
RequestContext context = RequestContext.getCurrentContext();
String uri = request.getRequestURI();
String contextURI = (String) context.get("requestURI");
String contextURI = (String) context.get(REQUEST_URI_KEY);
if (contextURI != null) {
try {
uri = UriUtils.encodePath(contextURI, characterEncoding(request));
@@ -51,7 +51,7 @@ public interface FilterConstants {
String REQUEST_ENTITY_KEY = "requestEntity";
/**
* Zuul {@link com.netflix.zuul.context.RequestContext} key for use in TODO: determine use
* Zuul {@link com.netflix.zuul.context.RequestContext} key for use in to override the path of the request.
*/
String REQUEST_URI_KEY = "requestURI";
@@ -43,6 +43,7 @@ import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.REQUEST_URI_KEY;
/**
* @author Spencer Gibb
@@ -290,7 +291,7 @@ public class ProxyRequestHelperTests {
request.setCharacterEncoding("UTF-8");
final RequestContext context = RequestContext.getCurrentContext();
context.setRequest(request);
context.set("requestURI", decodedURI);
context.set(REQUEST_URI_KEY, decodedURI);
final String requestURI = new ProxyRequestHelper().buildZuulRequestURI(request);
assertThat(requestURI, equalTo(encodedURI));
@@ -304,7 +305,7 @@ public class ProxyRequestHelperTests {
MockHttpServletRequest request = new MockHttpServletRequest("GET", encodedURI);
final RequestContext context = RequestContext.getCurrentContext();
context.setRequest(request);
context.set("requestURI", decodedURI);
context.set(REQUEST_URI_KEY, decodedURI);
final String requestURI = new ProxyRequestHelper().buildZuulRequestURI(request);
assertThat(requestURI, equalTo(encodedURI));
@@ -318,7 +319,7 @@ public class ProxyRequestHelperTests {
request.setCharacterEncoding("UTF-8");
RequestContext context = RequestContext.getCurrentContext();
context.set("requestURI", requestURI);
context.set(REQUEST_URI_KEY, requestURI);
ProxyRequestHelper helper = new ProxyRequestHelper();
@@ -334,7 +335,7 @@ public class ProxyRequestHelperTests {
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestURI);
RequestContext context = RequestContext.getCurrentContext();
context.set("requestURI", requestURI);
context.set(REQUEST_URI_KEY, requestURI);
ProxyRequestHelper helper = new ProxyRequestHelper();