У меня есть микросервисная архитектура с несколькими сервисами, созданными с использованием JHipster.
Внутри одного сервиса я реализовал фильтр zuul route.
public class TestZuulFilter extends ZuulFilter {
@Override
public String filterType() {
return "route";
}
@Override
public int filterOrder() {
return 5;
}
@Override
public boolean shouldFilter() {
String requestUri = RequestContext.getCurrentContext().getRequest().getRequestURI();
return "/serviceid/reverseproxy".equals(requestUri);
}
@Override
public Object run() {
// get url from id
String id = ctx.getRequest().getParameter("id");
Strign url = URLService.getURLFromId(id);
try
{
RequestContext ctx = RequestContext.getCurrentContext();
// redirect
ctx.setRouteHost(new URL(url));
} catch(MalformedURLException ex) {}
return null;
}
}
Когда клиент вызывает мою службу, http://myservice/serviceid/reverseproxy?id=2
zuul перенаправляет (состояние http 302) пользователя на URL-адрес с идентификатором 2, в данном случае google.com.
Как я могу сохранить исходный URL-адрес запроса от клиента?
URL-адрес должен оставаться http://myservice/serviceid/reverseproxy?url=2
вместо http://www.google.com
Заранее спасибо.