in src/main/java/com/google/recaptcha/pld/pld/services/RecaptchaContext.java [134:168]
public CompletableFuture<VerificationResponse> createAssessmentAsync(
PasswordCheckVerification clientEncryptedCredentials, Assessment requestAssessment) {
if (clientEncryptedCredentials.getLookupHashPrefix() == null
|| clientEncryptedCredentials.getEncryptedUserCredentialsHash() == null) {
throw new IllegalArgumentException(Messages.INTERNAL_CREDENTIALS_ARE_NULL_MESSAGE);
}
return CompletableFuture.supplyAsync(
() -> {
PrivatePasswordLeakVerification pldVerification =
PrivatePasswordLeakVerification.newBuilder()
.setLookupHashPrefix(
ByteString.copyFrom(clientEncryptedCredentials.getLookupHashPrefix()))
.setEncryptedUserCredentialsHash(
ByteString.copyFrom(
clientEncryptedCredentials.getEncryptedUserCredentialsHash()))
.build();
try {
Assessment mergeedRequest =
requestAssessment.toBuilder()
.setPrivatePasswordLeakVerification(pldVerification)
.build();
Assessment responseAssessment =
recaptchaClient.createAssessment(
"projects/" + config.getProjectId(), mergeedRequest);
return new VerificationResponse(responseAssessment, clientEncryptedCredentials);
} catch (ApiException apiException) {
throw convertGrpcException(apiException);
} catch (Exception e) {
throw e;
}
});
}