mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-11-29 18:58:05 +08:00
cherry-pick [Fix][Alert] Fix when auth is false and user || pwd null can't send email excection #13761
This commit is contained in:
parent
cdb70824c4
commit
eea397a0dd
@ -22,6 +22,7 @@ import static java.util.Objects.requireNonNull;
|
||||
import org.apache.dolphinscheduler.alert.api.AlertConstants;
|
||||
import org.apache.dolphinscheduler.alert.api.AlertResult;
|
||||
import org.apache.dolphinscheduler.alert.api.ShowType;
|
||||
import org.apache.dolphinscheduler.common.constants.Constants;
|
||||
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;
|
||||
@ -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,20 +29,21 @@ import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@Ignore("The test case makes no sense")
|
||||
@Disabled("The test case makes no sense")
|
||||
public class MailUtilsTest {
|
||||
private static final Logger logger = LoggerFactory.getLogger(MailUtilsTest.class);
|
||||
static MailSender mailSender;
|
||||
private static Map<String, String> emailConfig = new HashMap<>();
|
||||
private static AlertTemplate alertTemplate;
|
||||
|
||||
@BeforeClass
|
||||
@BeforeAll
|
||||
public static void initEmailConfig() {
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_PROTOCOL, "smtp");
|
||||
emailConfig.put(MailParamsConstants.NAME_MAIL_SMTP_HOST, "xxx.xxx.com");
|
||||
@ -80,6 +81,35 @@ public class MailUtilsTest {
|
||||
content);
|
||||
}
|
||||
|
||||
@Test
|
||||
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) {
|
||||
Assertions.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
Block a user