2013-10-14 29 views
9

Sto provando a utilizzare Smack per accedere a un server XMPP. Quando si cerca di accedere ottengo il seguente errore:Tentativo di accedere al server XMPP utilizzando i risultati di Smack in SASL "non autorizzato"

SASL autenticazione PLAIN non riuscita: non autorizzato

sono stato in grado di connettersi e accedere al server utilizzando PSI-IM con le stesse credenziali.

Questo è quello che ho attualmente:

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(); 
    } 

Questa è la DummySSLSocketFactory che sto usando: http://svn.igniterealtime.org/svn/repos/spark/tags/spark_2_5_3_s/src/java/org/jivesoftware/spark/util/DummySSLSocketFactory.java

Sto pensando che il problema è che ho bisogno di selezionare 'Legacy SSL', quando connettendosi tramite PSI, non sono sicuro di come farlo in Java però.

Grazie per qualsiasi aiuto

+2

Prova 'login()', senza la parte del dominio, vale a dire 'connection.login (" utente "," blablabla ");' – Flow

+0

Ugh, questo l'ha risolto. Grazie mille – Shishigami

+1

potrebbe essere a causa di nome utente o password errati. – Krishna

risposta

18

Prova login()senza la parte del dominio nel nome utente:

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

non

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

Hai salvato la mia giornata. : D – taynguyen