From 4342956d06b01f670bcf5972361b5cd2525dd772 Mon Sep 17 00:00:00 2001 From: Andreas Dinauer Date: Sun, 15 Mar 2026 16:15:31 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20Fixed=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dev/dinauer/oidcproxy/ProxyResource.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/dinauer/oidcproxy/ProxyResource.java b/src/main/java/dev/dinauer/oidcproxy/ProxyResource.java index adfafda..3d303b8 100644 --- a/src/main/java/dev/dinauer/oidcproxy/ProxyResource.java +++ b/src/main/java/dev/dinauer/oidcproxy/ProxyResource.java @@ -65,7 +65,8 @@ public class ProxyResource LOG.info("Matched route with target '{}'", route.target()); try { - HttpResponse response = forward(context.request().headers(), context.request().method(), context.body().buffer().getBytes(), route.strategy(), extractSession(context.request().cookies()), route.target(), concat(dropRoute(route.segments(), requestSegments))); + byte[] body = extractBody(context); + 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 +82,26 @@ public class ProxyResource } } + private byte[] extractBody(RoutingContext context) + { + if (context.body().buffer() != null) + { + return context.body().buffer().getBytes(); + } + return null; + } + 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.ofByteArray(body)).uri(URI.create(forwardRoot + "/" + forwardPath)); + HttpRequest.Builder builder = HttpRequest.newBuilder().uri(URI.create(forwardRoot + "/" + forwardPath)); + if (body != null) + { + builder.method(method.name(), HttpRequest.BodyPublishers.ofByteArray(body)); + } + else + { + builder.method(method.name(), HttpRequest.BodyPublishers.noBody()); + } for (Map.Entry entry : headers.entries()) { try