From 9add6f1edfa9ca2064593195b9f2b0d29117baad Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Wed, 26 Nov 2014 13:38:26 -0700 Subject: [PATCH] don't send an entity on DELETE's through RibbonRoutingFilter fixes gh-73 --- .../netflix/zuul/filters/route/RibbonRoutingFilter.java | 5 +++++ .../cloud/netflix/zuul/SampleZuulProxyApplicationTests.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) 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",