fix pr 606: modify a part of changes requested by review.

pull/620/head
pandaapo 3 years ago
parent e06a0184d6
commit b006914c5e

@ -25,7 +25,6 @@ import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import com.tencent.cloud.common.constant.MetadataConstant; 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. * the complete headers(key-value list in map type) into metadata.
*/ */
private void setCompleteTransHeaderIntoMC(ServerHttpRequest serverHttpRequest) { private void setCompleteTransHeaderIntoMC(ServerHttpRequest serverHttpRequest) {
// transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}} // transHeaderMetadata: for example, {"trans-headers" : {"header1,header2,header3":""}}
Map<String, String> transHeaderMetadata = MetadataContextHolder.get() Map<String, String> transHeaderMetadata = MetadataContextHolder.get()
.getFragmentContext(FRAGMENT_RAW_TRANSHEADERS); .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
if (!CollectionUtils.isEmpty(transHeaderMetadata)) { if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
Optional<String> transHeaders = transHeaderMetadata.keySet().stream().findFirst(); String transHeaders = transHeaderMetadata.keySet().stream().findFirst().orElse("");
String[] transHeaderArray = transHeaders.get().split(","); String[] transHeaderArray = transHeaders.split(",");
HttpHeaders headers = serverHttpRequest.getHeaders(); HttpHeaders headers = serverHttpRequest.getHeaders();
Set<String> headerKeys = headers.keySet(); Set<String> headerKeys = headers.keySet();
Iterator<String> iterator = headerKeys.iterator(); Iterator<String> iterator = headerKeys.iterator();

@ -25,7 +25,6 @@ import java.util.Arrays;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import javax.servlet.FilterChain; import javax.servlet.FilterChain;
import javax.servlet.ServletException; import javax.servlet.ServletException;
@ -86,18 +85,19 @@ public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter {
* the complete headers(key-value list in map type) into metadata. * the complete headers(key-value list in map type) into metadata.
*/ */
private void setCompleteTransHeaderIntoMC(HttpServletRequest httpServletRequest) { private void setCompleteTransHeaderIntoMC(HttpServletRequest httpServletRequest) {
// transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}} // transHeaderMetadata: for example, {"trans-headers" : {"header1,header2,header3":""}}
Map<String, String> transHeaderMetadata = MetadataContextHolder.get() Map<String, String> transHeaderMetadata = MetadataContextHolder.get()
.getFragmentContext(FRAGMENT_RAW_TRANSHEADERS); .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
if (!CollectionUtils.isEmpty(transHeaderMetadata)) { if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
Optional<String> transHeaders = transHeaderMetadata.keySet().stream().findFirst(); String transHeaders = transHeaderMetadata.keySet().stream().findFirst().orElse("");
String[] transHeaderArray = transHeaders.get().split(","); String[] transHeaderArray = transHeaders.split(",");
Enumeration<String> httpHeaders = httpServletRequest.getHeaderNames(); Enumeration<String> httpHeaders = httpServletRequest.getHeaderNames();
while (httpHeaders.hasMoreElements()) { while (httpHeaders.hasMoreElements()) {
String httpHeader = httpHeaders.nextElement(); String httpHeader = httpHeaders.nextElement();
Arrays.stream(transHeaderArray).forEach(transHeader -> { Arrays.stream(transHeaderArray).forEach(transHeader -> {
if (transHeader.equals(httpHeader)) { if (transHeader.equals(httpHeader)) {
String httpHeaderValue = httpServletRequest.getHeader(httpHeader); String httpHeaderValue = httpServletRequest.getHeader(httpHeader);
// for example, {"trans-headers-kv" : {"header1":"v1","header2":"v2"...}}
MetadataContextHolder.get().putContext(FRAGMENT_RAW_TRANSHEADERS_KV, httpHeader, httpHeaderValue); MetadataContextHolder.get().putContext(FRAGMENT_RAW_TRANSHEADERS_KV, httpHeader, httpHeaderValue);
return; return;
} }

@ -97,12 +97,12 @@ public class EncodeTransferMedataScgFilter implements GlobalFilter, Ordered {
* the complete headers(key-value list in map type) into metadata. * the complete headers(key-value list in map type) into metadata.
*/ */
private void setCompleteTransHeaderIntoMC(ServerHttpRequest serverHttpRequest) { private void setCompleteTransHeaderIntoMC(ServerHttpRequest serverHttpRequest) {
// transHeaderMetadata: for example, {"trans-headers" : {"header1;header2;header3":""}} // transHeaderMetadata: for example, {"trans-headers" : {"header1,header2,header3":""}}
Map<String, String> transHeaderMetadata = MetadataContextHolder.get() Map<String, String> transHeaderMetadata = MetadataContextHolder.get()
.getFragmentContext(FRAGMENT_RAW_TRANSHEADERS); .getFragmentContext(FRAGMENT_RAW_TRANSHEADERS);
if (!CollectionUtils.isEmpty(transHeaderMetadata)) { if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
Optional<String> transHeaders = transHeaderMetadata.keySet().stream().findFirst(); String transHeaders = transHeaderMetadata.keySet().stream().findFirst().orElse("");
String[] transHeaderArray = transHeaders.get().split(","); String[] transHeaderArray = transHeaders.split(",");
HttpHeaders headers = serverHttpRequest.getHeaders(); HttpHeaders headers = serverHttpRequest.getHeaders();
Set<String> headerKeys = headers.keySet(); Set<String> headerKeys = headers.keySet();
Iterator<String> iterator = headerKeys.iterator(); Iterator<String> iterator = headerKeys.iterator();

@ -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_TRANSITIVE = "SCT_METADATA_CONTENT_TRANSITIVE";
private static final String ENV_METADATA_CONTENT_DISPOSABLE = "SCT_METADATA_CONTENT_DISPOSABLE"; 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. * The value mapped by this key was specified by user.
* This is configured in environment variables. * This is configured in environment variables.
*/ */

Loading…
Cancel
Save