Handle BackupFailedZkAuthenticationException in grpc SetPublicKey
This commit is contained in:
parent
305b015784
commit
59f2f04b7c
@ -157,16 +157,19 @@ public class BackupsAnonymousGrpcService extends SimpleBackupsAnonymousGrpc.Back
|
||||
}
|
||||
|
||||
@Override
|
||||
public SetPublicKeyResponse setPublicKey(final SetPublicKeyRequest request)
|
||||
throws BackupFailedZkAuthenticationException {
|
||||
public SetPublicKeyResponse setPublicKey(final SetPublicKeyRequest request) {
|
||||
final ECPublicKey publicKey = deserialize(ECPublicKey::new, request.getPublicKey().toByteArray());
|
||||
final BackupAuthCredentialPresentation presentation = deserialize(
|
||||
BackupAuthCredentialPresentation::new,
|
||||
request.getSignedPresentation().getPresentation().toByteArray());
|
||||
final byte[] signature = request.getSignedPresentation().getPresentationSignature().toByteArray();
|
||||
|
||||
backupManager.setPublicKey(presentation, signature, publicKey);
|
||||
return SetPublicKeyResponse.newBuilder().setSuccess(Empty.getDefaultInstance()).build();
|
||||
try {
|
||||
backupManager.setPublicKey(presentation, signature, publicKey);
|
||||
return SetPublicKeyResponse.newBuilder().setSuccess(Empty.getDefaultInstance()).build();
|
||||
} catch (BackupFailedZkAuthenticationException e) {
|
||||
return SetPublicKeyResponse.newBuilder().setFailedAuthentication(FailedZkAuthentication.getDefaultInstance()).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doThrow;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import com.google.common.collect.Iterators;
|
||||
@ -114,6 +115,16 @@ class BackupsAnonymousGrpcServiceTest extends
|
||||
.getResponseCase()).isEqualTo(SetPublicKeyResponse.ResponseCase.SUCCESS);
|
||||
}
|
||||
|
||||
@Test
|
||||
void setPublicKeyBadZkAuth() throws BackupFailedZkAuthenticationException {
|
||||
doThrow(BackupFailedZkAuthenticationException.class).when(backupManager).setPublicKey(any(), any(), any());
|
||||
assertThat(unauthenticatedServiceStub().setPublicKey(SetPublicKeyRequest.newBuilder()
|
||||
.setPublicKey(ByteString.copyFrom(ECKeyPair.generate().getPublicKey().serialize()))
|
||||
.setSignedPresentation(signedPresentation(presentation))
|
||||
.build())
|
||||
.getResponseCase()).isEqualTo(SetPublicKeyResponse.ResponseCase.FAILED_AUTHENTICATION);
|
||||
}
|
||||
|
||||
@Test
|
||||
void setBadPublicKey() {
|
||||
assertThatExceptionOfType(StatusRuntimeException.class).isThrownBy(() ->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user