Skip to content

Commit fc0a7b7

Browse files
ravi-signaljon-signal
authored andcommitted
401 instead of 403 on wrong backup auth credential type
1 parent c1e870d commit fc0a7b7

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

service/src/main/java/org/whispersystems/textsecuregcm/backup/BackupManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,7 @@ static void checkBackupLevel(final AuthenticatedBackupUser backupUser, final Bac
649649
*
650650
* @param backupUser The backup user to check
651651
* @param credentialType The credential type to require
652-
* @throws {@link Status#PERMISSION_DENIED} error if the backup user is not authenticated with the given
652+
* @throws {@link Status#UNAUTHENTICATED} error if the backup user is not authenticated with the given
653653
* {@code credentialType}
654654
*/
655655
@VisibleForTesting
@@ -659,8 +659,8 @@ static void checkBackupCredentialType(final AuthenticatedBackupUser backupUser,
659659
FAILURE_REASON_TAG_NAME, "credential_type")
660660
.increment();
661661

662-
throw Status.PERMISSION_DENIED
663-
.withDescription("credential does not support the requested operation")
662+
throw Status.UNAUTHENTICATED
663+
.withDescription("wrong credential type for the requested operation")
664664
.asRuntimeException();
665665
}
666666
}

service/src/test/java/org/whispersystems/textsecuregcm/backup/BackupManagerTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ void checkBackupCredentialType(final BackupCredentialType authenticateCredential
176176
.isThrownBy(checkCredentialType)
177177
.extracting(StatusRuntimeException::getStatus)
178178
.extracting(Status::getCode)
179-
.isEqualTo(Status.Code.PERMISSION_DENIED);
179+
.isEqualTo(Status.Code.UNAUTHENTICATED);
180180
} else {
181181
assertThatNoException().isThrownBy(checkCredentialType);
182182
}
@@ -215,7 +215,7 @@ public void createBackupWrongCredentialType(final BackupLevel backupLevel) {
215215

216216
assertThatExceptionOfType(StatusRuntimeException.class)
217217
.isThrownBy(() -> backupManager.createMessageBackupUploadDescriptor(backupUser).join())
218-
.matches(exception -> exception.getStatus().getCode() == Status.PERMISSION_DENIED.getCode());
218+
.matches(exception -> exception.getStatus().getCode() == Status.UNAUTHENTICATED.getCode());
219219
}
220220

221221
@Test
@@ -245,7 +245,7 @@ public void createTemporaryMediaAttachmentWrongCredentialType() {
245245
.isThrownBy(() -> backupManager.createTemporaryAttachmentUploadDescriptor(backupUser))
246246
.extracting(StatusRuntimeException::getStatus)
247247
.extracting(Status::getCode)
248-
.isEqualTo(Status.Code.PERMISSION_DENIED);
248+
.isEqualTo(Status.Code.UNAUTHENTICATED);
249249
}
250250

251251
@ParameterizedTest
@@ -502,7 +502,7 @@ public void copyWrongCredentialType() {
502502
.isThrownBy(() -> copy(backupUser))
503503
.extracting(StatusRuntimeException::getStatus)
504504
.extracting(Status::getCode)
505-
.isEqualTo(Status.Code.PERMISSION_DENIED);
505+
.isEqualTo(Status.Code.UNAUTHENTICATED);
506506
}
507507

508508
@Test
@@ -675,7 +675,7 @@ public void deleteWrongCredentialType() {
675675
assertThatThrownBy(() ->
676676
backupManager.deleteMedia(backupUser, List.of(new BackupManager.StorageDescriptor(5, mediaId))).then().block())
677677
.isInstanceOf(StatusRuntimeException.class)
678-
.matches(e -> ((StatusRuntimeException) e).getStatus().getCode() == Status.PERMISSION_DENIED.getCode());
678+
.matches(e -> ((StatusRuntimeException) e).getStatus().getCode() == Status.UNAUTHENTICATED.getCode());
679679
}
680680

681681
@Test

0 commit comments

Comments
 (0)