]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
Optional smtp auth attribute for ssl protocols (default: TLS 1.2). (#277)
authorMark Cooper <mark.cooper@lyrasis.org>
Fri, 22 Oct 2021 18:07:43 +0000 (11:07 -0700)
committerGitHub <noreply@github.com>
Fri, 22 Oct 2021 18:07:43 +0000 (14:07 -0400)
services/common/src/main/java/org/collectionspace/services/common/EmailUtil.java
services/config/src/main/resources/tenant.xsd

index 29ecabdf0d49295098364e55b778694b17b18a4f..7ad5de4ae508338489212a5c124a53d9c774202f 100644 (file)
@@ -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;
        }
-               
+
 }
index 0cd5bf5ff1248ed11e712742efd74c3b4be95035..586ea2cabe0caa639aa76e1644ee3f5b63d9440f 100644 (file)
                        <xs:element name="password" type="xs:string" minOccurs="1" maxOccurs="1"/>
                </xs:sequence>
                <xs:attribute name="enabled" type="xs:boolean" use="optional" default="false"/>
+               <xs:attribute name="protocols" type="xs:string" use="optional" default="TLSv1.2"/>
        </xs:complexType>
 
        <xs:complexType name="PasswordResetConfig">