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);
}