Fixes shortcut type list for host and path predicate shortcuts
Fixes gh-3252
This commit is contained in:
@@ -36,6 +36,7 @@ import org.springframework.cloud.gateway.server.mvc.common.ArgumentSupplier;
|
||||
import org.springframework.cloud.gateway.server.mvc.common.DefaultArgumentSuppliedEvent;
|
||||
import org.springframework.cloud.gateway.server.mvc.common.MvcUtils;
|
||||
import org.springframework.cloud.gateway.server.mvc.common.Shortcut;
|
||||
import org.springframework.cloud.gateway.server.mvc.common.Shortcut.Type;
|
||||
import org.springframework.cloud.gateway.server.mvc.common.WeightConfig;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
@@ -121,7 +122,7 @@ public abstract class GatewayRequestPredicates {
|
||||
|
||||
// TODO: implement parameter aliases for predicates in RequestPredicates for webflux
|
||||
// compatibility?
|
||||
@Shortcut(type = Shortcut.Type.LIST)
|
||||
@Shortcut(type = Type.LIST)
|
||||
public static RequestPredicate method(HttpMethod... methods) {
|
||||
return RequestPredicates.methods(methods);
|
||||
}
|
||||
@@ -131,7 +132,7 @@ public abstract class GatewayRequestPredicates {
|
||||
return hostPredicates(DEFAULT_HOST_INSTANCE).apply(pattern);
|
||||
}
|
||||
|
||||
@Shortcut
|
||||
@Shortcut(type = Type.LIST)
|
||||
public static RequestPredicate host(String... patterns) {
|
||||
Assert.notEmpty(patterns, "'patterns' must not be empty");
|
||||
RequestPredicate requestPredicate = hostPredicates(DEFAULT_HOST_INSTANCE).apply(patterns[0]);
|
||||
@@ -175,7 +176,7 @@ public abstract class GatewayRequestPredicates {
|
||||
* @param patterns the list of patterns to match
|
||||
* @return a predicate that tests against the given path pattern
|
||||
*/
|
||||
@Shortcut
|
||||
@Shortcut(type = Type.LIST)
|
||||
public static RequestPredicate path(String... patterns) {
|
||||
Assert.notEmpty(patterns, "'patterns' must not be empty");
|
||||
RequestPredicate requestPredicate = RequestPredicates.path(patterns[0]);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.cloud.gateway.server.mvc.config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
@@ -89,6 +90,8 @@ public class GatewayMvcPropertiesBeanDefinitionRegistrarTests {
|
||||
}
|
||||
});
|
||||
RouterFunction listRoute2RouterFunction = routerFunctions.get("listRoute2");
|
||||
final ArrayList<String> paths = new ArrayList<>();
|
||||
|
||||
listRoute2RouterFunction.accept(new AbstractRouterFunctionsVisitor() {
|
||||
@Override
|
||||
public void route(RequestPredicate predicate, HandlerFunction<?> handlerFunction) {
|
||||
@@ -97,6 +100,11 @@ public class GatewayMvcPropertiesBeanDefinitionRegistrarTests {
|
||||
public void method(Set<HttpMethod> methods) {
|
||||
assertThat(methods).containsOnly(HttpMethod.GET, HttpMethod.POST);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void path(String pattern) {
|
||||
paths.add(pattern);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -105,6 +113,8 @@ public class GatewayMvcPropertiesBeanDefinitionRegistrarTests {
|
||||
assertThat(attributes).containsEntry(MvcUtils.GATEWAY_ROUTE_ID_ATTR, "listRoute2");
|
||||
}
|
||||
});
|
||||
assertThat(paths).containsOnly("/anything/listRoute2", "/anything/anotherlistRoute2");
|
||||
|
||||
RouterFunction listRoute3RouterFunction = routerFunctions.get("listRoute3");
|
||||
listRoute3RouterFunction.accept(new AbstractRouterFunctionsVisitor() {
|
||||
@Override
|
||||
|
||||
@@ -29,7 +29,7 @@ spring.cloud.gateway.mvc:
|
||||
uri: no://op
|
||||
predicates:
|
||||
- Method=GET,POST
|
||||
- Path=/anything/listRoute2
|
||||
- Path=/anything/listRoute2,/anything/anotherlistRoute2
|
||||
filters:
|
||||
- HttpbinUriResolver=
|
||||
- TokenRelay
|
||||
|
||||
Reference in New Issue
Block a user