我到处搜索,但找不到答案:当我尝试使用无效的登录用户名/密码登录任何 XMPP 服务器(我的 Openfire 设置、talk.google.com、jabber.org)时,抛出 XMPPException(消息:SASL 身份验证 PLAIN 失败:未授权)不包含任何 XMPPError 或 StreamError(均为空)。
最奇怪的是,使用与我相同的 Smack 版本 - v3.2.2 的 Spark Java XMPP 客户端(我什至用 Spark 交换了我的)可以使用 getXMPPError 处理无效的登录凭据,它返回实际的 XMPP错误对象,不为空!这怎么可能呢?
我浏览了 Spark 源代码,但我什么也想不通。我尝试了无数的变化——各种 ConnectionConfiguration 设置,连接到其他 Jabber/XMPP 服务器,没有任何帮助。我什至用 Wireshark 嗅探了服务器响应,它们对于 Spark 和我的应用程序是相同的。
我最终解析了该死的返回字符串“SASL authentication PLAIN failed: not-authorized”......
有人可以在这里阐明一下吗?