[Fix][Alert] Fix when auth is false and user || pwd null can't send email excection (#13761)
* fix send email error
* fix spotless
* fix-sonar
(cherry picked from commit 69e744961b)
This commit is contained in:
parent
3e8584f8b6
commit
0bde5473ac
|
|
@ -25,6 +25,7 @@ import org.apache.dolphinscheduler.alert.api.ShowType;
|
|||
import org.apache.dolphinscheduler.plugin.alert.email.exception.AlertEmailException;
|
||||
import org.apache.dolphinscheduler.plugin.alert.email.template.AlertTemplate;
|
||||
import org.apache.dolphinscheduler.plugin.alert.email.template.DefaultHTMLTemplate;
|
||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
|
@ -104,12 +105,14 @@ public final class MailSender {
|
|||
requireNonNull(mailSenderEmail, MailParamsConstants.NAME_MAIL_SENDER + mustNotNull);
|
||||
|
||||
enableSmtpAuth = config.get(MailParamsConstants.NAME_MAIL_SMTP_AUTH);
|
||||
|
||||
mailUser = config.get(MailParamsConstants.NAME_MAIL_USER);
|
||||
requireNonNull(mailUser, MailParamsConstants.NAME_MAIL_USER + mustNotNull);
|
||||
|
||||
mailPasswd = config.get(MailParamsConstants.NAME_MAIL_PASSWD);
|
||||
requireNonNull(mailPasswd, MailParamsConstants.NAME_MAIL_PASSWD + mustNotNull);
|
||||
|
||||
// Needs to check user && password only if enableSmtpAuth is true
|
||||
if (Constants.STRING_TRUE.equals(enableSmtpAuth)) {
|
||||
requireNonNull(mailUser, MailParamsConstants.NAME_MAIL_USER + mustNotNull);
|
||||
requireNonNull(mailPasswd, MailParamsConstants.NAME_MAIL_PASSWD + mustNotNull);
|
||||
}
|
||||
|
||||
mailUseStartTLS = config.get(MailParamsConstants.NAME_MAIL_SMTP_STARTTLS_ENABLE);
|
||||
requireNonNull(mailUseStartTLS, MailParamsConstants.NAME_MAIL_SMTP_STARTTLS_ENABLE + mustNotNull);
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import java.util.LinkedHashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
|
|
@ -78,6 +79,35 @@ public class MailUtilsTest {
|
|||
content);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAuthCheck() {
|
||||
String title = "Auth Exception";
|
||||
String content = list2String();
|
||||
|
||||
// test auth false and user && pwd null will pass
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_SMTP_AUTH, "false");
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_USER, null);
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_PASSWD, null);
|
||||
mailSender = new MailSender(emailConfig);
|
||||
mailSender.sendMails(title, content);
|
||||
|
||||
try {
|
||||
// test auth true and user null will throw exception
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_SMTP_AUTH, "true");
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_USER, null);
|
||||
mailSender = new MailSender(emailConfig);
|
||||
mailSender.sendMails(title, content);
|
||||
} catch (Exception e) {
|
||||
Assert.assertTrue(e.getMessage().contains(MailParamsConstants.NAME_MAIL_USER));
|
||||
}
|
||||
|
||||
// test auth true and user && pwd not null will pass
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_USER, "user");
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_PASSWD, "passwd");
|
||||
mailSender = new MailSender(emailConfig);
|
||||
mailSender.sendMails(title, content);
|
||||
}
|
||||
|
||||
public String list2String() {
|
||||
|
||||
LinkedHashMap<String, Object> map1 = new LinkedHashMap<>();
|
||||
|
|
|
|||
Loading…
Reference in New Issue