Может ли посол обрабатывать запросы 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
Другие вопросы по тегам