Как получить список доступных фильтров в весеннем облачном шлюзе? - PullRequest
0 голосов
/ 05 сентября 2018

Я выполняю работу, которая динамически устанавливает маршруты в Spring Cloud Gateway во время выполнения, используя следующие коды:

@Autowired
@Qualifier("inMemoryRouteDefinitionRepository")
private RouteDefinitionWriter routeDefinitionWriter;


RouteDefinition routeDefinition = ...; // my own route
routeDefinitionWriter.save(Mono.just(routeDefinition)).subscribe();
this.publisher.publishEvent(new RefreshRoutesEvent(this));

Маршрут может быть успешно добавлен, независимо от того, доступны ли предикаты и фильтры внутри или даже существуют. И исключение будет происходить, если существует маршрут с несуществующими предикатами или фильтрами.

Вопрос заключается в том, как получить список предикатов и фильтров во время выполнения, чтобы я мог проверить, является ли переданное RouteDefinition допустимым.

До сих пор я обнаружил, что список доступных предикатов и фильтров внутри класса RouteDefinitionRouteLocator, и я могу автоматически связать его экземпляр. Но, похоже, решение проблемы не очень удачное.

@Autowired
@Qualifier("routeDefinitionRouteLocator")
private RouteDefinitionRouteLocator routeDefinitionRouteLocator;

Есть идеи? Большое спасибо !!

...