2013-01-02 59 views
0

使用SASL平原在XMPP爲什麼'xml-not-well-formed'?

從服務器(SASL協商)

<stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>SCRAM-SHA-1</mechanism></mechanisms><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/' ver='TQ2JFyRoSa70h2G1bpgjzuXb2sU='/><register xmlns='http://jabber.org/features/iq-register'/></stream:features> 

從客戶

<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>AGlnZW55YXIAMTIzNDU2Nzg=</auth> 

發送,其中在之間的糟糕的是base64編碼的「\ 0login \ 0password 「

從服務器響應

<stream:error><xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error> 

有什麼理由?謝謝。

回答

0

第一項在SCRAM-SHA-1項目之後有一個額外的關閉「機制」標記。

+0

不,它不是額外的。 「機制」出現在開頭。 – user180574

+0

是的,我現在明白了。其他的一切,開放和結束標籤都匹配,並引用所有匹配。除非這是針對特定的XML模式進行驗證,並且錯誤是錯誤的,否則我不確定還有什麼要檢查。 – Krazick

+0

我看到以前的帖子提到sasl plain甚至沒有被廣告支持。可能是這樣,我想。我也試過用戶@域\ 0user \ 0pwd,不工作。 – user180574

-1

正如其他人指出的:XML看起來很合適。我想你需要重新考慮你的問題。這不是「爲什麼XML格式不正確」,而是「爲什麼服務器回覆帶有xml-格式不正確,當它看到這個節?」

爲了回答這個問題,你(沒有其他人可以爲你做)應該調試服務器實現並找出造成它的原因。