Example usage for javax.mail Authenticator Authenticator

List of usage examples for javax.mail Authenticator Authenticator

Introduction

In this page you can find the example usage for javax.mail Authenticator Authenticator.

Prototype

Authenticator

Source Link

Usage

From source file:io.mapzone.arena.share.app.EMailSharelet.java

private Session mailSession() throws Exception {
    if (session == null) {
        Properties props = new Properties();
        props.put("mail.smtp.host", "192.168.122.183"); //ArenaConfigMBean.SMTP_HOST );
        props.put("mail.smtp.port", "25");
        props.put("mail.smtp.auth", "true");
        // TODO uncomment if the mail server contains a correct SSL certificate
        // props.put( "mail.smtp.starttls.enable", "true" ); // enable STARTTLS

        // create Authenticator object to pass in Session.getInstance argument
        Authenticator auth = new Authenticator() {
            @Override/*  www  .  j  a va  2  s  .  c  o m*/
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("support@mapzone.io", "690332"); // FIXME !!!
            }
        };
        session = Session.getInstance(props, auth);
    }
    return session;
}

From source file:org.viafirma.util.SendMailUtil.java

/**
 * Crea el MIME mensaje aadiendo su contenido, y su destinatario.
 * @param contentType // w  w w  .ja  v a  2s  .c o  m
 * 
 * @throws EmailException
 */
private MultiPartEmail createMultiPartEmail(String subject, String toUser, String fromAddres,
        String fromAddresDescription, MimeMultipart aMimeMultipart, String contentType)
        throws MessagingException, EmailException {
    MultiPartEmail email = new MultiPartEmail();
    email.setContent(aMimeMultipart);
    email.setHostName(smtpHost);
    email.addTo(toUser);
    email.setFrom(fromAddres, fromAddresDescription);
    email.setSubject(subject);

    // Si el smtp tiene usuario y pass nos logamos
    if (StringUtils.isNotEmpty(smtpUser) && StringUtils.isNotEmpty(smtpPass)) {
        Authenticator auth = new Authenticator() {
            @Override
            protected javax.mail.PasswordAuthentication getPasswordAuthentication() {

                return new PasswordAuthentication(smtpUser, smtpPass);
            }
        };
        log.info("Para mandar el correo nos autenticamos en el SMTP " + smtpHost + " con user " + smtpUser
                + " y pass " + CadenaUtilities.getCurrentInstance().generarAsteriscos(smtpPass));
        email.setAuthenticator(auth);
    }
    // email.setDebug(false);
    email.buildMimeMessage();
    return email;
}

From source file:com.waveerp.sendMail.java

public String sendMsgWithAttach(String strSource, String strSourceDesc, String strSubject, String strMsg,
        String strDestination, String strDestDesc, String strPath) throws Exception {

    String strResult = "OK";

    // Call the registry management system                    
    registrySystem rs = new registrySystem();
    // Call the encryption management system
    desEncryption de = new desEncryption();
    de.Encrypter("", "");

    String strHost = rs.readRegistry("NA", "NA", "NA", "EMAILHOST");
    String strPort = rs.readRegistry("NA", "NA", "NA", "EMAILPORT");
    final String strUser = rs.readRegistry("NA", "NA", "NA", "EMAILUSER");
    String strPass = rs.readRegistry("NA", "NA", "NA", "EMAILPASSWORD");

    //Decrypt the encrypted password.
    final String strPass01 = de.decrypt(strPass);

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", strHost);
    props.put("mail.smtp.port", strPort);
    props.put("mail.user", strUser);
    props.put("mail.password", strPass01);

    // creates a new session with an authenticator
    Authenticator auth = new Authenticator() {
        public PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(strUser, strPass01);
        }/*w w  w.  jav  a  2  s. c  o m*/
    };
    Session session = Session.getInstance(props, auth);

    // creates a new e-mail message
    Message msg = new MimeMessage(session);

    msg.setFrom(new InternetAddress(strSource));
    //InternetAddress[] toAddresses = { new InternetAddress(strDestination) };
    msg.setRecipient(Message.RecipientType.TO, new InternetAddress(strDestination));
    msg.setSubject(strSubject);
    msg.setSentDate(new Date());

    // creates message part
    MimeBodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setContent(strMsg, "text/html");

    // creates multi-part
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);

    // adds attachments
    //if (attachFiles != null && attachFiles.length > 0) {
    //    for (String filePath : attachFiles) {
    //        MimeBodyPart attachPart = new MimeBodyPart();
    //
    //        try {
    //            attachPart.attachFile(filePath);
    //        } catch (IOException ex) {
    //            ex.printStackTrace();
    //        }
    //
    //        multipart.addBodyPart(attachPart);
    //    }
    //}

    String fna;
    String fnb;
    URL fileUrl;

    fileUrl = null;
    fileUrl = this.getClass().getResource("sendMail.class");
    fna = fileUrl.getPath();
    fna = fna.substring(0, fna.indexOf("WEB-INF"));
    //fnb = URLDecoder.decode( fna + TEMP_DIR + strPath );
    fnb = URLDecoder.decode(fna + strPath);

    MimeBodyPart attachPart = new MimeBodyPart();
    try {

        attachPart.attachFile(fnb);

    } catch (IOException ex) {

        //ex.printStackTrace();
        strResult = ex.getMessage();

    }
    multipart.addBodyPart(attachPart);

    // sets the multi-part as e-mail's content
    msg.setContent(multipart);

    // sends the e-mail
    Transport.send(msg);

    return strResult;

}

