Схема заголовка местоположения, получите http: // но хотите https: // - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть служба весенней загрузки и приложение 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: //, так что это правильно для внешнего интерфейса?

1 Ответ

0 голосов
/ 30 апреля 2020

Существует способ заставить все HTTP-запросы перенаправляться на HTTPS, это делается с помощью обработчиков в app.yaml

путем добавления следующих строк в app.yaml

- url: /.*
  secure: always
  script: auto

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...