diff --git a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java index 3855b0995..d446b78b3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -532,7 +532,8 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { @Override public final boolean isAnonymous() { - return config.getUsername() == null && usedUsername == null; + return config.getUsername() == null && usedUsername == null + && !config.allowNullOrEmptyUsername; } private String serviceName; diff --git a/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLExternalMechanism.java b/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLExternalMechanism.java index 1bfd92494..d8997789b 100644 --- a/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLExternalMechanism.java +++ b/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLExternalMechanism.java @@ -34,7 +34,8 @@ public class SASLExternalMechanism extends SASLMechanism { @Override protected void authenticateInternal(CallbackHandler cbh) throws SmackException { - throw new UnsupportedOperationException("CallbackHandler not (yet) supported"); + // Do nothing. Auth will be done external to Smack and which will receive the localpart + // after the resource binding } @Override