From source file:com.mgmtp.perfload.perfalyzer.PerfAlyzerModule.java

private void createBindingsFromConfigFile(final File destDir) {
    File configFile = new File("config", "PerfAlyzerConfig.groovy");
    if (!configFile.exists()) {
        log.info("Config file '{}' does not exist. Using default config file.", configFile);
        configFile = new File("config", "PerfAlyzerConfig_Default.groovy");
    }/* w  ww.  j av  a2s. c  o m*/
    try {
        log.info("Loading perfAlyzer config file...");
        ConfigSlurper slurper = new ConfigSlurper();
        ConfigObject configObject = slurper.parse(configFile.toURI().toURL());

        // wrapping into a provider caters for null
        String url = get(configObject, "reportsBaseUrl");
        bind(String.class).annotatedWith(ReportsBaseUrl.class).toProvider(Providers.of(url));

        Integer warmUpSeconds = get(configObject, "warmUpSeconds");
        bindConstant().annotatedWith(WarmUpSeconds.class).to(warmUpSeconds);

        Integer maxHistoryItems = get(configObject, "maxHistoryItems");
        bindConstant().annotatedWith(MaxHistoryItems.class).to(maxHistoryItems);

        /***** email *****/
        ConfigObject emailConfig = get(configObject, "email");
        Boolean flag = get(emailConfig, "enabled");
        if (flag) {
            bindConstant().annotatedWith(EmailFrom.class).to((String) emailConfig.get("from"));

            List<String> toList = get(emailConfig, "to");
            bind(new TypeLiteral<List<String>>() {
                //
            }).annotatedWith(EmailTo.class).toInstance(toList);

            ConfigObject smtpConfig = get(emailConfig, "smtp");

            Boolean auth = (Boolean) smtpConfig.get("auth");
            if (auth != null && auth) {
                final String username = (String) smtpConfig.get("username");
                final String password = (String) smtpConfig.get("password");
                bind(Authenticator.class).toInstance(new Authenticator() {
                    @Override
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });
            }
            Boolean ssl = (Boolean) smtpConfig.remove("ssl");
            String prefix;
            String protocol;
            if (ssl != null && ssl) {
                protocol = "smtps";
                prefix = "mail.smtps";
            } else {
                protocol = "smtp";
                prefix = "mail.smtp";
            }

            Properties smtpProps = smtpConfig.toProperties(prefix);
            smtpProps.setProperty("mail.transport.protocol", protocol);
            bind(Properties.class).annotatedWith(SmtpProps.class).toInstance(smtpProps);

            ConfigObject subjectConfig = get(emailConfig, "subjects");
            Properties subjectProps = subjectConfig != null ? subjectConfig.toProperties() : new Properties();
            bind(Properties.class).annotatedWith(SubjectProps.class).toInstance(subjectProps);

            Integer maxEmailHistoryItems = get(emailConfig, "maxHistoryItems");
            if (maxEmailHistoryItems == null) {
                maxEmailHistoryItems = maxHistoryItems;
            } else {
                checkState(maxEmailHistoryItems <= maxHistoryItems,
                        "Max. history items in e-mail cannot be greater than global max history items");
            }
            bindConstant().annotatedWith(MaxEmailHistoryItems.class).to(maxEmailHistoryItems);

            bind(EmailReporter.class);
        } else {
            bind(EmailReporter.class).toProvider(Providers.<EmailReporter>of(null));
        }

        /***** thread count *****/
        Integer threadCount = get(configObject, "threadCount");
        bind(ExecutorService.class).toInstance(Executors.newFixedThreadPool(threadCount));

        /***** locale *****/
        String localeString = get(configObject, "locale");
        File localPropsFile = new File(destDir, ".config");
        Properties localProps = new Properties();
        if (localPropsFile.exists()) {
            loadIntoProperties(localPropsFile, localProps);
            String originalLocaleString = localProps.getProperty("locale");
            if (!originalLocaleString.equals(localeString)) {
                log.warn(
                        "Configured locale ({}) has changed but is ignored for compatibility reasons with comparison data. Locale used: {}",
                        localeString, originalLocaleString);
            }
            localeString = originalLocaleString;
        } else {
            localProps.setProperty("locale", localeString);
            saveProperties(localPropsFile, localProps);
        }
        final Locale locale = new Locale(localeString);
        bind(Locale.class).toInstance(locale);

        /***** reports contents configuration *****/
        Map<String, List<Pattern>> reportContentsConfigMap = get(configObject, "reportContents");
        bind(new TypeLiteral<Map<String, List<Pattern>>>() {
            //
        }).toInstance(reportContentsConfigMap);

        /***** display data *****/
        Map<String, Map<String, Object>> displayDataMap = get(configObject, "formats");

        List<DisplayData> displayDataList = newArrayListWithCapacity(displayDataMap.size());
        for (Map<String, Object> map : displayDataMap.values()) {
            Pattern pattern = (Pattern) map.get("pattern");
            String unitX = (String) map.get("unitX");
            @SuppressWarnings("unchecked")
            List<String> unitYList = (List<String>) map.get("unitY");
            DisplayData dd = new DisplayData(pattern, unitX, unitYList);
            displayDataList.add(dd);
        }

        bind(new TypeLiteral<List<DisplayData>>() {
            //
        }).toInstance(displayDataList);
    } catch (IOException ex) {
        addError(new Message(ImmutableList.<Object>of(configFile), "Error reading config file: " + configFile,
                ex));
    }
}

