문제

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

도움이 되었습니까?

해결책

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

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

not

connection.login("user@example.org", "password");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top