Проблема с URL-адресом редиректа при использовании прокси Zuul

Последние два дня я безуспешно пытался разобраться в странной проблеме перенаправления.

Основываясь на проектах на основе весеннего облака, я настроил Eureka, Zuul и базовый сервис, который работает за Zuul.

У меня есть следующий метод;

@RequestMapping(method = RequestMethod.POST, value = "/register")
public String registerDevice(Principal principal, String response) {
  // ...
  return "redirect:/account";
}

Форма настраивается для отправки на прокси-URL следующим образом;

POST https://localhost:8443/service/register

(Zuul работает на localhost: 8443).

URL для локальной службы (без прокси) будет;HTTP: // локальный: 9001 / регистр

Вызов POST правильно передается через вышеупомянутый метод, однако местоположение перенаправления, отправляемое в браузер, является непроксифицированным URL-адресом службы;HTTP: // локальный: 9001 / счета

Прокси Zuul определенно отправляет правильныйх-forwarded- * заголовки, поэтому я ожидал бы, что распознаватель представлений в Spring создаст правильное перенаправление на основе значений, перенаправленных в x.

Чтобы доказать, что заголовки отправлены правильно, я перенастроил метод следующим образом;

@RequestMapping(method = RequestMethod.POST, value = "/register")
public void registerDevice(Principal, String response, HttpServletResponse response) {
  // ...
  String rUrl = ServletUriComponentsBuilder.fromCurrentContextPath().path("/account").build().toUriString();
  servletResponse.sendRedirect(rUrl);
}

Который правильно перенаправляет браузер в прокси-папку;https: // локальный: 8443 / сервис / счет

Это ошибка, или это ожидаемое поведение? Я подумал, что использование «redirect:» предназначено для защиты заголовков, передаваемых из прокси

Ответы на вопрос(2)

Ваш ответ на вопрос