Spring Security Oauth2'yi uygulamamdaki bir güvenlik katmanı olarak kullanıyorum. Eşzamanlı olarak async çağrıları görünene kadar her şey iyi çalıştı.Oauth2; Eş zamanlı olarak yapılan çoklu async API çağrıları sırasında süresi dolmuş AccessToken ile sorunu nasıl çözebilirim?
Birisi bana sonraki olayın nasıl ele alınacağını söyler:
1. İstemcinin süresi dolmuş olan bir accessToken'i var.
2. İstemci, api'ye eşzamanlı iki eşzamansız çağrı yapar (örneğin: Thread1, Thread2).
3. Thread1 bir hata alır: Thread2'den önce "accessToken süresi doldu".
4. refreshToken Thread1 kullanarak yeni bir accessToken = qqqqq alır.
5. Thread2 bir hata alır: "accessToken süresi doldu", Thread1 yeni accessToken = qqqqq ile sunucuya yeni bir çağrı yapar.
6. refreshToken Thread2'yi kullanarak yeni bir accessToken = wwwww alır ve accessToken = qqqqq öğesini kaldırır.
7. Burada, iş parçacığı1, etkin olmayan accessToken = qqqqq ile sunucuya bir çağrı yapar. Teorik olarak, her iki Threads'ı birbirini geçersiz kılarak döngü yapmak oldukça olasıdır.
Herhangi bir yardım için teşekkür ederiz, teşekkürler. istemci üzerinde kontrol var ise
Çok teşekkür ederim. İstemci üzerinde denetime sahibim, bu yüzden "accessToken" sürümünü kullanacağım. Tekrar teşekkürler. –
Java'm paslı ama örnek kodda hala bir yarış durumu var, değil mi? İki iş parçacığı, belirtecin geçerli sürüm olduğunu görebilir ve ardından bir diğerini üzerine yazarak bir yenilemeyi deneyebilir. – JimmidyJoo