Fixes redirect dsl accidental recursion.
Fixes gh-2798
This commit is contained in:
@@ -417,7 +417,7 @@ public class GatewayFilterSpec extends UriSpec {
|
||||
* @return a {@link GatewayFilterSpec} that can be used to apply additional filters
|
||||
*/
|
||||
public GatewayFilterSpec redirect(String status, URI url) {
|
||||
return redirect(status, url);
|
||||
return redirect(status, url.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.cloud.gateway.filter.factory;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.SpringBootConfiguration;
|
||||
@@ -51,6 +53,12 @@ public class RedirectToGatewayFilterFactoryTests extends BaseWebClientTests {
|
||||
.isEqualTo(HttpStatus.FOUND).expectHeader().valueEquals(HttpHeaders.LOCATION, "/index.html#/customers");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void redirectToRelativeUrlFilterWorksWithStrStatusCode() {
|
||||
testClient.get().uri("/").header("Host", "strcode.relativeredirect.org").exchange().expectStatus()
|
||||
.isEqualTo(HttpStatus.FOUND).expectHeader().valueEquals(HttpHeaders.LOCATION, "/index.html#/customers");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toStringFormat() {
|
||||
Config config = new Config();
|
||||
@@ -67,8 +75,12 @@ public class RedirectToGatewayFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Bean
|
||||
public RouteLocator testRouteLocator(RouteLocatorBuilder builder) {
|
||||
return builder.routes().route("relative_redirect", r -> r.host("**.relativeredirect.org")
|
||||
.filters(f -> f.redirect(302, "/index.html#/customers")).uri("no://op")).build();
|
||||
return builder.routes()
|
||||
.route("relative_redirect_uri_object", r -> r.host("strcode.relativeredirect.org")
|
||||
.filters(f -> f.redirect("302", URI.create("/index.html#/customers"))).uri("no://op"))
|
||||
.route("relative_redirect", r -> r.host("**.relativeredirect.org")
|
||||
.filters(f -> f.redirect(302, "/index.html#/customers")).uri("no://op"))
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user