2014-10-31 15 views
6

Dopo aver effettuato correttamente la connessione al server, ad es. dopo un callback di successo perErrore di autenticazione non riuscito - XMPPFramework - non autorizzato

- (void) xmppStreamDidConnect:(XMPPStream *)sender

a volte ottengo un errore di autenticazione, vale a dire. il seguente callback viene chiamata:

  • (void) xmppStream: (XMPPStream *) mittente didNotAuthenticate: errore (NSXMLElement *)

Il NSXMLElement assomiglia a questo:

<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/><text>The response provided by the client doesn't match the one we calculated.</text></failure>

Come ho detto, ottengo questo ogni tanto. Ho rintracciato il problema e ho provato diverse cose finora. cose che è mi hanno esaminato e posso confermare finora:

  • Il nome utente e la password sono al 100% corrette
  • sto usando lo SCRAM-SHA-1 meccanismo di autenticazione (XMPPSCRAMSHA1Authentication)
  • mio il server supporta anche il meccanismo PLAIN e non riesce anche con quello (XMPPPlainAuthentication)
  • Se provo a forzare una disconnessione quando ottengo questo errore ([xmppStream disconnect]) e quindi nel callback xmppStreamDidDisconnect provo a riaprire il flusso ([xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]) quindi arrivo in un ciclo infinito b perché l'autenticazione fallisce in modo coerente

Ora, ho esaminato ulteriormente questo aspetto e quando si utilizza il meccanismo SCRAM-SHA-1 sembra che non riesca nella seconda sfida. Il client invia qualcosa (apparentemente valido) al server ma il server non gli piace e lancia l'errore not-authorized.

Pensieri a nessuno?

+0

hai trovato qualsiasi soluzione che sto affrontando lo stesso problema. – Bittoo

risposta

0

Controllare nome utente e password. Se stai trasmettendo nome utente e password errati per l'autenticazione/accesso, questo metodo didNotAuthenticate si chiamerà