A serious bug in POP3AuthProvider prevents authentification without specifieing a full jid as username.
Code starting at line 120:
if (username.contains("@")) {
// Check that the specified domain matches the server’s domain
int index = username.indexOf("@");
String domain = username.substring(index + 1);
if (domain.equals(XMPPServer.getInstance().getServerInfo().getName())) {
username = username.substring(0, index);
}
} else {
// Unknown domain. Return authentication failed.
throw new UnauthorizedException();
}
This else clause is attended to the wrong if! Code should look like:
if (username.contains("@")) {
// Check that the specified domain matches the server’s domain
int index = username.indexOf("@");
String domain = username.substring(index + 1);
if (domain.equals(XMPPServer.getInstance().getServerInfo().getName())) {
username = username.substring(0, index);
}else {
// Unknown domain. Return authentication failed.
throw new UnauthorizedException();
}
}