feat:compatible metadata transfer with TSF SDK version 1.x. (#1734)

Signed-off-by: Haotian Zhang <928016560@qq.com>
2024
Haotian Zhang 2 weeks ago committed by GitHub
parent a0e781a330
commit 76c11bb5da
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -26,3 +26,4 @@
- [feat: support service registry and discovery with Polaris and Nacos](https://github.com/Tencent/spring-cloud-tencent/pull/1718)
- [test:add junit tests to sct-common.](https://github.com/Tencent/spring-cloud-tencent/pull/1726)
- [test:add junit tests to sct-gw-plugin.](https://github.com/Tencent/spring-cloud-tencent/pull/1729)
- [feat:compatible metadata transfer with TSF SDK version 1.x.](https://github.com/Tencent/spring-cloud-tencent/pull/1734)

@ -71,11 +71,10 @@ public class EncodeTransferMedataFeignEnhancedPlugin implements EnhancedPlugin {
MessageMetadataContainer calleeMessageMetadataContainer = metadataContext.getMetadataContainer(MetadataType.MESSAGE, false);
Map<String, String> calleeTransitiveHeaders = calleeMessageMetadataContainer.getTransitiveHeaders();
if (TsfContextUtils.isOnlyTsfConsulEnabled()) {
if (TsfContextUtils.isTsfConsulEnabled()) {
Map<String, String> tsfMetadataMap = TsfTagUtils.getTsfMetadataMap(calleeTransitiveHeaders, disposableMetadata, customMetadata, applicationMetadata);
this.buildHeaderMap(request, tsfMetadataMap);
}
else {
// currently only support transitive header from calleeMessageMetadataContainer
this.buildHeaderMap(request, calleeTransitiveHeaders);
@ -87,7 +86,7 @@ public class EncodeTransferMedataFeignEnhancedPlugin implements EnhancedPlugin {
// add application metadata
this.buildMetadataHeader(request, applicationMetadata, APPLICATION_METADATA);
}
// set headers that need to be transmitted from the upstream
this.buildTransmittedHeader(request, transHeaders);
}

@ -68,11 +68,10 @@ public class EncodeTransferMedataRestTemplateEnhancedPlugin implements EnhancedP
MessageMetadataContainer calleeMessageMetadataContainer = metadataContext.getMetadataContainer(MetadataType.MESSAGE, false);
Map<String, String> calleeTransitiveHeaders = calleeMessageMetadataContainer.getTransitiveHeaders();
if (TsfContextUtils.isOnlyTsfConsulEnabled()) {
if (TsfContextUtils.isTsfConsulEnabled()) {
Map<String, String> tsfMetadataMap = TsfTagUtils.getTsfMetadataMap(calleeTransitiveHeaders, disposableMetadata, customMetadata, applicationMetadata);
this.buildHeaderMap(httpRequest, tsfMetadataMap);
}
else {
// currently only support transitive header from calleeMessageMetadataContainer
this.buildHeaderMap(httpRequest, calleeTransitiveHeaders);
@ -84,7 +83,7 @@ public class EncodeTransferMedataRestTemplateEnhancedPlugin implements EnhancedP
// build application metadata request header
this.buildMetadataHeader(httpRequest, applicationMetadata, APPLICATION_METADATA);
}
// set headers that need to be transmitted from the upstream
this.buildTransmittedHeader(httpRequest, transHeaders);
}

@ -75,17 +75,15 @@ public class EncodeTransferMedataScgEnhancedPlugin implements EnhancedPlugin {
MessageMetadataContainer calleeMessageMetadataContainer = metadataContext.getMetadataContainer(MetadataType.MESSAGE, false);
Map<String, String> calleeTransitiveHeaders = calleeMessageMetadataContainer.getTransitiveHeaders();
if (TsfContextUtils.isOnlyTsfConsulEnabled()) {
if (TsfContextUtils.isTsfConsulEnabled()) {
this.buildHeaderMap(builder, TsfTagUtils.getTsfMetadataMap(calleeTransitiveHeaders, disposableMetadata, customMetadata, applicationMetadata));
}
else {
// currently only support transitive header from calleeMessageMetadataContainer
this.buildHeaderMap(builder, calleeTransitiveHeaders);
this.buildMetadataHeader(builder, customMetadata, CUSTOM_METADATA);
this.buildMetadataHeader(builder, disposableMetadata, CUSTOM_DISPOSABLE_METADATA);
this.buildMetadataHeader(builder, applicationMetadata, APPLICATION_METADATA);
}
TransHeadersTransfer.transfer(exchange.getRequest());
context.setOriginRequest(exchange.mutate().request(builder.build()).build());

@ -67,17 +67,15 @@ public class EncodeTransferMedataWebClientEnhancedPlugin implements EnhancedPlug
Map<String, String> calleeTransitiveHeaders = calleeMessageMetadataContainer.getTransitiveHeaders();
ClientRequest.Builder requestBuilder = ClientRequest.from(clientRequest);
if (TsfContextUtils.isOnlyTsfConsulEnabled()) {
if (TsfContextUtils.isTsfConsulEnabled()) {
this.buildHeaderMap(requestBuilder, TsfTagUtils.getTsfMetadataMap(calleeTransitiveHeaders, disposableMetadata, customMetadata, applicationMetadata));
}
else {
// currently only support transitive header from calleeMessageMetadataContainer
this.buildHeaderMap(requestBuilder, calleeTransitiveHeaders);
this.buildMetadataHeader(requestBuilder, customMetadata, CUSTOM_METADATA);
this.buildMetadataHeader(requestBuilder, disposableMetadata, CUSTOM_DISPOSABLE_METADATA);
this.buildMetadataHeader(requestBuilder, applicationMetadata, APPLICATION_METADATA);
}
this.buildTransmittedHeader(requestBuilder, transHeaders);
context.setOriginRequest(requestBuilder.build());
}

@ -85,4 +85,13 @@ public final class TsfContextUtils {
public static boolean isOnlyTsfConsulEnabled() {
return onlyTsfConsulEnabled;
}
/**
* This method should be called after {@link com.tencent.cloud.common.tsf.TsfContextUtils#isTsfConsulEnabled(Environment)}.
* @return whether Tsf Consul is enabled
*/
public static boolean isTsfConsulEnabled() {
return tsfConsulEnabled;
}
}

@ -166,7 +166,7 @@ public final class TsfTagUtils {
Map<String, String> mergedDisposableMetadata, Map<String, String> mergedApplicationMetadata, Map<String, String> addHeaders,
AtomicReference<String> callerIp, String encodedUserTagList, String encodedSystemTagList, String encodedMetadata) {
if (!TsfContextUtils.isOnlyTsfConsulEnabled()) {
if (!TsfContextUtils.isTsfConsulEnabled()) {
return;
}
List<Tag> tsfUserTagList = TsfTagUtils.deserializeTagList(encodedUserTagList);

Loading…
Cancel
Save