From source file:io.uengine.mail.MailAsyncService.java

private Session setMailProperties(final String toUser) {
    Properties props = new Properties();
    props.put("mail.smtp.auth", auth);
    props.put("mail.smtp.starttls.enable", starttls);
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.port", port);

    LogOutputStream loggerToStdOut = new LogOutputStream() {
        @Override/*from   ww w.j a va2s.c om*/
        protected void processLine(String line, int level) {
            logger.debug("[JavaMail] [{}] {}", toUser, line);
        }
    };

    Session session = Session.getInstance(props, new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(account, password);
        }
    });
    session.setDebug(true);
    session.setDebugOut(new PrintStream(loggerToStdOut));
    return session;
}

From source file:org.j2free.config.ConfigurationListener.java

/**
 *
 * @param event/*from   w w  w  .  j  av  a  2  s . c o  m*/
 */
public synchronized void contextInitialized(ServletContextEvent event) {
    context = event.getServletContext();

    // Get the configuration file
    String configPathTemp = (String) context.getInitParameter(INIT_PARAM_CONFIG_PATH);

    // Use the default path if it wasn't specified
    if (StringUtils.isBlank(configPathTemp))
        configPathTemp = DEFAULT_CONFIG_PATH;

    // Finalize the config path (needs to be final for inner-Runnable below)
    final String configPath = configPathTemp;
    context.setAttribute(CONTEXT_ATTR_CONFIG_PATH, configPath);

    try {
        // Load the configuration
        DefaultConfigurationBuilder configBuilder = new DefaultConfigurationBuilder();
        configBuilder.setFileName(configPath);

        final CombinedConfiguration config = configBuilder.getConfiguration(true);

        // Save the config where we can get at it later
        context.setAttribute(CONTEXT_ATTR_CONFIG, config);
        Global.put(CONTEXT_ATTR_CONFIG, config);

        // Determine the localhost
        String localhost = config.getString(PROP_LOCALHOST, "ip");
        if (localhost.equalsIgnoreCase("ip")) {
            try {
                localhost = InetAddress.getLocalHost().getHostAddress();
                log.info("Using localhost: " + localhost);
            } catch (Exception e) {
                log.warn("Error determining localhost", e);
                localhost = "localhost";
            }
        }

        context.setAttribute(CONTEXT_ATTR_LOCALHOST, localhost);
        Global.put(CONTEXT_ATTR_LOCALHOST, localhost);
        loadedConfigPropKeys.add(CONTEXT_ATTR_LOCALHOST);

        // Set application context attributes for all config properties
        String prop, value;
        Iterator itr = config.getKeys();
        while (itr.hasNext()) {
            prop = (String) itr.next();
            value = config.getString(prop);

            // Anything with the value "localhost" will be set to the IP if possible
            value = (value.equals("localhost") ? localhost : value);

            log.debug("Config: " + prop + " = " + value);
            context.setAttribute(prop, value);
            loadedConfigPropKeys.add(prop);
        }

        // Run Mode configuration
        String runMode = config.getString(PROP_RUNMODE);
        try {
            RUN_MODE = RunMode.valueOf(runMode);
        } catch (Exception e) {
            log.warn("Error setting runmode, invalid value: " + runMode);
        }

        context.setAttribute("devMode", RUN_MODE != RunMode.PRODUCTION);
        loadedConfigPropKeys.add("devMode");

        // Fragment Cache Configuration
        if (config.getBoolean(FragmentCache.Properties.ENABLED, false)) {
            log.info("Enabling fragment caching...");
            FragmentCacheTag.enable();

            // This is expected to be in seconds
            long temp = config.getLong(FragmentCache.Properties.REQUEST_TIMEOUT, -1l);
            if (temp != -1) {
                log.info("Setting FragmentCacheTag request timeout: " + temp);
                FragmentCacheTag.setRequestTimeout(temp);
            }

            // The property is in seconds, but WARNING_COMPUTE_DURATION does NOT use a TimeUnit, so it's in ms
            temp = config.getLong(FragmentCache.Properties.WARNING_DURATION, -1l);
            if (temp != -1) {
                log.info("Setting FragmentCacheTag warning duration: " + temp);
                FragmentCacheTag.setWarningComputeDuration(temp * 1000);
            }

            // Get the fragment cache names
            String[] cacheNames = config.getStringArray(FragmentCache.Properties.ENGINE_NAMES);
            for (String cacheName : cacheNames) {
                String cacheClassName = config
                        .getString(String.format(FragmentCache.Properties.ENGINE_CLASS_TEMPLATE, cacheName));
                try {
                    // Load up the class
                    Class<? extends FragmentCache> cacheClass = (Class<? extends FragmentCache>) Class
                            .forName(cacheClassName);

                    // Look for a constructor that takes a config
                    Constructor<? extends FragmentCache> constructor = null;
                    try {
                        constructor = cacheClass.getConstructor(Configuration.class);
                    } catch (Exception e) {
                    }

                    FragmentCache cache;

                    // If we found the configuration constructor, use it
                    if (constructor != null)
                        cache = constructor.newInstance(config);
                    else {
                        // otherwise use a default no-args constructor
                        log.warn("Could not find a " + cacheClass.getSimpleName()
                                + " constructor that takes a Configuration, defaulting to no-args constructor");
                        cache = cacheClass.newInstance();
                    }

                    // register the cache with the FragmentCacheTag using the config strategy-name, or the engineName
                    // if a strategy-name is not specified
                    log.info("Registering FragmentCache strategy: [name=" + cacheName + ", class="
                            + cacheClass.getName() + "]");
                    FragmentCacheTag.registerStrategy(cacheName, cache);
                } catch (Exception e) {
                    log.error("Error enabling FragmentCache engine: " + cacheName, e);
                }
            }

        } else {
            // Have to call this here, because reconfiguration could turn
            // the cache off after it was previously enabled.
            FragmentCacheTag.disable();
        }

        // For Task execution
        ScheduledExecutorService taskExecutor;

        if (config.getBoolean(PROP_TASK_EXECUTOR_ON, false)) {
            int threads = config.getInt(PROP_TASK_EXECUTOR_THREADS, DEFAULT_TASK_EXECUTOR_THREADS);

            if (threads == 1)
                taskExecutor = Executors.newSingleThreadScheduledExecutor();
            else
                taskExecutor = Executors.newScheduledThreadPool(threads);

            context.setAttribute(CONTEXT_ATTR_TASK_MANAGER, taskExecutor);
            loadedConfigPropKeys.add(CONTEXT_ATTR_TASK_MANAGER);

            Global.put(CONTEXT_ATTR_TASK_MANAGER, taskExecutor);
        } else {
            // Not allowed to shutdown the taskExecutor if dynamic reconfig is enabled
            if (reconfigTask == null) {
                // Shutdown and remove references to the taskManager previously created
                taskExecutor = (ScheduledExecutorService) Global.get(CONTEXT_ATTR_TASK_MANAGER);
                if (taskExecutor != null) {
                    taskExecutor.shutdown(); // will block until all tasks complete
                    taskExecutor = null;
                    Global.remove(CONTEXT_ATTR_TASK_MANAGER);
                }
            } else {
                // We could just log a warning that you can't do this, but the user
                // might not see that, so we're going to refuse to reset a configuration
                // that cannot be loaded in whole successfully.
                throw new ConfigurationException(
                        "Cannot disable task execution service, dynamic reconfiguration is enabled!");
            }
        }

        // Email Service
        if (config.getBoolean(PROP_MAIL_SERVICE_ON, false)) {
            if (!SimpleEmailService.isEnabled()) {
                // Get the SMTP properties
                Properties props = System.getProperties();
                props.put(PROP_SMTP_HOST, config.getString(PROP_SMTP_HOST));
                props.put(PROP_SMTP_PORT, config.getString(PROP_SMTP_PORT));
                props.put(PROP_SMTP_AUTH, config.getString(PROP_SMTP_AUTH));

                Session session;

                if (config.getBoolean(PROP_SMTP_AUTH)) {
                    final String user = config.getString(PROP_SMTP_USER);
                    final String pass = config.getString(PROP_SMTP_PASS);

                    Authenticator auth = new Authenticator() {
                        @Override
                        public PasswordAuthentication getPasswordAuthentication() {
                            return new PasswordAuthentication(user, pass);
                        }
                    };
                    session = Session.getInstance(props, auth);

                } else {
                    session = Session.getInstance(props);
                }

                // Get the global headers
                Iterator headerNames = config.getKeys(PROP_MAIL_HEADER_PREFIX);
                List<KeyValuePair<String, String>> headers = new LinkedList<KeyValuePair<String, String>>();

                String headerName;
                while (headerNames.hasNext()) {
                    headerName = (String) headerNames.next();
                    headers.add(new KeyValuePair<String, String>(headerName, config.getString(headerName)));
                }

                // Initialize the service
                SimpleEmailService.init(session);
                SimpleEmailService.setGlobalHeaders(headers);

                // Set whether we actually send the e-mails
                SimpleEmailService.setDummyMode(config.getBoolean(PROP_MAIL_DUMMY_MODE, false));

                // Set the failure policy
                String policy = config.getString(PROP_MAIL_ERROR_POLICY);
                if (policy != null) {
                    if (policy.equals(VALUE_MAIL_POLICY_DISCARD)) {
                        SimpleEmailService.setErrorPolicy(new SimpleEmailService.DiscardPolicy());
                    } else if (policy.equals(VALUE_MAIL_POLICY_REQUEUE)) {
                        Priority priority = null;
                        try {
                            priority = Priority.valueOf(config.getString(PROP_MAIL_REQUEUE_PRIORITY));
                        } catch (Exception e) {
                            log.warn("Error reading requeue policy priority: "
                                    + config.getString(PROP_MAIL_REQUEUE_PRIORITY, "") + ", using default");
                        }

                        if (priority == null)
                            SimpleEmailService.setErrorPolicy(new SimpleEmailService.RequeuePolicy());
                        else
                            SimpleEmailService.setErrorPolicy(new SimpleEmailService.RequeuePolicy(priority));
                    }
                }

                // Parse templates
                String emailTemplateDir = config.getString(PROP_MAIL_TEMPLATE_DIR);

                // If the template
                if (StringUtils.isBlank(emailTemplateDir))
                    emailTemplateDir = DEFAULT_EMAIL_TEMPLATE_DIR;

                log.debug("Looking for e-mail templates in: " + emailTemplateDir);
                Set<String> templates = context.getResourcePaths(emailTemplateDir);

                // E-mail templates
                if (templates != null && !templates.isEmpty()) {
                    log.debug("Found " + templates.size() + " templates");

                    String key;
                    String defaultTemplate = config.getString(PROP_MAIL_DEFAULT_TEMPLATE, EMPTY);

                    InputStream in;
                    StringBuilder builder;
                    Scanner scanner;

                    try {
                        Template template;
                        String[] parts;

                        ContentType contentType;

                        for (String path : templates) {
                            path = path.trim();
                            parts = path.split("\\.");

                            contentType = ContentType.valueOfExt(parts[1]);

                            try {
                                in = context.getResourceAsStream(path.trim());

                                if (in != null && in.available() > 0) {
                                    scanner = new Scanner(in);
                                    builder = new StringBuilder();

                                    while (scanner.hasNextLine()) {
                                        builder.append(scanner.nextLine());
                                        if (contentType == ContentType.PLAIN) {
                                            builder.append("\n");
                                        }
                                    }

                                    template = new Template(builder.toString(), contentType);

                                    key = parts[0].replace(emailTemplateDir, EMPTY);
                                    SimpleEmailService.registerTemplate(key, template,
                                            key.equals(defaultTemplate));
                                }
                            } catch (IOException ioe) {
                                log.error("Error loading e-mail template: " + path, ioe);
                            }
                        }
                    } catch (Exception e) {
                        log.error("Error loading e-mail templates", e);
                    }
                } else
                    log.debug("No e-mail templates found.");
            }
        } else if (SimpleEmailService.isEnabled()) {
            boolean shutdown = false;
            try {
                shutdown = SimpleEmailService.shutdown(30, TimeUnit.SECONDS);
            } catch (InterruptedException ie) {
                log.warn("Interrupted while shutting down SimpleEmailService");
            }

            if (!shutdown)
                SimpleEmailService.shutdown();
        }

        // QueuedHttpCallService
        if (config.getBoolean(PROP_HTTP_SRVC_ON, false)) {
            if (!SimpleHttpService.isEnabled()) // Don't double init...
            {
                int defaultThreadCount = Runtime.getRuntime().availableProcessors() + 1; // threads to use if unspecified
                SimpleHttpService.init(config.getInt(PROP_HTTP_SRVC_CORE_POOL, defaultThreadCount),
                        config.getInt(PROP_HTTP_SRVC_MAX_POOL, defaultThreadCount),
                        config.getLong(PROP_HTTP_SRVC_POOL_IDLE, DEFAULT_HTTP_SRVC_THREAD_IDLE),
                        config.getInt(PROP_HTTP_SRVC_CONNECT_TOUT, DEFAULT_HTTP_SRVC_CONNECT_TOUT),
                        config.getInt(PROP_HTTP_SRVE_SOCKET_TOUT, DEFAULT_HTTP_SRVE_SOCKET_TOUT));
            }
        } else if (SimpleHttpService.isEnabled()) {
            boolean shutdown = false;
            try {
                // Try to shutdown the service while letting currently waiting tasks complete
                shutdown = SimpleHttpService.shutdown(30, TimeUnit.SECONDS);
            } catch (InterruptedException ie) {
                log.warn("Interrupted while waiting for SimpleHttpService to shutdown");
            }
            if (!shutdown) {
                // But if that doesn't finish in 60 seconds, just cut it off
                int count = SimpleHttpService.shutdown().size();
                log.warn("SimpleHttpService failed to shutdown in 60 seconds, so it was terminated with "
                        + count + " tasks waiting");
            }
        }

        // Spymemcached Client
        if (config.getBoolean(PROP_SPYMEMCACHED_ON, false)) {
            String addresses = config.getString(PROP_SPYMEMCACHED_ADDRESSES);
            if (addresses == null) {
                log.error("Error configuring spymemcached; enabled but no addresses!");
            } else {
                try {
                    // Reflect our way to the constructor, this is all so that the
                    // spymemcached jar does not need to be included in a J2Free app
                    // unless it is actually to be used.
                    Class klass = Class.forName("net.spy.memcached.MemcachedClient");
                    Constructor constructor = klass.getConstructor(List.class);

                    klass = Class.forName("net.spy.memcached.AddrUtil");
                    Method method = klass.getMethod("getAddresses", String.class);

                    Object client = constructor.newInstance(method.invoke(null, addresses));

                    context.setAttribute(CONTEXT_ATTR_SPYMEMCACHED, client);
                    loadedConfigPropKeys.add(CONTEXT_ATTR_SPYMEMCACHED);

                    Global.put(CONTEXT_ATTR_SPYMEMCACHED, client);

                    log.info("Spymemcached client created, connected to " + addresses);
                } catch (Exception e) {
                    log.error("Error creating memcached client [addresses=" + addresses + "]", e);
                }
            }
        } else {
            // If a spymemcached client was previous created
            Object client = Global.get(CONTEXT_ATTR_SPYMEMCACHED);
            if (client != null) {
                try {
                    // Reflect our way to the shutdown method
                    Class klass = Class.forName("net.spy.memcached.MemcachedClient");
                    Method method = klass.getMethod("shutdown");

                    method.invoke(null, client); // and shut it down

                    log.info("Spymemcached client shutdown");
                } catch (Exception e) {
                    log.error("Error shutting down spymemcached client", e);
                }

                // Then remove any references
                Global.remove(CONTEXT_ATTR_SPYMEMCACHED);
                client = null;
            }
        }
    } catch (ConfigurationException ce) {
        log.error("Error configuring app", ce);
    }
}

