Package com.agiletec.plugins.jpwebdynamicform.aps.internalservlet.message

Source Code of com.agiletec.plugins.jpwebdynamicform.aps.internalservlet.message.CaptchaAction

/*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
* This file is part of Entando Enterprise Edition software.
* You can redistribute it and/or modify it
* under the terms of the Entando's EULA
*
* See the file License for the specific language governing permissions  
* and limitations under the License
*
*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
*/
package com.agiletec.plugins.jpwebdynamicform.aps.internalservlet.message;

import com.agiletec.aps.system.ApsSystemUtils;
import com.agiletec.plugins.jpwebdynamicform.aps.system.services.JpwebdynamicformSystemConstants;
import com.agiletec.plugins.jpwebdynamicform.aps.system.services.message.model.Message;

import java.util.Date;

import net.tanesha.recaptcha.ReCaptchaImpl;
import net.tanesha.recaptcha.ReCaptchaResponse;

import org.apache.struts2.ServletActionContext;

/**
* @author E.Santoboni
*/
public class CaptchaAction extends UserNewMessageAction {
 
  @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"));
      }
    }
  }
 
  public String captchaConfirm() {
    try {
      Message message = this.getMessage();
      if (message == null) {
        return "expiredMessage";
      }
      String username = this.getCurrentUser().getUsername();
      message.setUsername(username);
      message.setCreationDate(new Date());
      message.setLangCode(this.getCurrentLang().getCode());
      try {
        this.getMessageManager().sendMessage(message);
      } catch (Throwable t) {
        ApsSystemUtils.logThrowable(t, this, "save");
        this.addActionError(this.getText("Errors.webdynamicform.sendingError"));
        return INPUT;
      }
      this.setMessageOnSession(null);
    } catch (Throwable t) {
      ApsSystemUtils.logThrowable(t, this, "save");
      return FAILURE;
    }
    return SUCCESS;
  }
 
}
TOP

Related Classes of com.agiletec.plugins.jpwebdynamicform.aps.internalservlet.message.CaptchaAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.