1

どこでも検索しましたが、答えが見つかりませんでした: 無効なログイン ユーザー名/パスワードを使用して XMPP サーバー (私の Openfire セットアップ、talk.google.com、jabber.org) にログインしようとすると、スローされた XMPPException ( message: SASL authentication PLAIN failed: not-authorized) には、XMPPError または StreamError が含まれていません (どちらも null です)。

最も興味深いのは、同じ Smack バージョン (v3.2.2) を使用する Spark Java XMPP クライアント (私は Spark と交換したこともある) が、実際の XMPP を返す getXMPPError を使用して無効なログイン資格情報を処理できることです。エラー オブジェクトです。null ではありません。それはどのように可能ですか?

Spark のソースを調べましたが、何もわかりませんでした。無数のバリエーションを試しました - さまざまな ConnectionConfiguration 設定、他の Jabber/XMPP サーバーへの接続、何も役に立ちませんでした。Wireshark でサーバーの応答を盗聴したところ、Spark と私のアプリケーションで同じ結果が得られました。

いまいましい戻り文字列「SASL authentication PLAIN failed: not-authorized」を解析することになりました...

ここで誰か光を当てることができますか?

4

2 に答える 2

0

これが役立つかどうかはわかりませんが、次のようなものを試してください

try {
    XMPPConnection connection = new XMPPCOnnection....
    connection.connect();
    .
    .
    .
} catch (Throwable t) {
      t.printStackTrace();
}

その理由は、間違った例外を探している可能性があるためです。Throwable をキャッチすることで、ほとんどすべてを探すことになるため、このコードは問題を解決しませんが、軌道に乗るか、少なくともいくつかのヒントを提供する可能性があります。

于 2012-08-22T23:43:11.777 に答える