From 6a284f5528f619f4a3199c7c86475616a74997af Mon Sep 17 00:00:00 2001 From: hongqiaowei Date: Fri, 15 Oct 2021 15:27:42 +0800 Subject: [PATCH] RequestBodyPlugin can be extended multi times --- fizz-core/src/main/java/we/fizz/input/PathMapping.java | 4 ++-- .../main/java/we/plugin/requestbody/RequestBodyPlugin.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/fizz-core/src/main/java/we/fizz/input/PathMapping.java b/fizz-core/src/main/java/we/fizz/input/PathMapping.java index 06a7b11..95d4064 100644 --- a/fizz-core/src/main/java/we/fizz/input/PathMapping.java +++ b/fizz-core/src/main/java/we/fizz/input/PathMapping.java @@ -231,7 +231,7 @@ public class PathMapping { obj = cast(obj, type, path); } } catch (Exception e) { - e.printStackTrace(); + // e.printStackTrace(); throw new FizzRuntimeException(String.format("path mapping errer: %s , path mapping data: %s %s", e.getMessage(), type, path), e); } } @@ -298,7 +298,7 @@ public class PathMapping { } return obj; } catch (Exception e) { - e.printStackTrace(); + // e.printStackTrace(); throw new FizzRuntimeException(String.format("failed to cast %s to %s, JSON path expression: %s, error: %s", obj, type, path, e.getMessage()), e); } } diff --git a/fizz-core/src/main/java/we/plugin/requestbody/RequestBodyPlugin.java b/fizz-core/src/main/java/we/plugin/requestbody/RequestBodyPlugin.java index ab757f3..bd1f8a1 100644 --- a/fizz-core/src/main/java/we/plugin/requestbody/RequestBodyPlugin.java +++ b/fizz-core/src/main/java/we/plugin/requestbody/RequestBodyPlugin.java @@ -37,7 +37,6 @@ import java.util.Map; /** * Your plugin P can extend this class and override the doFilter method, then you can modify the request later. - * warn: P and @Component(RequestBodyPlugin.REQUEST_BODY_PLUGIN) can't be applied at the same time. * * @author hongqiaowei */ @@ -53,6 +52,9 @@ public class RequestBodyPlugin implements FizzPluginFilter { public Mono filter(ServerWebExchange exchange, Map config) { ServerHttpRequest req = exchange.getRequest(); + if (req instanceof FizzServerHttpRequestDecorator) { + return doFilter(exchange, config); + } return NettyDataBufferUtils.join(req.getBody()).defaultIfEmpty(NettyDataBufferUtils.EMPTY_DATA_BUFFER) .flatMap(