2012-05-08 1 views
2

Я работаю с чем-то об IM. Он включает XMPP. Я разрабатываю приложение на Android, поэтому я использовал aSmack. Я хочу войти в Google Talk, и здесь (в связи ниже)В чем разница между SASL и SASL PLAIN в Smack?

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

говорит Google Talk поддерживает только SASL PLAIN. , но когда я искать в интернете, многие люди, говорит Google Talk не поддерживает 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-1 (mandatory в the new XMPP RFC).

В любом случае, чтобы ответить на ваш вопрос:

Если отключить SASL, то Смак вероятно, будет использовать то, что называется legacy authentication. Возможно, это может исправить ситуацию, если вы не шифруете свое соединение с TLS, так как многие серверы не разрешают PLAIN по незашифрованным соединениям.

+0

тысяча благодарю за помощь, это мне очень помогает. Вы говорите, что если я задаю режим TLS, ТРЕБУЕТСЯ, означает ли это, что мне не нужен отключенный код SASL? –

+0

Хороший стандартный поток XMPP будет сначала шифроваться с использованием TLS, а затем аутентифицироваться с использованием SASL. – MattJ