- Verschifft
- 14. Oktober 2026 um 16:16 UTC
- Autor
- Kamo
- Ausschuss
- 618ee73
Zustand war base64 JSON {orgId, nonce, Provider] gebaut vom Anrufer, der Nonce wurde nie gespeichert oder überprüft, und der sitzungslose Rückruf vertraute dem dekodierten orgId - jeder könnte sein eigenes Zoom- oder Microsoft-Konto an ein anderes anhängen org. MeetingOAuthStateStore gibt jetzt einen zufälligen 64-hex-Token heraus, der an org gebunden ist, Mitglied und Provider (10-Minuten-TTL); der Rückruf verbringt es mit GETDEL, eins atomares Kommando, also ein gefälschter, abgelaufener, wiederholter oder gleichzeitiger zweiter Rückruf wird abgelehnt, bevor der Anbieter aufgerufen wird. Die redirect-URI Lookup-Peeks. Token refresh hatte keine Sperre und schrieb innerhalb der Transaktion des Anrufers, während Zoom dreht das Refresh-Token bei jedem Einsatz: zwei Pods, die auf einmal auffrischen links ein Halten eines widerrufenen Token. refreshIfNeeded nimmt jetzt eine Redis Sperre pro (org, Anbieter) (30 s Leasing, inhabergeprüfte Freigabe), die Zeile in einem REQUIRES_NEW Transaktion (ein Kellner findet in der Regel das frische Stipendium des Gewinners und gibt nie die Refresh Token), und speichert das Ergebnis durch MeetingOuthTokenWriter (REQUIRES_NEW), bevor das Schloss freigegeben wird.
