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 3fb38b32a [Task] support user specify http request domain (#4233)
3fb38b32a is described below

commit 3fb38b32a1c5c042aa04b4bec9aed4b1e8082f5c
Author: mahaitao <[email protected]>
AuthorDate: Mon Dec 5 15:11:10 2022 +0800

    [Task] support user specify http request domain (#4233)
    
    * feat:support user to self define http request domain
    
    * feat:fix
    
    * feat:fix
    
    * feat:fix
    
    Co-authored-by: mahaitao617 <[email protected]>
---
 .../src/main/java/org/apache/shenyu/common/constant/Constants.java   | 5 +++++
 .../src/main/java/org/apache/shenyu/plugin/divide/DividePlugin.java  | 4 ++++
 2 files changed, 9 insertions(+)

diff --git 
a/shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java 
b/shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java
index 5ec980e11..c060165c3 100644
--- 
a/shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java
+++ 
b/shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java
@@ -637,6 +637,11 @@ public interface Constants {
      */
     String CACHED = "cached";
 
+    /**
+     * user can use the specify-domian to replace of upstream url of the 
divide plugin.
+     */
+    String SPECIFY_DOMAIN = "specify-domain";
+
     /**
      * The maximum free memory reserved by the blocking queue for the JVM.
      */
diff --git 
a/shenyu-plugin/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/DividePlugin.java
 
b/shenyu-plugin/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/DividePlugin.java
index 7ead17ed9..1cf21eada 100644
--- 
a/shenyu-plugin/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/DividePlugin.java
+++ 
b/shenyu-plugin/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/DividePlugin.java
@@ -95,6 +95,10 @@ public class DividePlugin extends AbstractShenyuPlugin {
             return WebFluxResultUtils.result(exchange, error);
         }
         // set the http url
+        if 
(CollectionUtils.isNotEmpty(exchange.getRequest().getHeaders().get(Constants.SPECIFY_DOMAIN)))
 {
+            
upstream.setUrl(exchange.getRequest().getHeaders().get(Constants.SPECIFY_DOMAIN).get(0));
+        }
+        // set domain
         String domain = upstream.buildDomain();
         exchange.getAttributes().put(Constants.HTTP_DOMAIN, domain);
         // set the http timeout

Reply via email to