formatting
This commit is contained in:
@@ -96,15 +96,13 @@ public class ForwardedHeadersFilterTests {
|
||||
|
||||
assertThat(forwardeds).hasSize(3);
|
||||
Optional<Forwarded> added = forwardeds.stream()
|
||||
.filter(forwarded -> forwarded.get("for").contains("10.0.0.1:80"))
|
||||
.findFirst();
|
||||
.filter(forwarded -> forwarded.get("for").contains("10.0.0.1:80")).findFirst();
|
||||
assertThat(added).isPresent();
|
||||
added.ifPresent(forwarded -> {
|
||||
assertThat(forwarded.getValues()).containsEntry("proto", "http").containsEntry("for", "\"10.0.0.1:80\"");
|
||||
});
|
||||
Optional<Forwarded> existing = forwardeds.stream()
|
||||
.filter(forwarded -> forwarded.get("for").equals("23.45.67.89"))
|
||||
.findFirst();
|
||||
.filter(forwarded -> forwarded.get("for").equals("23.45.67.89")).findFirst();
|
||||
assertThat(existing).isPresent();
|
||||
existing.ifPresent(forwarded -> {
|
||||
assertThat(forwarded.getValues()).containsEntry("for", "23.45.67.89");
|
||||
@@ -216,36 +214,34 @@ public class ForwardedHeadersFilterTests {
|
||||
@Test
|
||||
public void trustedProxiesConditionMatches() {
|
||||
new ReactiveWebApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class,
|
||||
ReactiveWebServerFactoryAutoConfiguration.class, GatewayAutoConfiguration.class))
|
||||
.withPropertyValues("spring.cloud.gateway.trusted-proxies=11\\.0\\.0\\..*")
|
||||
.run(context -> {
|
||||
assertThat(context).hasSingleBean(ForwardedHeadersFilter.class);
|
||||
});
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class,
|
||||
ReactiveWebServerFactoryAutoConfiguration.class, GatewayAutoConfiguration.class))
|
||||
.withPropertyValues("spring.cloud.gateway.trusted-proxies=11\\.0\\.0\\..*").run(context -> {
|
||||
assertThat(context).hasSingleBean(ForwardedHeadersFilter.class);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void trustedProxiesConditionDoesNotMatch() {
|
||||
new ReactiveWebApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class,
|
||||
ReactiveWebServerFactoryAutoConfiguration.class, GatewayAutoConfiguration.class))
|
||||
.run(context -> {
|
||||
assertThat(context).doesNotHaveBean(ForwardedHeadersFilter.class);
|
||||
});
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class,
|
||||
ReactiveWebServerFactoryAutoConfiguration.class, GatewayAutoConfiguration.class))
|
||||
.run(context -> {
|
||||
assertThat(context).doesNotHaveBean(ForwardedHeadersFilter.class);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void emptyTrustedProxiesFails() {
|
||||
Assertions.assertThatThrownBy(() -> new ForwardedHeadersFilter(""))
|
||||
.isInstanceOf(IllegalArgumentException.class);
|
||||
.isInstanceOf(IllegalArgumentException.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forwardedHeadersNotTrusted() throws Exception {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.get("http://localhost/get")
|
||||
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
|
||||
.header(HttpHeaders.HOST, "myhost")
|
||||
.build();
|
||||
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
|
||||
.header(HttpHeaders.HOST, "myhost").build();
|
||||
|
||||
ForwardedHeadersFilter filter = new ForwardedHeadersFilter("11\\.0\\.0\\..*");
|
||||
|
||||
@@ -258,10 +254,9 @@ public class ForwardedHeadersFilterTests {
|
||||
@Test
|
||||
public void untrustedForwardedForNotAppended() throws Exception {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.get("http://localhost/get")
|
||||
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
|
||||
.header(HttpHeaders.HOST, "myhost")
|
||||
.header(FORWARDED_HEADER, "proto=http;host=myhost;for=\"127.0.0.1:80\",for=10.0.0.11")
|
||||
.build();
|
||||
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
|
||||
.header(HttpHeaders.HOST, "myhost")
|
||||
.header(FORWARDED_HEADER, "proto=http;host=myhost;for=\"127.0.0.1:80\",for=10.0.0.11").build();
|
||||
|
||||
ForwardedHeadersFilter filter = new ForwardedHeadersFilter("10\\.0\\.0\\..*");
|
||||
|
||||
@@ -278,9 +273,8 @@ public class ForwardedHeadersFilterTests {
|
||||
@Test
|
||||
public void remoteAdddressIsNullUnTrustedProxyNotAppended() throws Exception {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.get("http://localhost:8080/get")
|
||||
.header(HttpHeaders.HOST, "myhost")
|
||||
.header(FORWARDED_HEADER, "proto=http;host=myhost;for=127.0.0.1")
|
||||
.build();
|
||||
.header(HttpHeaders.HOST, "myhost").header(FORWARDED_HEADER, "proto=http;host=myhost;for=127.0.0.1")
|
||||
.build();
|
||||
|
||||
ForwardedHeadersFilter filter = new ForwardedHeadersFilter("10\\.0\\.0\\..*");
|
||||
|
||||
|
||||
@@ -61,8 +61,8 @@ public class XForwardedHeadersFilterTests {
|
||||
|
||||
HttpHeaders headers = filter.filter(request.getHeaders(), MockServerWebExchange.from(request));
|
||||
|
||||
assertThat(headers).doesNotContainKeys(X_FORWARDED_FOR_HEADER)
|
||||
.containsKeys(X_FORWARDED_HOST_HEADER, X_FORWARDED_PORT_HEADER, X_FORWARDED_PROTO_HEADER);
|
||||
assertThat(headers).doesNotContainKeys(X_FORWARDED_FOR_HEADER).containsKeys(X_FORWARDED_HOST_HEADER,
|
||||
X_FORWARDED_PORT_HEADER, X_FORWARDED_PROTO_HEADER);
|
||||
|
||||
assertThat(headers.getFirst(X_FORWARDED_HOST_HEADER)).isEqualTo("localhost:8080");
|
||||
assertThat(headers.getFirst(X_FORWARDED_PORT_HEADER)).isEqualTo("8080");
|
||||
@@ -322,36 +322,34 @@ public class XForwardedHeadersFilterTests {
|
||||
@Test
|
||||
public void trustedProxiesConditionMatches() {
|
||||
new ReactiveWebApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class,
|
||||
ReactiveWebServerFactoryAutoConfiguration.class, GatewayAutoConfiguration.class))
|
||||
.withPropertyValues(GatewayProperties.PREFIX + ".trusted-proxies=11\\.0\\.0\\..*")
|
||||
.run(context -> {
|
||||
assertThat(context).hasSingleBean(XForwardedHeadersFilter.class);
|
||||
});
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class,
|
||||
ReactiveWebServerFactoryAutoConfiguration.class, GatewayAutoConfiguration.class))
|
||||
.withPropertyValues(GatewayProperties.PREFIX + ".trusted-proxies=11\\.0\\.0\\..*").run(context -> {
|
||||
assertThat(context).hasSingleBean(XForwardedHeadersFilter.class);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void trustedProxiesConditionDoesNotMatch() {
|
||||
new ReactiveWebApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class,
|
||||
ReactiveWebServerFactoryAutoConfiguration.class, GatewayAutoConfiguration.class))
|
||||
.run(context -> {
|
||||
assertThat(context).doesNotHaveBean(XForwardedHeadersFilter.class);
|
||||
});
|
||||
.withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class,
|
||||
ReactiveWebServerFactoryAutoConfiguration.class, GatewayAutoConfiguration.class))
|
||||
.run(context -> {
|
||||
assertThat(context).doesNotHaveBean(XForwardedHeadersFilter.class);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void emptyTrustedProxiesFails() {
|
||||
Assertions.assertThatThrownBy(() -> new XForwardedHeadersFilter(""))
|
||||
.isInstanceOf(IllegalArgumentException.class);
|
||||
.isInstanceOf(IllegalArgumentException.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void xForwardedHeadersNotTrusted() throws Exception {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.get("http://localhost:8080/get")
|
||||
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
|
||||
.header(HttpHeaders.HOST, "myhost")
|
||||
.build();
|
||||
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
|
||||
.header(HttpHeaders.HOST, "myhost").build();
|
||||
|
||||
XForwardedHeadersFilter filter = new XForwardedHeadersFilter("11\\.0\\.0\\..*");
|
||||
|
||||
@@ -366,11 +364,9 @@ public class XForwardedHeadersFilterTests {
|
||||
@Test
|
||||
public void untrustedXForwardedForNotAppended() throws Exception {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.get("http://localhost:8080/get")
|
||||
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
|
||||
.header(HttpHeaders.HOST, "myhost")
|
||||
.header(X_FORWARDED_FOR_HEADER, "127.0.0.1")
|
||||
.header(X_FORWARDED_FOR_HEADER, "10.0.0.10")
|
||||
.build();
|
||||
.remoteAddress(new InetSocketAddress(InetAddress.getByName("10.0.0.1"), 80))
|
||||
.header(HttpHeaders.HOST, "myhost").header(X_FORWARDED_FOR_HEADER, "127.0.0.1")
|
||||
.header(X_FORWARDED_FOR_HEADER, "10.0.0.10").build();
|
||||
|
||||
XForwardedHeadersFilter filter = new XForwardedHeadersFilter("10\\.0\\.0\\..*");
|
||||
|
||||
@@ -379,16 +375,14 @@ public class XForwardedHeadersFilterTests {
|
||||
assertThat(headers).containsKeys(X_FORWARDED_FOR_HEADER, X_FORWARDED_HOST_HEADER, X_FORWARDED_PORT_HEADER,
|
||||
X_FORWARDED_PROTO_HEADER);
|
||||
|
||||
assertThat(headers.getFirst(X_FORWARDED_FOR_HEADER)).doesNotContain("127.0.0.1")
|
||||
.contains("10.0.0.1", "10.0.0.10");
|
||||
assertThat(headers.getFirst(X_FORWARDED_FOR_HEADER)).doesNotContain("127.0.0.1").contains("10.0.0.1",
|
||||
"10.0.0.10");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void remoteAdddressIsNullUnTrustedProxyNotAppended() {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.get("http://localhost:8080/get")
|
||||
.header(HttpHeaders.HOST, "myhost")
|
||||
.header(X_FORWARDED_FOR_HEADER, "127.0.0.1")
|
||||
.build();
|
||||
.header(HttpHeaders.HOST, "myhost").header(X_FORWARDED_FOR_HEADER, "127.0.0.1").build();
|
||||
|
||||
XForwardedHeadersFilter filter = new XForwardedHeadersFilter("10\\.0\\.0\\..*");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user