This is an automated email from the ASF dual-hosted git repository.
xiaoyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 5bd99ef149 [type:bugfix] springCloud ruleData path setting didn't used
#5840 (#5843)
5bd99ef149 is described below
commit 5bd99ef14906d3f53eb3fb5a628470968169307c
Author: frank <[email protected]>
AuthorDate: Wed Dec 11 10:14:40 2024 +0800
[type:bugfix] springCloud ruleData path setting didn't used #5840 (#5843)
* [type:bugfix] springCloud ruleData path setting didn't used #5840
* [type:bugfix] springCloud ruleData path setting didn't used #5840
---------
Co-authored-by: xiaoyu <[email protected]>
---
.../apache/shenyu/plugin/springcloud/SpringCloudPlugin.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git
a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-springcloud/src/main/java/org/apache/shenyu/plugin/springcloud/SpringCloudPlugin.java
b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-springcloud/src/main/java/org/apache/shenyu/plugin/springcloud/SpringCloudPlugin.java
index 0bb96105fb..034b6f8473 100644
---
a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-springcloud/src/main/java/org/apache/shenyu/plugin/springcloud/SpringCloudPlugin.java
+++
b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-springcloud/src/main/java/org/apache/shenyu/plugin/springcloud/SpringCloudPlugin.java
@@ -48,7 +48,7 @@ import java.util.Objects;
public class SpringCloudPlugin extends AbstractShenyuPlugin {
private final ShenyuSpringCloudServiceChooser serviceChooser;
-
+
/**
* Instantiates a new Spring cloud plugin.
*
@@ -57,7 +57,7 @@ public class SpringCloudPlugin extends AbstractShenyuPlugin {
public SpringCloudPlugin(final ShenyuSpringCloudServiceChooser
serviceInstanceChooser) {
this.serviceChooser = serviceInstanceChooser;
}
-
+
@Override
protected String getRawPath(final ServerWebExchange exchange) {
return RequestUrlUtils.getRewrittenRawPath(exchange);
@@ -85,7 +85,11 @@ public class SpringCloudPlugin extends AbstractShenyuPlugin {
return WebFluxResultUtils.result(exchange, error);
}
final String domain = upstream.buildDomain();
- setDomain(URI.create(domain +
(StringUtils.isBlank(ruleHandle.getPath()) ? shenyuContext.getRealUrl() :
ruleHandle.getPath())), exchange);
+ //if rule data has path,its realUrl.
+ if (StringUtils.isNotBlank(ruleHandle.getPath())) {
+ shenyuContext.setRealUrl(ruleHandle.getPath());
+ }
+ setDomain(URI.create(domain + shenyuContext.getRealUrl()), exchange);
//set time out.
exchange.getAttributes().put(Constants.HTTP_TIME_OUT,
ruleHandle.getTimeout());
return chain.execute(exchange);
@@ -121,7 +125,7 @@ public class SpringCloudPlugin extends AbstractShenyuPlugin
{
protected Mono<Void> handleRuleIfNull(final String pluginName, final
ServerWebExchange exchange, final ShenyuPluginChain chain) {
return WebFluxResultUtils.noRuleResult(pluginName, exchange);
}
-
+
private SpringCloudRuleHandle buildRuleHandle(final RuleData rule) {
return
SpringCloudPluginDataHandler.RULE_CACHED.get().obtainHandle(CacheKeyUtils.INST.getKey(rule));
}