У меня есть служба весенней загрузки и приложение angular, работающее на движке приложения. Я использую dispatch.yaml
, который перенаправляет */api/*
на службу.
Служба добавляет заголовок Location к ответу (http), но работает только потому, что код переопределяет схему:
URI uri = ServletUriComponentsBuilder.fromCurrentRequestUri ()
.scheme ("https")
.replacePath ("/api/processor/{id}")
.buildAndExpand(processingId)
.encode ()
.toUri ();
return ResponseEntity
.accepted ()
.location (uri)
.body (processingId);
Вызов fromCurrentRequestUri()
помогает получить имя хоста внешнего интерфейса, а не службы, но использует http://
, а не https://
. scheme("https")
вынуждает его к https.
Имеет смысл, что он получает http, так как служба работает с механизмом приложения http "inside". Расположение http является правильным с точки зрения службы, но неверным с точки зрения внешнего интерфейса.
Существует ли способ переписать заголовок Location с помощью какой-либо конфигурации механизма приложения в https: //, так что это правильно для внешнего интерфейса?