Proactively reject URLs without target address

Issue: SPR-15782
This commit is contained in:
Rossen Stoyanchev 2017-07-19 12:35:46 +02:00
parent cbe5a67687
commit 147368eccc
2 changed files with 14 additions and 0 deletions

View File

@ -68,6 +68,10 @@ public class ReactorClientHttpConnector implements ClientHttpConnector {
public Mono<ClientHttpResponse> connect(HttpMethod method, URI uri,
Function<? super ClientHttpRequest, Mono<Void>> requestCallback) {
if (!uri.isAbsolute()) {
return Mono.error(new IllegalArgumentException("URI is not absolute: " + uri));
}
return this.httpClient
.request(adaptHttpMethod(method),
uri.toString(),

View File

@ -568,6 +568,16 @@ public class WebClientIntegrationTests {
}).verifyComplete();
}
@Test // SPR-15782
public void absoluteUri() throws Exception {
String uri = "/api/v4/groups/1";
Mono<ClientResponse> responseMono = WebClient.builder().build().get().uri(uri).exchange();
StepVerifier.create(responseMono)
.expectErrorMessage("URI is not absolute: " + uri)
.verify(Duration.ofSeconds(5));
}
@SuppressWarnings("serial")
private static class MyException extends RuntimeException {