Как исправить ошибку перекрестного источника при запросе к Kylo API

У меня есть запущенный экземпляр Kylo Sandbox на сервере, который называется: kyloserver, Я пытаюсь получить доступ к Kylo API с моего сайта, работающего в localhost:8080,

Я пытаюсь использовать Search API, вызывающий URL:

http://kyloserver:8400/proxy/v1/feedmgr/search?q=mary&rows=20&start=0

и используя базовую аутентификацию в заголовке, как это (javascript):

Authorization: 'Basic ' + btoa(this.username + ":" + this.password)

Ответ:

Не удалось загрузить http://kyloserver:8400/proxy/v1/feedmgr/search?q=mary&rows=20&start=0: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: нет заголовка "Access-Control-Allow-Origin" присутствует на запрашиваемом ресурсе. Источник ' http://localhost:8080/ ', следовательно, не имеет доступа. Ответ имел HTTP-код состояния 403.

Если я использую Swagger, войдя в пользовательский интерфейс, я могу получить результаты правильно.

Как я могу получить доступ к API успешно?

(Kylo версия: 0.8.3)

Благодарю.

2 ответа

Решение

Kylo по умолчанию отключил поддержку CORS. Вам нужно будет написать плагин для переопределения конфигурации по умолчанию на тот, который включает CORS: https://github.com/Teradata/kylo/blob/v0.8.4/services/service-app/src/main/java/com/thinkbiganalytics/server/DefaultWebSecurityConfigurer.java

Наконец, я решил создать прокси-веб-сервис, который размещается на том же сервере, что и Kylo, ​​который просто перенаправляет запросы из Интернета в Kylo Service.

Другие вопросы по тегам