Create a transitional recaptcha client for upgrading

This commit is contained in:
Ehren Kret 2021-07-30 13:41:50 -07:00
parent 906d0be382
commit 2c808e369c
1 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1,33 @@
/*
* Copyright 2021 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.recaptcha;
import java.util.Objects;
import javax.annotation.Nonnull;
public class TransitionalRecaptchaClient implements RecaptchaClient {
private static final String PREFIX = "signal-v2:";
private final LegacyRecaptchaClient legacyRecaptchaClient;
private final EnterpriseRecaptchaClient enterpriseRecaptchaClient;
public TransitionalRecaptchaClient(
@Nonnull final LegacyRecaptchaClient legacyRecaptchaClient,
@Nonnull final EnterpriseRecaptchaClient enterpriseRecaptchaClient) {
this.legacyRecaptchaClient = Objects.requireNonNull(legacyRecaptchaClient);
this.enterpriseRecaptchaClient = Objects.requireNonNull(enterpriseRecaptchaClient);
}
@Override
public boolean verify(@Nonnull final String token, @Nonnull final String ip) {
if (token.startsWith(PREFIX)) {
return enterpriseRecaptchaClient.verify(token.substring(PREFIX.length()), ip);
} else {
return legacyRecaptchaClient.verify(token, ip);
}
}
}