qxmpp登录openfire时的“Not Authorized”问题
来源:互联网 发布:淘宝月销量可以造假吗 编辑:程序博客网 时间:2024/05/22 00:37
问题
解决
1、对Java不熟,想请同事调一下spark是如何登录成功的,因为种种原因未成
2、短时间内没在openfire日志里找到spark登录时的JID
3、仔细分析qxmpp的底层代码,发现了socket连接和收发数据的地方,看到了最基本的xmpp通信xml
4、和同事讨论,同事建议修改本地host文件,将hostname映射成IP。当时没有接受这个建议,觉得不是最终解决办法,因为不可能去用户机器上修改host。(但事后看,这种做法是对调试有帮助的)
5、对比同一程序登录本地openfire和linux上的openfire过程中与服务器的xml。前面还能看懂,后面的就多是类似加密过的字符串,看了也没用。不过这个调研中最有价值的收获就是发现当和服务器建立socket连接后,服务器会返回hostname。
6、用wireshark分别收集spark登录linux上的openfire和自己程序登录同一服务器的数据包。同样,前面还能看,后面看不懂
7、无奈之下,用“Not Authorized openfire”之类的关键字搜索,发现了一些类似问题的资料
8、开始没看懂,后来忽然意识到,登录openfire肯定要用“username@hostname/resource”,而在此之前,一定要保证和服务器建立socket连接。借这种思路,先在qxmpp源代码里硬编码建立socket连接时所用的host为linux机器的ip,而登录还是用“username@hostname/resource”,成功。
备注
1、这种改法是权宜之计,感觉真正的做法应该利用建立连接时获得的hostname组成JID。
最近在一个linux机器上建了一个openfire,hostname为“A”,用spark的时候,在server处填写对方IP可以登录
但发现用qxmpp以“username@IP/resource”为JID登录时返回“Not Authorized”,但如果用“username@hostname/resource”为JID,则返回“socket error”
之前用“username@hostname/resource”为JID访问本地windows上架设的openfire没问题。
解决
1、对Java不熟,想请同事调一下spark是如何登录成功的,因为种种原因未成
2、短时间内没在openfire日志里找到spark登录时的JID
3、仔细分析qxmpp的底层代码,发现了socket连接和收发数据的地方,看到了最基本的xmpp通信xml
4、和同事讨论,同事建议修改本地host文件,将hostname映射成IP。当时没有接受这个建议,觉得不是最终解决办法,因为不可能去用户机器上修改host。(但事后看,这种做法是对调试有帮助的)
5、对比同一程序登录本地openfire和linux上的openfire过程中与服务器的xml。前面还能看懂,后面的就多是类似加密过的字符串,看了也没用。不过这个调研中最有价值的收获就是发现当和服务器建立socket连接后,服务器会返回hostname。
6、用wireshark分别收集spark登录linux上的openfire和自己程序登录同一服务器的数据包。同样,前面还能看,后面看不懂
7、无奈之下,用“Not Authorized openfire”之类的关键字搜索,发现了一些类似问题的资料
8、开始没看懂,后来忽然意识到,登录openfire肯定要用“username@hostname/resource”,而在此之前,一定要保证和服务器建立socket连接。借这种思路,先在qxmpp源代码里硬编码建立socket连接时所用的host为linux机器的ip,而登录还是用“username@hostname/resource”,成功。
备注
1、这种改法是权宜之计,感觉真正的做法应该利用建立连接时获得的hostname组成JID。
- qxmpp登录openfire时的“Not Authorized”问题
- openfire登录出现“SASLError using DIGEST-MD5: not-authorized”异常的解决
- Openfire server.Details: Authentication error: Not authorized
- qxmpp 0.76发送文件的一个问题
- 单点登录(八)-----遇到问题-----Application Not Authorized to Use CAS
- 登录tomcat 时出现错误:tomcat You are not authorized to view this page
- 关于openfire并发登录的问题
- 解决openfire无法登录的问题
- openfire与agsxmpp、qxmpp、psi等非spark的xmpp客户端通信
- QXMPP
- CICS启动问题之DBDCCICS DFHSIP IS NOT APF-AUTHORIZED
- 2035 MQRC NOT AUTHORIZED
- github not authorized eclipse
- github not authorized eclipse
- openfire+spark 登录不上问题
- openfire服务器重新安装时注意的问题
- android基于openfire+spark+amack 即时聊天--------<2>登录遇到的问题和重要类解析
- Libjingle XMPP Login登录返回<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/>异常分析
- update global_name为空的恢复
- android 中强制关掉指定的应用
- 关于 const 的一个小问题
- 学习
- 矩阵代数_part2
- qxmpp登录openfire时的“Not Authorized”问题
- 曾遇到的算法面试题
- adb操作命令
- 深入浅出FPGA-11-梦回大唐
- watir文件路径相关
- 为什么要有环回路由(zz)
- 【hdu 1728】 逃离迷宫 广搜(最少拐弯次数)
- 我的java日记(多线程)
- 笔记二