Может ли посол обрабатывать запросы CORS?
Извините, если это очень невежественный вопрос, но может ли посол по-настоящему работать с заголовками CORS и ответами OPTION перед полетом?
Документы ( https://www.getambassador.io/reference/cors) кажутся мне несколько двусмысленными, если есть только хуки для предотвращения запросов или если он действительно может отвечать от имени сервисов.
Вот моя ситуация: у меня посол перед всеми http-запросами к некоторым микросервисам. По [причинам] нам сейчас нужен отдельный домен для отправки запросов одному и тому же послу.
У меня настроен AuthService, и в соответствии с документами "Когда вы используете внешнюю авторизацию, каждый входящий запрос аутентифицируется перед маршрутизацией к месту назначения, включая запросы перед полетом OPTIONS". Что имеет смысл, и вот что я вижу. Мой AuthService настроен, чтобы разрешить вещи правильно, и это, кажется, работает. AuthService отвечает соответствующими заголовками, но посол, кажется, просто игнорирует это и заботится только, отвечает ли AuthService 200 или нет. (Что кажется вполне разумным.)
Я написал это на моем посольском модуле:
getambassador.io/config: |
---
apiVersion: ambassador/v1
kind: Module
name: ambassador
config:
service_port: 8080
cors:
origins: [my domain here]
credentials: true
И это, кажется, не делает то, что я ожидал, а именно обрабатывает заголовки CORS и предварительный полет... вместо этого он направляет его в службу для обработки всего материала CORS.
1 ответ
Оказывается, указав headers: "Content-Type"
в cors
Конфигурация, вещи только начали работать. Видимо, это не так необязательно, как я думал.
Итак, теперь это мой модуль:
getambassador.io/config: |
---
apiVersion: ambassador/v1
kind: Module
name: ambassador
config:
service_port: 8080
cors:
origins: [my domain here]
headers: "Content-Type"
credentials: true