Cloudfront не может достичь защищенных конечных точек при загрузке Spring, развернутой на EBS

#amazon-web-services #spring-boot #spring-security #amazon-elastic-beanstalk #amazon-cloudfront

#amazon-web-services #загрузка spring-boot #spring-безопасность #amazon-elastic-beanstalk #amazon-cloudfront

Вопрос:

Я развернул приложение Spring boot на Elastic beanstalk и приложение React на S3 в качестве статического веб-сайта. Я использую Cloudfront для обработки маршрутизации между этими двумя приложениями, и все работает. Я могу получить все данные, которые у меня есть при загрузке Spring (подключенные к Postgres RDS), с помощью Postman, и я могу отправить вызов для входа в безопасную конечную точку (с Spring security). Также я могу вызвать все защищенные конечные точки с помощью postman после добавления необходимых заголовков.

Моя проблема заключается в том, что когда я пытаюсь выполнить вызов через CloudFront к защищенным конечным точкам при загрузке EBS Spring, я получаю 403. Все остальные конечные точки работают отлично (в них нет Spring security). Только защищенные конечные точки возвращают 403.

Я использую заголовок с именем Authentication with Bearer (который я генерирую при вызове login) для отправки запроса на серверную часть.

У кого-нибудь есть представление о том, чего мне здесь не хватает? Спасибо!

Ответ №1:

Оке, я нашел ответ. (Я был занят этой проблемой около двух дней, и я нашел ответ через 20 минут после того, как задал вопрос в StackOverflow) 🙂

Ответ: добавление заголовка белого списка. Который является заголовком аутентификации. Потому что Cloudfront удаляет этот заголовок при отправке запроса, поэтому мне пришлось внести его в белый список).

Как добавить заголовок белого списка:

Перейдите к вашему дистрибутиву -> Поведение -> выберите поведение EBS -> Редактировать -> создать новую политику кэша -> выбрать Заголовки -> а затем выберите белый список

Я надеюсь, что смогу помочь кому-нибудь с этим и не тратить два дня на поиск ответа, как я 🙂