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);
- });
- }
-
}