Java源码示例:net.tanesha.recaptcha.ReCaptchaResponse

示例1
@Override
public void validate() {
	Message message = this.getMessage();
	if (message == null) {
		return;
	}
	super.validate();
	if (this.getRecaptchaEnabled()) {
		String remoteAddr = ServletActionContext.getRequest().getRemoteAddr();
		ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
		String privateKey = this.getConfigManager().getParam(JpwebdynamicformSystemConstants.RECAPTCHA_PRIVATEKEY_PARAM_NAME);
		reCaptcha.setPrivateKey(privateKey);
		ReCaptchaResponse reCaptchaResponse = reCaptcha.checkAnswer(remoteAddr,
				this.getRecaptcha_challenge_field(), this.getRecaptcha_response_field());
		if (!reCaptchaResponse.isValid()) {
			this.addFieldError("recaptcha_response_field", this.getText("Errors.webdynamicform.captcha.notValid"));
		}
	}
}
 
示例2
@RequestMapping(value = "/cfs/topic_process_add", method = RequestMethod.POST)
public RedirectView submitForAdd(
		@ModelAttribute("topicForm") @Validated TopicForm topicForm,
		HttpServletRequest request, BindingResult result, Model model,
		final RedirectAttributes redirectAttributes,
		@RequestParam("recaptcha_challenge_field") String challangeField,
		@RequestParam("recaptcha_response_field") String responseField) {

	RedirectView redirectView = new RedirectView();
	redirectView.setContextRelative(true);
	redirectView.setUrl("/cfs/topics.html");

	
	if (result.hasErrors()) {
		redirectView.setUrl("/cfs/topics.html");
	} else {
		redirectAttributes.addFlashAttribute("css", "success");

		String remoteAddress = request.getRemoteAddr();
		ReCaptchaResponse reCaptchaResponse = this.reCaptcha.checkAnswer(
				remoteAddress, challangeField, responseField);
		if (reCaptchaResponse.isValid()) {
			redirectAttributes.addFlashAttribute("msg",
					"New topic added successfully!");
			topicService.addTopic(topicForm);
			redirectView.setUrl("/cfs/topics.html");
		} else {
			redirectView.setUrl("/cfs/topics_add.html");
		}

	}

	return redirectView;
}
 
示例3
@RequestMapping(method=RequestMethod.POST)
public String processContactForm(
			@ModelAttribute("contactForm") ContactForm contactForm,
			BindingResult result, 
			Model model,
               @RequestParam("recaptcha_challenge_field") String challangeField,
               @RequestParam("recaptcha_response_field") String responseField,
               ServletRequest servletRequest, SessionStatus sessionStatus
	){
	
	LOG.debug("------ processContactForm : form is being validated and processed -----");
	contactFormValidator.validate(contactForm, result);

       String remoteAddress = servletRequest.getRemoteAddr();
       ReCaptchaResponse reCaptchaResponse = this.reCaptcha.checkAnswer(
               remoteAddress, challangeField, responseField);

	if(!result.hasErrors() && reCaptchaResponse.isValid()){
		contactService.sendContactMessage(contactForm);
       	emailNotificationService.sendContactNotification(contactForm);
           sessionStatus.setComplete();

       	return "redirect:/contact?tks=true";			
	} else {
		List<String> topics = Utilities.getDisplayValues(ContactTopicType.class);
		model.addAttribute("topics", topics);			
		model.addAttribute("contactForm", contactForm);
           if (!reCaptchaResponse.isValid()) {
               result.rejectValue("invalidRecaptcha", "invalid.captcha");
               model.addAttribute("invalidRecaptcha", true);
           }
   		
		return "contact_form_def";	
	}		
	
}
 
示例4
/**
 * 
 * @param addPodcastFormData
 * @param result
 * @param model
 * @param servletRequest
 * @return
 */
@RequestMapping(method = RequestMethod.POST)
public String processAddPodcastForm(
		@ModelAttribute("addPodcastForm") SuggestedPodcast addPodcastFormData,
		BindingResult result, Model model,
		@RequestParam("recaptcha_challenge_field") String challangeField,
		@RequestParam("recaptcha_response_field") String responseField,
		ServletRequest servletRequest, SessionStatus sessionStatus) {

	LOG.debug("------ processAddPodcastForm : form is being validated and processed -----");
	suggestPodcastValidator.validate(addPodcastFormData, result);

	String remoteAddress = servletRequest.getRemoteAddr();
	ReCaptchaResponse reCaptchaResponse = this.reCaptcha.checkAnswer(
			remoteAddress, challangeField, responseField);

	if (reCaptchaResponse.isValid() && !result.hasErrors()) {

		userInteractionService.addSuggestedPodcast(addPodcastFormData);
		emailNotificationService
				.sendSuggestPodcastNotification(addPodcastFormData);
		sessionStatus.setComplete();

		return "redirect:/how_can_i_help/add_podcast?tks=true";
	} else {
		model.addAttribute("addPodcastForm", addPodcastFormData);
		if (!reCaptchaResponse.isValid()) {
			result.rejectValue("invalidRecaptcha", "invalid.captcha");
			model.addAttribute("invalidRecaptcha", true);
		}
		return "add_podcast_form_def";
	}

}
 
