From 44d6308fdceeebc42724ee4e6ac473b3a1005508 Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Tue, 16 Nov 2010 16:16:38 +0000
Subject: [PATCH] [LMS-1890] YeastX: cannot send confirmation email after
 unarchiving fix: make the MailClient not request SMTP authentication if it
 obviously hasn't got valid credentials: deal with the typical Spring
 injection artefacts like an empty value "" or something like "${propval}"
 gracefully

SVN: 18746
---
 .../java/ch/systemsx/cisd/common/mail/MailClient.java  |  3 ++-
 .../cisd/common/mail/MailClientParameters.java         | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/common/source/java/ch/systemsx/cisd/common/mail/MailClient.java b/common/source/java/ch/systemsx/cisd/common/mail/MailClient.java
index 255f81df3f2..3a28e070840 100644
--- a/common/source/java/ch/systemsx/cisd/common/mail/MailClient.java
+++ b/common/source/java/ch/systemsx/cisd/common/mail/MailClient.java
@@ -40,6 +40,7 @@ import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 
 import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
@@ -135,7 +136,7 @@ public final class MailClient extends Authenticator implements IMailClient
         {
             properties.put(JavaMailProperties.MAIL_SMTP_HOST, smtpHost);
         }
-        if (smtpPassword != null && smtpUsername != null)
+        if (StringUtils.isNotBlank(smtpPassword) && StringUtils.isNotBlank(smtpUsername))
         {
             properties.put(JavaMailProperties.MAIL_SMTP_AUTH, Boolean.TRUE.toString());
         }
diff --git a/common/source/java/ch/systemsx/cisd/common/mail/MailClientParameters.java b/common/source/java/ch/systemsx/cisd/common/mail/MailClientParameters.java
index b7d155c68ca..231c5f80800 100644
--- a/common/source/java/ch/systemsx/cisd/common/mail/MailClientParameters.java
+++ b/common/source/java/ch/systemsx/cisd/common/mail/MailClientParameters.java
@@ -52,6 +52,11 @@ public class MailClientParameters implements Serializable
 
     public final void setSmtpUser(String smtpUser)
     {
+        // Check for Spring injection artefact
+        if (smtpUser != null && smtpUser.startsWith("${"))
+        {
+            this.smtpUser = null;
+        }
         this.smtpUser = smtpUser;
     }
 
@@ -62,6 +67,11 @@ public class MailClientParameters implements Serializable
 
     public final void setSmtpPassword(String smtpPassword)
     {
+        // Check for Spring injection artefact
+        if (smtpPassword != null && smtpPassword.startsWith("${"))
+        {
+            this.smtpPassword = null;
+        }
         this.smtpPassword = smtpPassword;
     }
 
-- 
GitLab