googleapis / googleapis/google-oauth-java-client
StoredCredential / AbstractDataStoreFactory - optimistic lock
- Vorherrschende Sprache
- Java
- Sterne
- 661
- Forks
- 284
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
**Is your feature request related to a problem? Please describe.**
I'm facing to a **concurrent requests** that for the same user need to refresh the access token. All is good for the first request, but the second that uses the same refresh token has been rejected and in consequence, write null in the database. The access token and the new refresh are lost.
**Describe the solution you'd like**
Add a version field to the StoredCredential object. At this time this object cannot be overridden because it is declared as final class. This new field permit to implement a optimistic lock in my DataStoreFactory.
Result:
The second request it want to insert null with version 1, will be rejected because in database the first request put the new token with version 2. The right access token and refresh token aren't lost.
Beitragsleitfaden
Rechercherichtung
Beginnen Sie mit dem Lesen von StoredCredential und AbstractDataStoreFactory, um nachzuverfolgen, wie Anmeldedaten persistiert und aktualisiert werden. Keine Datei, kein Test und kein Einstiegspunkt sind genannt; die Umsetzung sollte die versionsabhängige Ablehnung durch optimistisches Sperren abdecken, sodass ein veralteter gleichzeitiger Schreibvorgang keine neueren Access- und Refresh-Tokens ersetzen kann, mit einem Test für diesen Wettlauf.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- authentication
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100