diff --git a/CHANGELOG.md b/CHANGELOG.md index 1de17d9e4..0a18d9d60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,3 +8,4 @@ - [feat: support TagUtils, ContextToHeaderInterceptor in TSF.](https://github.com/Tencent/spring-cloud-tencent/pull/1753) - [fix:replace with string inside @ConditionalOnClass.](https://github.com/Tencent/spring-cloud-tencent/pull/1755) - [deps:upgrade GitHub Actions to v5.](https://github.com/Tencent/spring-cloud-tencent/pull/1757) +- [fix: send unit header in tsf gw.](https://github.com/Tencent/spring-cloud-tencent/pull/1759) \ No newline at end of file diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/cloud/plugin/unit/config/GatewayUnitAutoConfiguration.java b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/cloud/plugin/unit/config/GatewayUnitAutoConfiguration.java index 2b2b04b22..40c6b735b 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/cloud/plugin/unit/config/GatewayUnitAutoConfiguration.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/cloud/plugin/unit/config/GatewayUnitAutoConfiguration.java @@ -20,6 +20,7 @@ package com.tencent.cloud.plugin.unit.config; import javax.annotation.PostConstruct; import com.tencent.cloud.common.tsf.ConditionalOnOnlyTsfConsulEnabled; +import com.tencent.cloud.plugin.unit.plugin.UnitScgEnhancedPlugin; import com.tencent.tsf.unit.core.GatewayUnitArchCallback; import com.tencent.tsf.unit.core.TencentUnitManager; import com.tencent.tsf.unit.core.TsfZoneFilterUnitCallback; @@ -27,6 +28,7 @@ import com.tencent.tsf.unit.core.remote.TsfUnitConsulManager; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -45,6 +47,11 @@ public class GatewayUnitAutoConfiguration { private String applicationName; + @Bean + public UnitScgEnhancedPlugin unitScgEnhancedPlugin() { + return new UnitScgEnhancedPlugin(); + } + @PostConstruct public void init() { TencentUnitManager.addArchCallback(new GatewayUnitArchCallback(applicationName)); diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/cloud/plugin/unit/plugin/UnitScgEnhancedPlugin.java b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/cloud/plugin/unit/plugin/UnitScgEnhancedPlugin.java index 9fba5ebcd..a047bc6bf 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/cloud/plugin/unit/plugin/UnitScgEnhancedPlugin.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/cloud/plugin/unit/plugin/UnitScgEnhancedPlugin.java @@ -27,6 +27,7 @@ import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPluginContext; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPluginType; import com.tencent.cloud.rpc.enhancement.plugin.PluginOrderConstant; import com.tencent.tsf.unit.core.TencentUnitContext; +import com.tencent.tsf.unit.core.TencentUnitManager; import shade.polaris.com.google.common.collect.ImmutableMap; import org.springframework.http.server.reactive.ServerHttpRequest; @@ -50,6 +51,10 @@ public class UnitScgEnhancedPlugin implements EnhancedPlugin { return; } + if (!TencentUnitManager.isEnable()) { + return; + } + ServerWebExchange exchange = (ServerWebExchange) context.getOriginRequest(); // get request builder