From aa7d9afeb2275c5502b937299e39430e916791fe Mon Sep 17 00:00:00 2001 From: Patrick Boos Date: Mon, 18 Mar 2024 17:08:02 +0100 Subject: [PATCH] update: ignore unexpected body on GET/DELETE/OPTIONS/HEAD/TRACE --- .../filter/OpenApiValidationInterceptor.java | 6 ++++++ .../validation/filter/BaseFilterTest.java | 4 ++++ .../OpenApiValidationInterceptorTest.java | 18 +++++++++++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/filter/OpenApiValidationInterceptor.java b/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/filter/OpenApiValidationInterceptor.java index df73fd61..a8847d8e 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/filter/OpenApiValidationInterceptor.java +++ b/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/filter/OpenApiValidationInterceptor.java @@ -155,6 +155,12 @@ private List validateRequest( } private static String readBodyCatchingException(MultiReadContentCachingRequestWrapper request) { + if (!"POST".equalsIgnoreCase(request.getMethod()) + && !"PUT".equalsIgnoreCase(request.getMethod()) + && !"PATCH".equalsIgnoreCase(request.getMethod())) { + return null; + } + try { return StreamUtils.copyToString(request.getInputStream(), StandardCharsets.UTF_8); } catch (IOException e) { diff --git a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/filter/BaseFilterTest.java b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/filter/BaseFilterTest.java index b7c01b95..a7e93349 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/filter/BaseFilterTest.java +++ b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/filter/BaseFilterTest.java @@ -53,6 +53,7 @@ private static void mockRequestAttributes(ServletRequest request, HashMap