From source file:org.cloudcoder.healthmonitor.HealthMonitor.java

/**
 * Create a mail Session based on information in the
 * given {@link HealthMonitorConfig}./*  ww  w . j  a  va  2s  .  c o  m*/
 * 
 * @param config the {@link HealthMonitorConfig}
 * @return the mail Session
 */
private Session createMailSession(HealthMonitorConfig config) {
    final PasswordAuthentication passwordAuthentication = new PasswordAuthentication(config.getSmtpUsername(),
            config.getSmtpPassword());

    Properties properties = new Properties();
    properties.putAll(System.getProperties());
    properties.setProperty("mail.smtp.submitter", passwordAuthentication.getUserName());
    properties.setProperty("mail.smtp.auth", "true");
    properties.setProperty("mail.smtp.host", config.getSmtpServer());
    properties.setProperty("mail.smtp.port", String.valueOf(config.getSmtpPort()));
    properties.setProperty("mail.smtp.starttls.enable", String.valueOf(config.isSmtpUseTLS()));

    return Session.getInstance(properties, new Authenticator() {
        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return passwordAuthentication;
        }
    });
}

From source file:org.apache.nifi.processors.standard.PutEmail.java

/**
 * Based on the input properties, determine whether an authenticate or unauthenticated session should be used. If authenticated, creates a Password Authenticator for use in sending the email.
 *
 * @param properties mail properties//from ww w  . ja v a2  s  . co m
 * @return session
 */
