#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 -> Редактировать -> создать новую политику кэша -> выбрать Заголовки -> а затем выберите белый список
Я надеюсь, что смогу помочь кому-нибудь с этим и не тратить два дня на поиск ответа, как я 🙂