From: Mark Cooper Date: Fri, 22 Oct 2021 18:07:43 +0000 (-0700) Subject: Optional smtp auth attribute for ssl protocols (default: TLS 1.2). (#277) X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=2ed49d9bb275abd215d940563cae7ccc07a220ab;p=tmp%2Fjakarta-migration.git Optional smtp auth attribute for ssl protocols (default: TLS 1.2). (#277) --- diff --git a/services/common/src/main/java/org/collectionspace/services/common/EmailUtil.java b/services/common/src/main/java/org/collectionspace/services/common/EmailUtil.java index 29ecabdf0..7ad5de4ae 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/EmailUtil.java +++ b/services/common/src/main/java/org/collectionspace/services/common/EmailUtil.java @@ -21,29 +21,25 @@ public class EmailUtil { private static final String MAIL_SMTP_HOST = "mail.smtp.host"; private static final String MAIL_SMTP_PORT = "mail.smtp.port"; private static final String MAIL_SMTP_TLS = "mail.smtp.starttls.enable"; - + private static final String MAIL_SMTP_SSL_PROTOCOLS = "mail.smtp.ssl.protocols"; + private static final String MAIL_FROM = "mail.from"; private static final String MAIL_DEBUG = "mail.debug"; - public static void main(String [] args) { + public static void main(String [] args) { String username = "collectionspace.lyrasis@gmail.com"; String password = "CSpace11-GG"; String recipient = "remillet@gmail.com"; Properties props = new Properties(); -// props.setProperty("mail.smtp.host", "smtp.gmail.com"); -// props.setProperty("mail.from", "collectionspace.lyrasis@gmail.com"); -// props.setProperty("mail.smtp.starttls.enable", "true"); -// props.setProperty("mail.smtp.port", "587"); -// props.setProperty("mail.debug", "true"); - props.setProperty(MAIL_SMTP_HOST, "smtp.gmail.com"); props.setProperty(MAIL_SMTP_PORT, "587"); props.setProperty(MAIL_SMTP_TLS, "true"); props.setProperty(MAIL_FROM, "collectionspace.lyrasis@gmail.com"); props.setProperty(MAIL_DEBUG, "true"); - + props.setProperty(MAIL_SMTP_SSL_PROTOCOLS, "TLSv1.2"); + Session session = Session.getInstance(props, null); MimeMessage msg = new MimeMessage(session); @@ -53,9 +49,9 @@ public class EmailUtil { msg.setSubject("JavaMail hello world example"); msg.setSentDate(new Date()); msg.setText("Hello, world!\n"); - + Transport transport = session.getTransport("smtp"); - + transport.connect(username, password); transport.sendMessage(msg, msg.getAllRecipients()); transport.close(); @@ -69,17 +65,17 @@ public class EmailUtil { */ public static String sendMessage(EmailConfig emailConfig, String recipients, String message) { String result = null; - + Properties props = new Properties(); props.setProperty(MAIL_SMTP_HOST, emailConfig.getSmtpConfig().getHost()); props.setProperty(MAIL_SMTP_PORT, emailConfig.getSmtpConfig().getPort().toString()); - props.setProperty(MAIL_SMTP_TLS, - new Boolean(emailConfig.getSmtpConfig().getSmtpAuth().isEnabled()).toString()); - + props.setProperty(MAIL_SMTP_TLS, + new Boolean(emailConfig.getSmtpConfig().getSmtpAuth().isEnabled()).toString()); + props.setProperty(MAIL_FROM, emailConfig.getFrom()); props.setProperty(MAIL_DEBUG, new Boolean(emailConfig.getSmtpConfig().isDebug()).toString()); - + Session session = Session.getInstance(props, null); MimeMessage msg = new MimeMessage(session); @@ -89,24 +85,26 @@ public class EmailUtil { msg.setSubject(emailConfig.getPasswordResetConfig().getSubject()); msg.setSentDate(new Date()); msg.setText(message); - + Transport transport = session.getTransport("smtp"); if (emailConfig.getSmtpConfig().getSmtpAuth().isEnabled()) { String username = emailConfig.getSmtpConfig().getSmtpAuth().getUsername(); String password = emailConfig.getSmtpConfig().getSmtpAuth().getPassword(); + props.setProperty(MAIL_SMTP_SSL_PROTOCOLS, + emailConfig.getSmtpConfig().getSmtpAuth().getProtocols()); transport.connect(username, password); } else { transport.connect(); } - + transport.sendMessage(msg, msg.getAllRecipients()); transport.close(); } catch (MessagingException e) { logger.error(e.getMessage(), e); result = e.getMessage(); } - + return result; } - + } diff --git a/services/config/src/main/resources/tenant.xsd b/services/config/src/main/resources/tenant.xsd index 0cd5bf5ff..586ea2cab 100644 --- a/services/config/src/main/resources/tenant.xsd +++ b/services/config/src/main/resources/tenant.xsd @@ -152,6 +152,7 @@ +