Exemplo n.º 1
0
  @Override
  public void validate(ValidationContext context) {
    MultivaluedMap<String, String> formData = context.getHttpRequest().getDecodedFormParameters();
    List<FormMessage> errors = new ArrayList<>();
    boolean success = false;
    context.getEvent().detail(Details.REGISTER_METHOD, "form");

    String captcha = formData.getFirst(G_RECAPTCHA_RESPONSE);
    if (!Validation.isBlank(captcha)) {
      AuthenticatorConfigModel captchaConfig = context.getAuthenticatorConfig();
      String secret = captchaConfig.getConfig().get(SITE_SECRET);

      success = validateRecaptcha(context, success, captcha, secret);
    }
    if (success) {
      context.success();
    } else {
      errors.add(new FormMessage(null, Messages.RECAPTCHA_FAILED));
      formData.remove(G_RECAPTCHA_RESPONSE);
      context.getEvent().error(Errors.INVALID_REGISTRATION);
      context.validationError(formData, errors);
      return;
    }
  }