#java #amazon-cloudfront
#java #amazon-cloudfront
Вопрос:
Шаг инструкции 1-4 был успешно реализован, но я не знаю, как поступить с клиентской частью, после того, как браузер получил файлы cookie…Может ли кто-нибудь поделиться со мной некоторым кодом? Или указать правильное направление? Мы высоко ценим вашу помощь.
Пользователь запрашивает объект.
Браузер пользователя или другой просмотрщик получает пары имя-значение с шага 4 и добавляет их к запросу в заголовке файла cookie. Это подписанный файл cookie.
CloudFront использует открытый ключ для проверки подписи в подписанном файле cookie и подтверждения того, что файл cookie не был изменен. Если подпись недействительна, запрос отклоняется.
Если подпись в файле cookie действительна, CloudFront просматривает заявление о политике в файле cookie (или создает его, если вы используете законсервированную политику), чтобы подтвердить, что запрос все еще действителен. Например, если вы указали начальную и конечную дату и время для файла cookie, CloudFront подтверждает, что пользователь пытается получить доступ к вашему контенту в течение периода времени, который вы хотите разрешить доступ.
Если запрос соответствует требованиям, изложенным в заявлении о политике, CloudFront обслуживает ваш контент так же, как и для контента, который не ограничен: он определяет, находится ли объект уже в пограничном кэше, при необходимости перенаправляет запрос в источник и возвращает объект пользователю.
Вот где я застрял, я получил подписанный файл cookie и response.addcookie в заголовок ответа, это так? заголовок запроса не может добавить заголовок или добавить файл cookie … тогда как мне поступить дальше? у меня нет опыта работы с файлами cookie, я использовал подписанный URL-адрес для распространения rtmp, но не для распространения http (подписанные файлы cookie)
Ответ №1:
Как только вы сохраните файл cookie CloudFront в браузере для определенного домена, т.е. subdomain.mydomain.com или .mydomain.com в качестве подстановочного файла cookie.
Затем с каждым запросом к хосту (домену) CF cookie будет отправляться через заголовки http-запроса.
CF расшифрует тикет в файле cookie и подтвердит ваш запрос, вам нужно только предоставить разрешения для корзины S3 для идентификатора источника CF, указанного в идентификаторах источника CF в консоли CF.
Допустим, у вас запрошено изображение @ https://mycdn.mydomain.com/myimage.jpg который является DNS-адресом CNAME и пограничным кэшем для источника https://s3.amazonaws.com/mybucket/images/myimage.jpg , или вы можете использовать значение по умолчанию cloudfront.net адрес, который будет иметь место, если вы не используете свою собственную запись CNAME.
Затем будет отправлен файл cookie CF вашего домена и подтверждено разрешение, а затем ответом браузеру будет ваше изображение.
Я надеюсь, что это поможет; Если нет, это может быть полезно.
http://www.spacevatican.org/2015/5/1/using-cloudfront-signed-cookies/