Trying to log into XMPP server using Smack results in SASL "not authorized"

Shishigami picture Shishigami · Oct 14, 2013 · Viewed 12.7k times · Source

I'm trying to use Smack to log into a XMPP server. When trying to login I get the following Error :

SASL authentication PLAIN failed: not-authorized

I have been able to connect and log into the server using PSI-IM with the same credentials.

This is what I currently have :

    System.setProperty("smack.debugEnabled", "true");
    XMPPConnection.DEBUG_ENABLED = true;

    SASLAuthentication.supportSASLMechanism("PLAIN", 0);

    ConnectionConfiguration configuration = new ConnectionConfiguration("chat.bla.com", 5223);
    configuration.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
    configuration.setSocketFactory(new DummySSLSocketFactory());
    configuration.setSASLAuthenticationEnabled(true);
    configuration.setDebuggerEnabled(true);
    configuration.setServiceName("bla.net");

    Connection connection = new XMPPConnection(configuration);

    try {
        connection.connect();
        connection.login("[email protected]", "blablabla");
    } catch (XMPPException e) {
        e.printStackTrace();
    }

This is the DummySSLSocketFactory I'm using : http://svn.igniterealtime.org/svn/repos/spark/tags/spark_2_5_3_s/src/java/org/jivesoftware/spark/util/DummySSLSocketFactory.java

I'm thinking that the problem is that I need to select 'Legacy SSL' when connecting through PSI, I'm not sure howto do that in Java though.

Thanks for any help

Answer

Flow picture Flow · Oct 15, 2013

Try login() without the domain part in the username:

connection.login("user", "password");

not

connection.login("[email protected]", "password");