From b006914c5e66657ef0c8db36b066f87548c982a7 Mon Sep 17 00:00:00 2001 From: pandaapo <1052156701@qq.com> Date: Wed, 28 Sep 2022 06:15:08 +0800 Subject: [PATCH] fix pr 606: modify a part of changes requested by review. --- .../core/DecodeTransferMetadataReactiveFilter.java | 7 +++---- .../core/DecodeTransferMetadataServletFilter.java | 8 ++++---- .../metadata/core/EncodeTransferMedataScgFilter.java | 6 +++--- .../cloud/common/metadata/StaticMetadataManager.java | 2 +- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java index cd6453c69..c5ce5bfbc 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java @@ -25,7 +25,6 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.Set; import com.tencent.cloud.common.constant.MetadataConstant; @@ -99,12 +98,12 @@ public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered * the complete headers(key-value list in map type) into metadata. */ private void setCompleteTransHeaderIntoMC(ServerHttpRequest serverHttpRequest) { - // transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}} + // transHeaderMetadata: for example, {"trans-headers" : {"header1,header2,header3":""}} Map transHeaderMetadata = MetadataContextHolder.get() .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS); if (!CollectionUtils.isEmpty(transHeaderMetadata)) { - Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst(); - String[] transHeaderArray = transHeaders.get().split(","); + String transHeaders = transHeaderMetadata.keySet().stream().findFirst().orElse(""); + String[] transHeaderArray = transHeaders.split(","); HttpHeaders headers = serverHttpRequest.getHeaders(); Set headerKeys = headers.keySet(); Iterator iterator = headerKeys.iterator(); diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java index 83dce6bbd..4432a41c3 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java @@ -25,7 +25,6 @@ import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; -import java.util.Optional; import javax.servlet.FilterChain; import javax.servlet.ServletException; @@ -86,18 +85,19 @@ public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter { * the complete headers(key-value list in map type) into metadata. */ private void setCompleteTransHeaderIntoMC(HttpServletRequest httpServletRequest) { - // transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}} + // transHeaderMetadata: for example, {"trans-headers" : {"header1,header2,header3":""}} Map transHeaderMetadata = MetadataContextHolder.get() .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS); if (!CollectionUtils.isEmpty(transHeaderMetadata)) { - Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst(); - String[] transHeaderArray = transHeaders.get().split(","); + String transHeaders = transHeaderMetadata.keySet().stream().findFirst().orElse(""); + String[] transHeaderArray = transHeaders.split(","); Enumeration httpHeaders = httpServletRequest.getHeaderNames(); while (httpHeaders.hasMoreElements()) { String httpHeader = httpHeaders.nextElement(); Arrays.stream(transHeaderArray).forEach(transHeader -> { if (transHeader.equals(httpHeader)) { String httpHeaderValue = httpServletRequest.getHeader(httpHeader); + // for example, {"trans-headers-kv" : {"header1":"v1","header2":"v2"...}} MetadataContextHolder.get().putContext(FRAGMENT_RAW_TRANSHEADERS_KV, httpHeader, httpHeaderValue); return; } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java index 97db4fb6c..3a683e658 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java @@ -97,12 +97,12 @@ public class EncodeTransferMedataScgFilter implements GlobalFilter, Ordered { * the complete headers(key-value list in map type) into metadata. */ private void setCompleteTransHeaderIntoMC(ServerHttpRequest serverHttpRequest) { - // transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}} + // transHeaderMetadata: for example, {"trans-headers" : {"header1,header2,header3":""}} Map transHeaderMetadata = MetadataContextHolder.get() .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS); if (!CollectionUtils.isEmpty(transHeaderMetadata)) { - Optional transHeaders = transHeaderMetadata.keySet().stream().findFirst(); - String[] transHeaderArray = transHeaders.get().split(","); + String transHeaders = transHeaderMetadata.keySet().stream().findFirst().orElse(""); + String[] transHeaderArray = transHeaders.split(","); HttpHeaders headers = serverHttpRequest.getHeaders(); Set headerKeys = headers.keySet(); Iterator iterator = headerKeys.iterator(); diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java index 7c38ed2ec..752df6332 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/StaticMetadataManager.java @@ -56,7 +56,7 @@ public class StaticMetadataManager { private static final String ENV_METADATA_CONTENT_TRANSITIVE = "SCT_METADATA_CONTENT_TRANSITIVE"; private static final String ENV_METADATA_CONTENT_DISPOSABLE = "SCT_METADATA_CONTENT_DISPOSABLE"; /** - * This is the key of the header's key list needed to be transmitted. The list is a string split with ;. + * This is the key of the header's key list needed to be transmitted. The list is a string split with ,. * The value mapped by this key was specified by user. * This is configured in environment variables. */