From d0340d39dbbd14ecd47a6487735608ae35c7a9fd Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 14 May 2024 16:12:40 -0400 Subject: [PATCH] Reset backupV2 credentials on 403. --- .../securesms/backup/v2/BackupRepository.kt | 12 +++++++++--- .../thoughtcrime/securesms/keyvalue/BackupValues.kt | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index 3fa583a761..bab4be3edd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -65,9 +65,15 @@ object BackupRepository { private const val VERSION = 1L private val resetInitializedStateErrorAction: StatusCodeErrorAction = { error -> - if (error.code == 401) { - Log.i(TAG, "Resetting initialized state due to 401.") - SignalStore.backup().backupsInitialized = false + when (error.code) { + 401 -> { + Log.i(TAG, "Resetting initialized state due to 401.") + SignalStore.backup().backupsInitialized = false + } + 403 -> { + Log.i(TAG, "Bad auth credential. Clearing stored credentials.") + SignalStore.backup().clearAllCredentials() + } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt index f0b275f4ca..c934ec7b4d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt @@ -152,6 +152,10 @@ internal class BackupValues(store: KeyValueStore) : SignalStoreValues(store) { putString(KEY_CREDENTIALS, JsonUtil.toJson(SerializedCredentials(updated))) } + fun clearAllCredentials() { + putString(KEY_CREDENTIALS, null) + } + class SerializedCredentials( @JsonProperty val credentialsByDay: Map