Próbuję dotrzeć do sedna dziwnego problemu przekierowania przez ostatnie 2 dni bez powodzenia.Wiosenny adres URL przekierowania, gdy za proxy Zuul
Na podstawie przykładowych projektów wiosenno-chmurowych skonfigurowałem Eureka, Zuul i podstawową usługę, która działa za Zuul.
Mam następujące metody;
Formularz jest skonfigurowany tak, aby publikować na serwerze proxy w następujący sposób;
POST https://localhost:8443/service/register
(Zuul działa na localhost: 8443).
Adres URL usługi lokalnej (nieskonsolidowanej) byłby; http://localhost:9001/register
Wywołanie POST jest poprawnie skonfigurowane zgodnie z powyższą metodą, jednak lokalizacja przekierowania wysłana do przeglądarki jest nie-pośrednim adresem URL usługi; http://localhost:9001/account
Zuul proxy jest zdecydowanie wysyłania poprawnych x-forwarded- * nagłówki, więc spodziewam rezolwer widok na wiosnę budować poprawne przekierowanie oparte na wartościach X-przekazane.
Aby dowieść, że nagłówki zostały wysłane poprawnie, ponownie skonfigurowałem metodę w następujący sposób;
@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);
}
Która poprawnie przekierowuje przeglądarkę do lokalizacji pośredniej; https://localhost:8443/service/account
Czy to błąd, czy może oczekiwane zachowanie? Myślałem, że użycie "przekierowania" ma na celu uhonorowanie nagłówków przekazywanych z serwera proxy.
Czy znaleźli rozwiązanie tego problemu? –