Question

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("user@bla.net", "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

Was it helpful?

Solution

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

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

not

connection.login("user@example.org", "password");
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top