Я немного новичок в микросервисах и Spring. У меня есть микросервисы Spring Cloud (порты: 8xxx-8xxx) со шлюзом Zuul, работающим на порту 9000. Внутри контроллера службы пользовательского интерфейса есть метод, который должен выполнить вход в систему, а затем вернуться на страницу index.html:
@RequestMapping(value="/do-login", method = RequestMethod.POST)
public RedirectView doLogin (@ModelAttribute("authEntity") final AuthEntity authEntity, final Model model) {
model.addAttribute(VERSION, applicationVersion);
model.addAttribute("authEntity", new AuthEntity());
authenticatedStatus = true;
model.addAttribute(AUTHENTICATED, authenticatedStatus);
return new RedirectView("index");
}
Проблема в том, что когда вышеуказанный метод завершается, он возвращает URL-адрес самого микросервиса localhost:8888/index
, но не localhost:9000/services/ui/
.
Если я использую более простой метод:
@RequestMapping(value="/do-login", method = RequestMethod.POST)
public String doLogin (@ModelAttribute("authEntity") final AuthEntity authEntity, final Model model) {
model.addAttribute(VERSION, applicationVersion);
model.addAttribute("authEntity", new AuthEntity());
authenticatedStatus = true;
model.addAttribute(AUTHENTICATED, authenticatedStatus);
return "index";
}
Это правильно возвращает URL-адрес шлюза localhost:9000/services/ui/do-login
, но с /do-login
, который мне не нужен.
Может быть, я могу избавиться от /do-login/
части URL? А может быть есть решение для некорректного редиректа?
Заранее спасибо!