From 541a439453327ac22b1509004db47bf675c6de83 Mon Sep 17 00:00:00 2001 From: Francis Dong Date: Tue, 12 Apr 2022 16:30:06 +0800 Subject: [PATCH] fix casting issue of list value of default header of aggregation --- .../input/extension/request/RequestInput.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/fizz-core/src/main/java/we/fizz/input/extension/request/RequestInput.java b/fizz-core/src/main/java/we/fizz/input/extension/request/RequestInput.java index 1964a5d..efc50dc 100644 --- a/fizz-core/src/main/java/we/fizz/input/extension/request/RequestInput.java +++ b/fizz-core/src/main/java/we/fizz/input/extension/request/RequestInput.java @@ -17,6 +17,7 @@ package we.fizz.input.extension.request; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -365,8 +366,20 @@ public class RequestInput extends RPCInput implements IInput{ // add default headers SystemConfig systemConfig = this.getCurrentApplicationContext().getBean(SystemConfig.class); for (String hdr : systemConfig.getProxySetHeaders()) { - if(inputContext.getStepContext().getInputReqHeader(hdr) != null) { - headers.addIfAbsent(hdr, (String) inputContext.getStepContext().getInputReqHeader(hdr)); + if(inputContext.getStepContext().getInputReqHeader(hdr) != null && !headers.containsKey(hdr)) { + Object o = inputContext.getStepContext().getInputReqHeader(hdr); + if (o instanceof String) { + headers.add(hdr, (String) o); + } else if (o instanceof List){ + List list = (List) o; + List vals = new ArrayList<>(); + for (Object item : list) { + if (item != null) { + vals.add(item.toString()); + } + } + headers.addAll(hdr, vals); + } } }