使用 java 玩 Framework ReCaptcha

Play Framework ReCaptcha with java

我需要知道如何使用 recaptcha,scala 中有一个库,但 java 中没有。

你能帮我提供一些代码示例以了解如何使用该库吗:

https://github.com/chrisnappin/play-recaptcha-v2-example/blob/release-2.1/app/controllers/ExampleForm.scala

在java?

您可以在控制器中使用类似这样的东西来验证表单:

private boolean isRecaptchaValid(String recaptchaKey, String useRecaptcha) {
    String recaptchaSecretKey = configuration.getString("recaptchaSecretKey");

    WSRequest holder = ws.url("https://www.google.com/recaptcha/api/siteverify");
    holder.setQueryParameter("secret", recaptchaSecretKey);
    holder.setQueryParameter("response", recaptchaKey);

    CompletionStage<JsonNode> jsonPromise = holder.post("").thenApply(WSResponse::asJson);

    JsonNode googleResponse = null;
    try{
        googleResponse = jsonPromise.toCompletableFuture().get(1000, TimeUnit.MILLISECONDS);
    } catch (InterruptedException e){
        e.printStackTrace();
    } catch (ExecutionException e){
        e.printStackTrace();
    } catch (TimeoutException e){
        e.printStackTrace();
    }

    if (googleResponse!= null && googleResponse.get("success") != null && googleResponse.get("success").asBoolean()) {
        return true;
    }

    return false;
}