Examples of PasswordRecoveryException


Examples of com.baasbox.exception.PasswordRecoveryException

  public static void sendResetPwdMail(String appCode, ODocument user) throws Exception {
    final String errorString ="Cannot send mail to reset the password: ";

    //check method input
    if (!user.getSchemaClass().getName().equalsIgnoreCase(UserDao.MODEL_NAME)) throw new PasswordRecoveryException (errorString + " invalid user object");

    //initialization
    String siteUrl = Application.NETWORK_HTTP_URL.getValueAsString();
    int sitePort = Application.NETWORK_HTTP_PORT.getValueAsInteger();
    if (StringUtils.isEmpty(siteUrl)) throw  new PasswordRecoveryException (errorString + " invalid site url (is empty)");

    String textEmail = PasswordRecovery.EMAIL_TEMPLATE_TEXT.getValueAsString();
    String htmlEmail = PasswordRecovery.EMAIL_TEMPLATE_HTML.getValueAsString();
    if (StringUtils.isEmpty(htmlEmail)) htmlEmail=textEmail;
    if (StringUtils.isEmpty(htmlEmail)) throw  new PasswordRecoveryException (errorString + " text to send is not configured");

    boolean useSSL = PasswordRecovery.NETWORK_SMTP_SSL.getValueAsBoolean();
    boolean useTLS = PasswordRecovery.NETWORK_SMTP_TLS.getValueAsBoolean();
    String smtpHost = PasswordRecovery.NETWORK_SMTP_HOST.getValueAsString();
    int smtpPort = PasswordRecovery.NETWORK_SMTP_PORT.getValueAsInteger();
    if (StringUtils.isEmpty(smtpHost)) throw  new PasswordRecoveryException (errorString + " SMTP host is not configured");


    String username_smtp = null;
    String password_smtp = null;
    if (PasswordRecovery.NETWORK_SMTP_AUTHENTICATION.getValueAsBoolean()) {
      username_smtp = PasswordRecovery.NETWORK_SMTP_USER.getValueAsString();
      password_smtp = PasswordRecovery.NETWORK_SMTP_PASSWORD.getValueAsString();
      if (StringUtils.isEmpty(username_smtp)) throw  new PasswordRecoveryException (errorString + " SMTP username is not configured");
    }
    String emailFrom = PasswordRecovery.EMAIL_FROM.getValueAsString();
    String emailSubject = PasswordRecovery.EMAIL_SUBJECT.getValueAsString();
    if (StringUtils.isEmpty(emailFrom)) throw  new PasswordRecoveryException (errorString + " sender email is not configured");

    try {
      String userEmail=((ODocument) user.field(UserDao.ATTRIBUTES_VISIBLE_ONLY_BY_THE_USER)).field("email").toString();

      String username = (String) ((ODocument) user.field("user")).field("name");

      //Random
      String sRandom = appCode + "%%%%" + username + "%%%%" + UUID.randomUUID();
      String sBase64Random = new String(Base64.encodeBase64(sRandom.getBytes()));

      //Save on DB
      ResetPwdDao.getInstance().create(new Date(), sBase64Random, user);

      //Send mail
      HtmlEmail email = null;

      URL resetUrl = new URL(Application.NETWORK_HTTP_SSL.getValueAsBoolean()? "https" : "http", siteUrl, sitePort, "/user/password/reset/"+sBase64Random);

      //HTML Email Text
      ST htmlMailTemplate = new ST(htmlEmail, '$', '$');
      htmlMailTemplate.add("link", resetUrl);
      htmlMailTemplate.add("user_name", username);

      //Plain text Email Text
      ST textMailTemplate = new ST(textEmail, '$', '$');
      textMailTemplate.add("link", resetUrl);
      textMailTemplate.add("user_name", username);

      email = new HtmlEmail();

      email.setHtmlMsg(htmlMailTemplate.render());
      email.setTextMsg(textMailTemplate.render());

      //Email Configuration
      email.setSSL(useSSL);
      email.setSSLOnConnect(useSSL);
      email.setTLS(useTLS);
      email.setStartTLSEnabled(useTLS);
      email.setStartTLSRequired(useTLS);
      email.setSSLCheckServerIdentity(false);
      email.setSslSmtpPort(String.valueOf(smtpPort));  
      email.setHostName(smtpHost);
      email.setSmtpPort(smtpPort);
      email.setCharset("utf-8");

      if (PasswordRecovery.NETWORK_SMTP_AUTHENTICATION.getValueAsBoolean()) {
        email.setAuthenticator(new  DefaultAuthenticator(username_smtp, password_smtp));
      }
      email.setFrom(emailFrom);     
      email.addTo(userEmail);

      email.setSubject(emailSubject);
      if (Logger.isDebugEnabled()) {
        StringBuilder logEmail = new StringBuilder()
            .append("HostName: ").append(email.getHostName()).append("\n")
            .append("SmtpPort: ").append(email.getSmtpPort()).append("\n")
            .append("SslSmtpPort: ").append(email.getSslSmtpPort()).append("\n")
           
            .append("SSL: ").append(email.isSSL()).append("\n")
            .append("TLS: ").append(email.isTLS()).append("\n")           
            .append("SSLCheckServerIdentity: ").append(email.isSSLCheckServerIdentity()).append("\n")
            .append("SSLOnConnect: ").append(email.isSSLOnConnect()).append("\n")
            .append("StartTLSEnabled: ").append(email.isStartTLSEnabled()).append("\n")
            .append("StartTLSRequired: ").append(email.isStartTLSRequired()).append("\n")
           
            .append("SubType: ").append(email.getSubType()).append("\n")
            .append("SocketConnectionTimeout: ").append(email.getSocketConnectionTimeout()).append("\n")
            .append("SocketTimeout: ").append(email.getSocketTimeout()).append("\n")
           
            .append("FromAddress: ").append(email.getFromAddress()).append("\n")
            .append("ReplyTo: ").append(email.getReplyToAddresses()).append("\n")
            .append("BCC: ").append(email.getBccAddresses()).append("\n")
            .append("CC: ").append(email.getCcAddresses()).append("\n")
           
            .append("Subject: ").append(email.getSubject()).append("\n")

            //the following line throws a NPE in debug mode
            //.append("Message: ").append(email.getMimeMessage().getContent()).append("\n")

           
            .append("SentDate: ").append(email.getSentDate()).append("\n");
        Logger.debug("Password Recovery is ready to send: \n" + logEmail.toString());
      }
      email.send();

    catch (EmailException authEx){
      Logger.error("ERROR SENDING MAIL:" + ExceptionUtils.getStackTrace(authEx));
      throw new PasswordRecoveryException (errorString + " Could not reach the mail server. Please contact the server administrator");
    catch (Exception e) {
      Logger.error("ERROR SENDING MAIL:" + ExceptionUtils.getStackTrace(e));
      throw new Exception (errorString,e);
    }
View Full Code Here
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.