示例5
@Override
public void validate() {
	if (this.getRecaptchaAfterEnabled()) {
		String remoteAddr = ServletActionContext.getRequest().getRemoteAddr();
		ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
		String privateKey = this.getConfigManager().getParam(JpwebdynamicformSystemConstants.RECAPTCHA_PRIVATEKEY_PARAM_NAME);
		reCaptcha.setPrivateKey(privateKey);
		ReCaptchaResponse reCaptchaResponse = reCaptcha.checkAnswer(remoteAddr, 
				this.getRecaptcha_challenge_field(), this.getRecaptcha_response_field());
		if (!reCaptchaResponse.isValid()) {
			this.addFieldError("recaptcha_response_field", this.getText("Errors.webdynamicform.captcha.notValid"));
		}
	}
}
 
示例6
@Override
public boolean isValid(HttpServletRequest request) {
    log.debug("ReCaptcha enabled:  {}", captchaEnabled);
    if (!captchaEnabled) {
        return true;
    }
    if (StringUtils.isBlank(privateKey) || StringUtils.isBlank(publicKey)) {
        log.error("ReCaptcha service is enabled, however, private or public keys are not defined.");
        return true;
    }

    boolean secure = request.isSecure();
    ReCaptcha captcha;
    if (secure) {
        captcha = ReCaptchaFactory.newSecureReCaptcha(publicKey, privateKey, createNoScript);
    } else {
        captcha = ReCaptchaFactory.newReCaptcha(publicKey, privateKey, createNoScript);
    }
    String response = request.getParameter(PARAM_CAPTCHA_RESPONSE);
    String challenge = request.getParameter(PARAM_CAPTCHA_CHALLENGE);
    String remoteAddress = request.getRemoteAddr();
    // validate:
    ReCaptchaResponse captchaResponse = captcha.checkAnswer(remoteAddress, challenge, response);
    boolean valid = captchaResponse.isValid();
    if (valid) {
        return true;
    }
    log.warn("Invalid captcha response:  {}", captchaResponse.getErrorMessage());
    return false;

}
 
示例7
public boolean validateCaptcha(HttpServletRequest request){
    String remoteAddr = request.getRemoteAddr();
    ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
    reCaptcha.setPrivateKey(privateKey);

    String challenge = request.getParameter("recaptcha_challenge_field");
    String uresponse = request.getParameter("recaptcha_response_field");
    ReCaptchaResponse reCaptchaResponse = reCaptcha.checkAnswer(remoteAddr, challenge, uresponse);

    return reCaptchaResponse.isValid();
}
 
示例8
public ModelAndView recover(HttpServletRequest request, HttpServletResponse response) throws Exception {

        Map<String, Object> map = new HashMap<String, Object>();
        String usernameOrEmail = StringUtils.trimToNull(request.getParameter("usernameOrEmail"));
        ReCaptcha captcha = ReCaptchaFactory.newSecureReCaptcha("6LcZ3OMSAAAAANkKMdFdaNopWu9iS03V-nLOuoiH",
                "6LcZ3OMSAAAAAPaFg89mEzs-Ft0fIu7wxfKtkwmQ", false);
        boolean showCaptcha = true;

        if (usernameOrEmail != null) {

            map.put("usernameOrEmail", usernameOrEmail);
            User user = getUserByUsernameOrEmail(usernameOrEmail);
            String challenge = request.getParameter("recaptcha_challenge_field");
            String uresponse = request.getParameter("recaptcha_response_field");
            ReCaptchaResponse captchaResponse = captcha.checkAnswer(request.getRemoteAddr(), challenge, uresponse);

            if (!captchaResponse.isValid()) {
                map.put("error", "recover.error.invalidcaptcha");
            } else if (user == null) {
                map.put("error", "recover.error.usernotfound");
            } else if (user.getEmail() == null) {
                map.put("error", "recover.error.noemail");
            } else {
                String password = RandomStringUtils.randomAlphanumeric(8);
                if (emailPassword(password, user.getUsername(), user.getEmail())) {
                    map.put("sentTo", user.getEmail());
                    user.setLdapAuthenticated(false);
                    user.setPassword(password);
                    securityService.updateUser(user);
                    showCaptcha = false;
                } else {
                    map.put("error", "recover.error.sendfailed");
                }
            }
        }

        if (showCaptcha) {
            map.put("captcha", captcha.createRecaptchaHtml(null, null));
        }

        return new ModelAndView("recover", "model", map);
    }