private Session createMailSession(final Properties properties) {
    String authValue = properties.getProperty("mail.smtp.auth");
    Boolean auth = Boolean.valueOf(authValue);

    /*
     * Conditionally create a password authenticator if the 'auth' parameter is set.
     */
    final Session mailSession = auth ? Session.getInstance(properties, new Authenticator() {
        @Override
        public PasswordAuthentication getPasswordAuthentication() {
            String username = properties.getProperty("mail.smtp.user"),
                    password = properties.getProperty("mail.smtp.password");
            return new PasswordAuthentication(username, password);
        }
    }) : Session.getInstance(properties); // without auth
    return mailSession;
}

From source file:org.openmrs.api.context.Context.java

/**
 * Gets the mail session required by the mail message service. This function forces
 * authentication via the getAdministrationService() method call
 * //from w  w  w . j  a va  2  s. com
 * @return a java mail session
 */
private static javax.mail.Session getMailSession() {
    if (mailSession == null) {
        AdministrationService adminService = getAdministrationService();

        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", adminService.getGlobalProperty("mail.transport_protocol"));
        props.setProperty("mail.smtp.host", adminService.getGlobalProperty("mail.smtp_host"));
        props.setProperty("mail.smtp.port", adminService.getGlobalProperty("mail.smtp_port"));
        props.setProperty("mail.from", adminService.getGlobalProperty("mail.from"));
        props.setProperty("mail.debug", adminService.getGlobalProperty("mail.debug"));
        props.setProperty("mail.smtp.auth", adminService.getGlobalProperty("mail.smtp_auth"));

        Authenticator auth = new Authenticator() {

            @Override
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(getAdministrationService().getGlobalProperty("mail.user"),
                        getAdministrationService().getGlobalProperty("mail.password"));
            }
        };

        mailSession = Session.getInstance(props, auth);
    }
    return mailSession;
}

