Browse Source

Avoid direct URL construction.

Fixes gh-2783
pull/2380/head
spencergibb 2 years ago
parent
commit
be8e3fb2c5
No known key found for this signature in database
GPG Key ID: 7788A47380690861
  1. 8
      spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/RequestHeaderToRequestUriGatewayFilterFactory.java
  2. 3
      spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/factory/RequestHeaderToRequestUriGatewayFilterFactoryIntegrationTests.java

8
spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/RequestHeaderToRequestUriGatewayFilterFactory.java

@ -18,8 +18,6 @@ package org.springframework.cloud.gateway.filter.factory; @@ -18,8 +18,6 @@ package org.springframework.cloud.gateway.filter.factory;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@ -71,9 +69,11 @@ public class RequestHeaderToRequestUriGatewayFilterFactory @@ -71,9 +69,11 @@ public class RequestHeaderToRequestUriGatewayFilterFactory
String requestUrl = exchange.getRequest().getHeaders().getFirst(config.getName());
return Optional.ofNullable(requestUrl).map(url -> {
try {
return new URL(url).toURI();
URI uri = URI.create(url);
uri.toURL(); // validate url
return uri;
}
catch (MalformedURLException | URISyntaxException e) {
catch (IllegalArgumentException | MalformedURLException e) {
log.info("Request url is invalid : url={}, error={}", requestUrl, e.getMessage());
return null;
}

3
spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/factory/RequestHeaderToRequestUriGatewayFilterFactoryIntegrationTests.java

@ -20,7 +20,6 @@ import java.net.URI; @@ -20,7 +20,6 @@ import java.net.URI;
import java.util.Optional;
import com.fasterxml.jackson.databind.JsonNode;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.SpringBootConfiguration;
@ -48,7 +47,6 @@ public class RequestHeaderToRequestUriGatewayFilterFactoryIntegrationTests exten @@ -48,7 +47,6 @@ public class RequestHeaderToRequestUriGatewayFilterFactoryIntegrationTests exten
int port;
@Test
@Disabled
public void changeUriWorkWithProperties() {
testClient.get().uri("/").header("Host", "www.changeuri.org")
.header("X-CF-Forwarded-Url", "http://localhost:" + port + "/actuator/health").exchange()
@ -56,7 +54,6 @@ public class RequestHeaderToRequestUriGatewayFilterFactoryIntegrationTests exten @@ -56,7 +54,6 @@ public class RequestHeaderToRequestUriGatewayFilterFactoryIntegrationTests exten
}
@Test
@Disabled
public void changeUriWorkWithDsl() {
testClient.get().uri("/").header("Host", "www.changeuri.org")
.header("X-Next-Url", "http://localhost:" + port + "/actuator/health").exchange()

Loading…
Cancel
Save