Header callback-timestamp wird bei Wiederholungen des Callbacks nicht aktualisiert
Zusammenfassung
Der Header callback-timestamp
von Callbacks wird bei Wiederholungen nicht aktualisiert.
Schritte zum Reproduzieren
- Destination mit Callback anlegen
- Submission absenden
- Abwarten, bis der Callback wiederholt wird
- Request Header
callback-timestamp
untersuchen
Wie verhält sich der aktuelle Fehler?
- Wir haben eine neue Callback-URL auf dem Testsystem für 2 Destinations gepatcht: (https://submission-api-testing.fit-connect.fitko.dev/v1/destinations/DESTINATION_ID) (wir wollten Anträge auf unser Dev-System (vlh028) statt unser Test-System (vlh021) weiterleiten)
- Dabei habe ich ein falsches Secret mitgegeben (wusste ich aber noch nicht)
- Ich habe einen Testantrag von Demo Navo Niedersachsen abgeschickt (https://demo.navo.niedersachsen.de/demo/go/a/1253?c=bc)
- FITKO hat dann die Callback-URL unseres Systems (fit_connect_bridge) aufgetrufen, aber hatte das falsche Secret und wurde damit von unserem System abgewiesen (das konnte man im Log unseres Systems sehen) Bis hierhin hat also alles korrekt funktioniert
- Da die Submissions nicht weitergeleitet werden konnten, hat die FITKO in bestimmten Zeitintervallen versucht die Callback-URL aufzurufen
- In dem Log unseres Systems stand jetzt aber nicht mehr, dass aufgrund des falschen Secrets abgewiesen wurde, sondern aufgrund eines zu alten Timestamps
- Nun habe ich abermals den Callback für beide Destinations gepatcht und das korrekte Secret mitgeschickt
- Der Callback wurde aufgerufen, aber die Submissions wurden auf unserer Seite weiterhin wegen eines zu alten Timestamps abgewiesen
- Dies ist so lange passiert bis die FITKO die Anträge nach einer Weile gelöscht hat
- Frisch versendete Anträge sind hingegen mit dem korrekten Secret angekommen
- Konkret müssen wir auf unserem System laut Doku alle Callbacks abweisen, deren Timestamp älter als 5 Minuten ist siehe: https://docs.fitko.de/fit-connect/docs/details/callbacks#callback-validation
- Problem scheint allerdings, dass FITKO bei erneuten Versuchen Callbacks aufzurufen immer den ursprünglichen Timestamp (als der Antrag ins System kam) mitgibt
- Daher können erneute Versuche nie mehr erfolgreich sein, da der Timestamp immer älter als 5 min ist
Was ist das erwartete richtige Verhalten?
Der Header callback-timestamp
enthält bei jedem Callback einen aktuellen Wert.