From source file:net.sourceforge.msscodefactory.cfasterisk.v2_4.CFAsteriskSMWar.CFAsteriskSMWarRequestResetPasswordHtml.java

protected void sendPasswordResetEMail(HttpServletRequest request, ICFSecuritySecUserObj resetUser,
        ICFSecurityClusterObj cluster) throws AddressException, MessagingException, NamingException {

    final String S_ProcName = "sendPasswordResetEMail";

    Properties props = System.getProperties();
    String clusterDescription = cluster.getRequiredDescription();

    Context ctx = new InitialContext();

    String smtpEmailFrom = (String) ctx.lookup("java:comp/env/CFAsterisk24SmtpEmailFrom");
    if ((smtpEmailFrom == null) || (smtpEmailFrom.length() <= 0)) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                "JNDI lookup for CFAsterisk24SmtpEmailFrom");
    }/*  w ww.  j a v a 2 s  .c  o m*/

    smtpUsername = (String) ctx.lookup("java:comp/env/CFAsterisk24SmtpUsername");
    if ((smtpUsername == null) || (smtpUsername.length() <= 0)) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                "JNDI lookup for CFAsterisk24SmtpUsername");
    }

    smtpPassword = (String) ctx.lookup("java:comp/env/CFAsterisk24SmtpPassword");
    if ((smtpPassword == null) || (smtpPassword.length() <= 0)) {
        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                "JNDI lookup for CFAsterisk24SmtpPassword");
    }

    Session emailSess = Session.getInstance(props, new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(smtpUsername, smtpPassword);
        }
    });

    String thisURI = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
            + request.getRequestURI().toString();
    int lastSlash = thisURI.lastIndexOf('/');
    String baseURI = thisURI.substring(0, lastSlash);
    UUID resetUUID = resetUser.getOptionalPasswordResetUuid();

    String msgBody = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n" + "<HTML>\n" + "<BODY>\n"
            + "<p>\n" + "You requested a password reset for " + resetUser.getRequiredEMailAddress()
            + " used for accessing " + clusterDescription + ".\n" + "<p>"
            + "Please click on the following link to reset your password:<br>\n" + "<A HRef=\"" + baseURI
            + "/CFAsteriskSMWarResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "\">" + baseURI
            + "/CFAsteriskSMWarResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "</A>\n" + "<p>"
            + "Or click on the following link to cancel the reset request:<br>\n" + "<A HRef=\"" + baseURI
            + "/CFAsteriskSMWarCancelResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "\">" + baseURI
            + "/CFAsteriskSMWarCancelResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "</A>\n"
            + "</BODY>\n" + "</HTML>\n";

    MimeMessage msg = new MimeMessage(emailSess);
    msg.setFrom(new InternetAddress(smtpEmailFrom));
    InternetAddress mailTo[] = InternetAddress.parse(resetUser.getRequiredEMailAddress(), false);
    msg.setRecipient(Message.RecipientType.TO, mailTo[0]);
    msg.setSubject("You requested a password reset for your account with " + clusterDescription + "?");
    msg.setContent(msgBody, "text/html");
    msg.setSentDate(new Date());
    msg.saveChanges();

    Transport.send(msg);
}