[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.exception.AlertEmailException;
|
||||||
import org.apache.dolphinscheduler.plugin.alert.email.template.AlertTemplate;
|
import org.apache.dolphinscheduler.plugin.alert.email.template.AlertTemplate;
|
||||||
import org.apache.dolphinscheduler.plugin.alert.email.template.DefaultHTMLTemplate;
|
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.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
|
@ -104,12 +105,14 @@ public final class MailSender {
|
||||||
requireNonNull(mailSenderEmail, MailParamsConstants.NAME_MAIL_SENDER + mustNotNull);
|
requireNonNull(mailSenderEmail, MailParamsConstants.NAME_MAIL_SENDER + mustNotNull);
|
||||||
|
|
||||||
enableSmtpAuth = config.get(MailParamsConstants.NAME_MAIL_SMTP_AUTH);
|
enableSmtpAuth = config.get(MailParamsConstants.NAME_MAIL_SMTP_AUTH);
|
||||||
|
|
||||||
mailUser = config.get(MailParamsConstants.NAME_MAIL_USER);
|
mailUser = config.get(MailParamsConstants.NAME_MAIL_USER);
|
||||||
requireNonNull(mailUser, MailParamsConstants.NAME_MAIL_USER + mustNotNull);
|
|
||||||
|
|
||||||
mailPasswd = config.get(MailParamsConstants.NAME_MAIL_PASSWD);
|
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);
|
mailUseStartTLS = config.get(MailParamsConstants.NAME_MAIL_SMTP_STARTTLS_ENABLE);
|
||||||
requireNonNull(mailUseStartTLS, MailParamsConstants.NAME_MAIL_SMTP_STARTTLS_ENABLE + mustNotNull);
|
requireNonNull(mailUseStartTLS, MailParamsConstants.NAME_MAIL_SMTP_STARTTLS_ENABLE + mustNotNull);
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
@ -78,6 +79,35 @@ public class MailUtilsTest {
|
||||||
content);
|
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() {
|
public String list2String() {
|
||||||
|
|
||||||
LinkedHashMap<String, Object> map1 = new LinkedHashMap<>();
|
LinkedHashMap<String, Object> map1 = new LinkedHashMap<>();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue