Update docs for REQUEST_URI_KEY in zuul

parent 5212d138
......@@ -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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment