2012-05-08 60 views
2

我正在處理關於IM的一些事情。它涉及XMPP。 我在Android上開發應用程序,所以我使用了aSmack。 我要登錄谷歌對話,和這裏(鏈接如下)Smack中的SASL和SASL PLAIN有什麼區別?

https://developers.google.com/talk/open_communications

稱,谷歌談論只支持SASL平原。 但是當我在網上搜索,很多人說,谷歌的談話不支持SASL 所以需要這樣的代碼:

connectionConfig.setSASLAuthenticationEnabled(false); 

我感到困惑;誰能告訴我SASL和SASL PLAIN之間的區別?

回答

6

SASL is a framework and protocol for authentication這意味着要嵌入到其他協議,以便可以重用庫。

SASL PLAIN is a specific authentication mechanism您可以通過SASL使用。

有一堆other SASL mechanisms定義與整個協議,服務器和客戶端的各種程度的支持。 XMPP中主要使用的是PLAIN,DIGEST-MD5(the old XMPP RFC中的強制性)和SCRAM-SHA-1mandatorythe new XMPP RFC)。

不管怎麼說,回答你的問題:

如果禁用SASL,然後啪可能會使用什麼所謂legacy authentication。如果您沒有使用TLS加密連接,這可能會解決問題,因爲許多服務器不允許PLAIN通過未加密的連接。

+0

千謝謝您的幫助,它可以幫助我很多。如您所說,如果我設置了TLS模式是必需的,是否意味着我不需要禁用SASL代碼? –

+0

良好的標準XMPP流將首先使用TLS進行加密,然後使用SASL進行身份驗證。 – MattJ