Я пытаюсь проксировать с помощью Zuul на основе некоторой информации о файлах cookie. Я предполагаю, что мне придется написать несколько фильтров, которые будут обеспечивать динамическую фильтрацию. Предположительно, что-то вроде описания в этой теме:
Первая проблема заключается в том, что я не могу заставить свой базовый тест работать. Я посмотрел на фильтр PreDecorationFilter и попытался смоделировать часть пересылки. В результате получился следующий базовый фильтр:
@Bean
public ZuulFilter myFilter() {
return new ZuulFilter(){
private UrlPathHelper urlPathHelper = new UrlPathHelper();
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
final String requestURI = this.urlPathHelper.getPathWithinApplication(ctx.getRequest());
ctx.put("requestURI", requestURI);
ctx.set("forward.to", "localhost:8983");
ctx.setRouteHost(null);
return null;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public int filterOrder() {
return 10;
}
@Override
public String filterType() {
return "pre";
}};
}
Моя проблема в том, что это не работает. Когда я запускаю Zuul из браузера, фильтр вызывается, но переадресация на самом деле не происходит. Я получаю ответ с длиной содержимого 0.
Какие кусочки головоломки мне не хватает?
РЕДАКТИРОВАТЬ: добавление моего содержимого application.yml:
info:
component: Zuul Server
endpoints:
restart:
enabled: true
shutdown:
enabled: true
health:
sensitive: false
server:
port: 8080
zuul:
proxy:
addProxyHeaders: true
routes:
dynamic:
path: /dynamic/**
url: http://route-to-nowhere.com