diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java index bf9b796c..0c3fb4c3 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java @@ -74,6 +74,7 @@ public class RibbonRoutingFilter extends SpringFilter { getBean(RibbonClientPreprocessor.class).preprocess(serviceId); + //TODO: update to ribbon-rxnetty when available RestClient restClient = getBean(SpringClientFactory.class).namedClient(serviceId, RestClient.class); String uri = request.getRequestURI(); @@ -199,6 +200,10 @@ public class RibbonRoutingFilter extends SpringFilter { private InputStream getRequestBody(HttpServletRequest request) { InputStream requestEntity = null; + //ApacheHttpClient4Handler does not support body in delete requests + if (request.getMethod().equals("DELETE")) { + return null; + } try { requestEntity = (InputStream) RequestContext.getCurrentContext().get( "requestEntity"); diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/zuul/SampleZuulProxyApplicationTests.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/zuul/SampleZuulProxyApplicationTests.java index 6dda1c3d..1a0b29da 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/zuul/SampleZuulProxyApplicationTests.java +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/zuul/SampleZuulProxyApplicationTests.java @@ -32,7 +32,7 @@ public class SampleZuulProxyApplicationTests { private ZuulHandlerMapping mapping; @Test - public void deleteOnSelf() { + public void deleteOnSelfViaSimpleHostRoutingFilter() { routes.getRoutes().put("/self/**", "http://localhost:" + port + "/local"); mapping.registerHandlers(routes.getRoutes()); ResponseEntity result = new TestRestTemplate().exchange("http://localhost:" + port + "/self/1",