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 40d02907a Update ShenyuExtConfiguration.java (#4259)
40d02907a is described below

commit 40d02907a127a08f1de6c03c07cc7481c63f369d
Author: 柯杨 <[email protected]>
AuthorDate: Wed Dec 28 10:35:14 2022 +0800

    Update ShenyuExtConfiguration.java (#4259)
    
    * Update ShenyuExtConfiguration.java
    
    此处注入的 new RemoteAddressResolver() 会使得 
org/apache/shenyu/springboot/starter/gateway/ShenyuConfiguration.java:162的ForwardedRemoteAddressResolver注入失效。
    这与官方文档的说明不符,官网文档显示在Apache 
ShenYu网关中获取IP的自带实现为:org.apache.shenyu.web.forward.ForwardedRemoteAddressResolver。
    
    * bugfix: remove the conflict code
    
    remove the conflict code of RemoteAddressResolver Bean
    
    * Update ShenyuExtConfiguration.java
    
    delete unused import code
    
    * remove testRemoteAddressResolver
    
    * bugfix: it is no need to invert the collection
    
    Co-authored-by: 杨阳洋 <[email protected]>
    Co-authored-by: xiaoyu <[email protected]>
---
 .../shenyu/web/configuration/ShenyuExtConfiguration.java     | 12 ------------
 .../shenyu/web/forward/ForwardedRemoteAddressResolver.java   |  1 -
 .../shenyu/web/configuration/ShenyuExtConfigurationTest.java |  9 ---------
 3 files changed, 22 deletions(-)

diff --git 
a/shenyu-web/src/main/java/org/apache/shenyu/web/configuration/ShenyuExtConfiguration.java
 
b/shenyu-web/src/main/java/org/apache/shenyu/web/configuration/ShenyuExtConfiguration.java
index 221e9e07f..108d98cae 100644
--- 
a/shenyu-web/src/main/java/org/apache/shenyu/web/configuration/ShenyuExtConfiguration.java
+++ 
b/shenyu-web/src/main/java/org/apache/shenyu/web/configuration/ShenyuExtConfiguration.java
@@ -17,7 +17,6 @@
 
 package org.apache.shenyu.web.configuration;
 
-import org.apache.shenyu.plugin.api.RemoteAddressResolver;
 import org.apache.shenyu.plugin.api.result.DefaultShenyuResult;
 import org.apache.shenyu.plugin.api.result.ShenyuResult;
 import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -42,15 +41,4 @@ public class ShenyuExtConfiguration {
         return new DefaultShenyuResult();
     }
 
-    /**
-     * Remote address resolver remote address resolver.
-     *
-     * @return the remote address resolver
-     */
-    @Bean
-    @ConditionalOnMissingBean(value = RemoteAddressResolver.class, search = 
SearchStrategy.ALL)
-    public RemoteAddressResolver remoteAddressResolver() {
-        return new RemoteAddressResolver() {
-        };
-    }
 }
diff --git 
a/shenyu-web/src/main/java/org/apache/shenyu/web/forward/ForwardedRemoteAddressResolver.java
 
b/shenyu-web/src/main/java/org/apache/shenyu/web/forward/ForwardedRemoteAddressResolver.java
index 76cfc0be7..79b68041a 100644
--- 
a/shenyu-web/src/main/java/org/apache/shenyu/web/forward/ForwardedRemoteAddressResolver.java
+++ 
b/shenyu-web/src/main/java/org/apache/shenyu/web/forward/ForwardedRemoteAddressResolver.java
@@ -84,7 +84,6 @@ public class ForwardedRemoteAddressResolver implements 
RemoteAddressResolver {
     @Override
     public InetSocketAddress resolve(final ServerWebExchange exchange) {
         List<String> xForwardedValues = extractXForwardedValues(exchange);
-        Collections.reverse(xForwardedValues);
         if (!xForwardedValues.isEmpty()) {
             int index = Math.min(xForwardedValues.size(), maxTrustedIndex) - 1;
             return new InetSocketAddress(xForwardedValues.get(index), 0);
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/configuration/ShenyuExtConfigurationTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/configuration/ShenyuExtConfigurationTest.java
index 7816a4565..4c8146d85 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/configuration/ShenyuExtConfigurationTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/configuration/ShenyuExtConfigurationTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shenyu.web.configuration;
 
-import org.apache.shenyu.plugin.api.RemoteAddressResolver;
 import org.apache.shenyu.plugin.api.result.ShenyuResult;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -53,12 +52,4 @@ public class ShenyuExtConfigurationTest {
         });
     }
 
-    @Test
-    public void testRemoteAddressResolver() {
-        applicationContextRunner.run(context -> {
-            RemoteAddressResolver remoteAddressResolver = 
context.getBean("remoteAddressResolver", RemoteAddressResolver.class);
-            assertNotNull(remoteAddressResolver);
-        });
-    }
-
 }

Reply via email to