Search in sources :

Example 1 with ClassificationReason

use of com.google.recaptchaenterprise.v1.RiskAnalysis.ClassificationReason in project java-recaptchaenterprise by googleapis.

the class CreateAssessment method createAssessment.

/**
 * Create an assessment to analyze the risk of an UI action. Assessment approach is the same for
 * both 'score' and 'checkbox' type recaptcha site keys.
 *
 * @param projectID : GCloud Project ID
 * @param recaptchaSiteKey : Site key obtained by registering a domain/app to use recaptcha
 *     services. (score/ checkbox type)
 * @param token : The token obtained from the client on passing the recaptchaSiteKey.
 * @param recaptchaAction : Action name corresponding to the token.
 */
public static void createAssessment(String projectID, String recaptchaSiteKey, String token, String recaptchaAction) throws IOException {
    // clean up any remaining background resources.
    try (RecaptchaEnterpriseServiceClient client = RecaptchaEnterpriseServiceClient.create()) {
        // Set the properties of the event to be tracked.
        Event event = Event.newBuilder().setSiteKey(recaptchaSiteKey).setToken(token).build();
        // Build the assessment request.
        CreateAssessmentRequest createAssessmentRequest = CreateAssessmentRequest.newBuilder().setParent(ProjectName.of(projectID).toString()).setAssessment(Assessment.newBuilder().setEvent(event).build()).build();
        Assessment response = client.createAssessment(createAssessmentRequest);
        // Check if the token is valid.
        if (!response.getTokenProperties().getValid()) {
            System.out.println("The CreateAssessment call failed because the token was: " + response.getTokenProperties().getInvalidReason().name());
            return;
        }
        // (If the key is checkbox type and 'action' attribute wasn't set, skip this check.)
        if (!response.getTokenProperties().getAction().equals(recaptchaAction)) {
            System.out.println("The action attribute in reCAPTCHA tag is: " + response.getTokenProperties().getAction());
            System.out.println("The action attribute in the reCAPTCHA tag " + "does not match the action (" + recaptchaAction + ") you are expecting to score");
            return;
        }
        // see: https://cloud.google.com/recaptcha-enterprise/docs/interpret-assessment
        for (ClassificationReason reason : response.getRiskAnalysis().getReasonsList()) {
            System.out.println(reason);
        }
        float recaptchaScore = response.getRiskAnalysis().getScore();
        System.out.println("The reCAPTCHA score is: " + recaptchaScore);
        // Get the assessment name (id). Use this to annotate the assessment.
        String assessmentName = response.getName();
        System.out.println("Assessment name: " + assessmentName.substring(assessmentName.lastIndexOf("/") + 1));
    }
}
Also used : Assessment(com.google.recaptchaenterprise.v1.Assessment) CreateAssessmentRequest(com.google.recaptchaenterprise.v1.CreateAssessmentRequest) Event(com.google.recaptchaenterprise.v1.Event) ClassificationReason(com.google.recaptchaenterprise.v1.RiskAnalysis.ClassificationReason) RecaptchaEnterpriseServiceClient(com.google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseServiceClient)

Aggregations

RecaptchaEnterpriseServiceClient (com.google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseServiceClient)1 Assessment (com.google.recaptchaenterprise.v1.Assessment)1 CreateAssessmentRequest (com.google.recaptchaenterprise.v1.CreateAssessmentRequest)1 Event (com.google.recaptchaenterprise.v1.Event)1 ClassificationReason (com.google.recaptchaenterprise.v1.RiskAnalysis.ClassificationReason)1