Add support for SMTP AUTH LOGIN to AuthSMTPClient
AuthSMTPClient only supports CRAM-SHA1, CRAM-MD5, and PLAIN methods of authentication. This change adds support for LOGIN, which is another common SMTP authentication mechanism. Change-Id: Ia03b74c7d121e00a50612e641968ca9ccfb3b5da Signed-off-by: Bob Foerster <robert@erafx.com>
This commit is contained in:
parent
0ff5ff0112
commit
a1b2d459a9
|
@ -103,10 +103,12 @@ public class AuthSMTPClient extends SMTPClient {
|
||||||
if (types.contains("CRAM-MD5")) {
|
if (types.contains("CRAM-MD5")) {
|
||||||
return authCram(smtpUser, smtpPass, "MD5");
|
return authCram(smtpUser, smtpPass, "MD5");
|
||||||
}
|
}
|
||||||
|
if (types.contains("LOGIN")) {
|
||||||
|
return authLogin(smtpUser, smtpPass);
|
||||||
|
}
|
||||||
if (types.contains("PLAIN")) {
|
if (types.contains("PLAIN")) {
|
||||||
return authPlain(smtpUser, smtpPass);
|
return authPlain(smtpUser, smtpPass);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new IOException("Unsupported AUTH: " + authTypes);
|
throw new IOException("Unsupported AUTH: " + authTypes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,6 +137,21 @@ public class AuthSMTPClient extends SMTPClient {
|
||||||
return SMTPReply.isPositiveCompletion(sendCommand(cmd));
|
return SMTPReply.isPositiveCompletion(sendCommand(cmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean authLogin(String smtpUser, String smtpPass) throws UnsupportedEncodingException,
|
||||||
|
IOException {
|
||||||
|
if (sendCommand("AUTH", "LOGIN") != 334) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
String cmd = encodeBase64(smtpUser.getBytes(UTF_8));
|
||||||
|
if(sendCommand(cmd) != 334) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd = encodeBase64(smtpPass.getBytes(UTF_8));
|
||||||
|
return SMTPReply.isPositiveCompletion(sendCommand(cmd));
|
||||||
|
}
|
||||||
|
|
||||||
private static final char[] hexchar =
|
private static final char[] hexchar =
|
||||||
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
|
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue