diff --git a/src/main/java/dev/dinauer/oidcproxy/ProxyResource.java b/src/main/java/dev/dinauer/oidcproxy/ProxyResource.java index 8dbf3f8..3862adb 100644 --- a/src/main/java/dev/dinauer/oidcproxy/ProxyResource.java +++ b/src/main/java/dev/dinauer/oidcproxy/ProxyResource.java @@ -54,7 +54,7 @@ public class ProxyResource } @Route(path = "/*", order = 1) - public void proxy(@Context RoutingContext context) + public void proxy(@Context RoutingContext context, byte[] body) { List requestSegments = Arrays.stream(context.request().path().split("/")).filter(item -> !StringUtils.isBlank(item)).toList(); @@ -65,7 +65,7 @@ public class ProxyResource LOG.info("Matched route with target '{}'", route.target()); try { - HttpResponse response = forward(context.request().headers(), context.request().method(), route.strategy(), extractSession(context.request().cookies()), route.target(), concat(dropRoute(route.segments(), requestSegments))); + HttpResponse response = forward(context.request().headers(), context.request().method(), body, route.strategy(), extractSession(context.request().cookies()), route.target(), concat(dropRoute(route.segments(), requestSegments))); ResponseHandler.success(context, response); } catch (Exception e) @@ -81,9 +81,9 @@ public class ProxyResource } } - public HttpResponse forward(MultiMap headers, HttpMethod method, String strategy, String auth, String forwardRoot, String forwardPath) throws IOException, InterruptedException + public HttpResponse forward(MultiMap headers, HttpMethod method, byte[] body, String strategy, String auth, String forwardRoot, String forwardPath) throws IOException, InterruptedException { - HttpRequest.Builder builder = HttpRequest.newBuilder().method(method.name(), HttpRequest.BodyPublishers.noBody()).uri(URI.create(forwardRoot + "/" + forwardPath)); + HttpRequest.Builder builder = HttpRequest.newBuilder().method(method.name(), HttpRequest.BodyPublishers.ofByteArray(body)).uri(URI.create(forwardRoot + "/" + forwardPath)); for (Map.Entry entry : headers.entries()) { try