2017-01-30 3 views
0

Wir verwenden AWS, um Aduio/Video-Inhalte für unsere Website zu speichern.AWS cloudFront signiertes Cookie schlägt zeitweise für denselben Server fehl

Wir uns die Unterzeichnung von Cookies eine Canned Politik verwenden: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html

So haben wir 3 Cookies für jede Anforderung stellen Sie die Daten abzurufen:

CloudFront-Policy; 
CloudFront-Signature; 
CloudFront-Key-Pair-Id; 

Und es verwendet wird, eine Ressourcen-URL für den Zugriff auf wie http://cloudfront.org_name.com/2016%2F7%2F1%2FStanding+Meditation_updated+91615.mp3

Alle drei Cookies werden vom Server (Java-basiert) für jede Anfrage neu auf einen korrekten voreingestellten Wert gesetzt.

Es funktioniert die meiste Zeit für den größten Teil des Inhalts, aber für einige Ressourcen schlägt es nur mit einem Fehler 403 Verboten fehl.

Wenn ich zwei Inhalte (einer funktioniert, einer nicht) in separaten Browser-Registerkarten öffnet, sehen alle Cookies und der Rest genau gleich aus, mit Ausnahme der URL der Ressource.

Und doch - einer arbeitet, während der andere nicht.

Was noch verwirrender ist, manchmal die gleiche Ressource von der gleichen physischen Client-Maschine angefordert, einmal in FF, ein anderes Mal in Chrome, funktioniert in einem Browser, aber in anderen fehlschlägt.

Manchmal funktioniert auch das Löschen von Benutzerbrowser-Cookies, das andere Mal schlägt es fehl, ohne erkennbares Muster.

Es hat mich wahnsinnig gemacht, während ich mich bemühe zu sehen, was los ist.

Kann jemand einen Einblick geben, was der Grund sein könnte und welche Abhilfemaßnahmen könnten versucht werden?

+2

Zuerst müssen wir feststellen, ob das Problem mit dem Cookie, der URL oder dem Dienst auftritt. Ich bin mir nicht sicher, ob ein '+' in einer URL Ihnen in CloudFront Probleme bereitet; Zu einer Zeit glaubte ich, dass es einen Fehler gab, der damit zusammenhing. Gibt es URLs, die * niemals * funktionieren? Gibt es Cookies, die * niemals * funktionieren? Nehmen Sie die Cookies und den URI von einem Fehler auf und Sie sollten sie mit 'curl' wiedergeben können. –

+0

Danke Michael. Mit curl führe ich diese 2 URLs mit genau denselben Cookies aus: curl -v -b "3 Cookie: Wertpaare gehen hierhin" http://cloudfront.test.company_name.com/dev%2F2016%2F8%2F4%2F01 . + Track + 1.mp3 - funktioniert nicht; curl -v -b "3 Cookie: Wert-Paare gehen hier" http: //cloudfront.test.company_name.com/dev%2F2016%2F4%2F19%2FGoPro-+Best+of+2015+++Das+Year+in+Review.mp4 - funktioniert –

Antwort

0

Okay, ist die Antwort in meiner Antwort auf Michael:

ich später bemerkte, dass die Ressource-URLs für die Arbeit und andernfalls Inhalt unterschiedlich waren. Ziemlich nahe, um den Unterschied auf den ersten Blick nicht zu sehen, aber anders. Alles war gleich - Köcheln, Header, andere Parameter. Aber ich habe 2 verschiedene Inhalte verglichen. Die erste URL hat immer funktioniert, die zweite immer fehlgeschlagen.

Lektion gelernt: vorsichtig die beiden Ressourcen locken und die URLS analysieren, um zu sehen, was eigentlich anders ist.

Ein Tipp: Verwenden Sie die Entwicklungstools von Chrome, um curl-Befehle abzuleiten: Klicken Sie mit der rechten Maustaste auf die fehlerhafte URL -> Kopieren-> Kopieren als cURL. Dann fügen Sie in die Befehlszeile ein, um zu testen.

BTW, wir haben die fehlerhafte Ressource einfach neu hochgeladen und die verweisende Webseite aktualisiert - alles funktioniert wieder.

Verwandte Themen