<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    贏在執行

    這個世界上只有兩樣東西愈分享愈多,那就是智慧與愛。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      17 Posts :: 11 Stories :: 13 Comments :: 0 Trackbacks

    XMPP 協議

    XMPP 協議是在www.jabber.org上公布的,是一種標準的即時通訊協議
    JEP-0078: Non-SASL Authentication
    ?
    SASLSimple Authentication and Security Layer 簡單的認證及加密層
    ?

    1、客戶端向服務器端發送XML
    <stream:stream to='shakespeare.lit'
    ???? xmlns='jabber:client'
    ?????????????? xmlns:stream='http://etherx.jabber.org/streams'>
    ?
    ?

    2、服務器返回消息
    <iq type='get' to='shakespeare.lit' id='auth1'>
    ?<query xmlns='jabber:iq:auth'/>
    </iq>
    注意中間的ID,這個ID是服務器端返回給客戶端的驗證信息,驗證信息一般是以該ID+用戶密碼通過SHA1(RFC3174)算法進行操作的。也就是說客戶端得到該ID和密碼經過SHA1算法加密后返回給服務器。
    ?
    ?

    3、客戶端想服務器提交請求獲取登錄需要驗證的字段
    <iq type='get' to='shakespeare.lit' id='auth1'>
    ?<query xmlns='jabber:iq:auth'/>
    </iq>
    ?
    ?

    4、服務器返回登錄需要驗證的字段
    <iq type='result' id='auth1'>
    ?<query xmlns='jabber:iq:auth'>
    ??? <username/>
    ??? <password/>
    ??? <digest/>?這個digest就是上面經過SHA1算法得出的結果字段
    ??? <resource/>
    ?</query>
    </iq>
    如果客戶端發送的字段包括了用戶名和IQ-GET的字段,服務器不應該返回錯誤消息(因為需要服務器判斷當前用戶名是否在使用),如果服務器不支持可插入的簡單認證及密碼模塊,那么必須返回一個<service-unavailable/>的錯誤;如果客戶端企圖使用SASL認證但是失敗,服務器必須返回<policy-violation/>錯誤信息
    在認證過程中,jabber:iq:auth命名、用戶名和資源是必須要求客戶端提供的,而服務器返回的XML流中也必須提供<username/><resource/>2個元素。
    ?
    ?

    5、客戶端提交字段內容進行驗證
    文本格式,非加密模式
    <iq type='set' id='auth2'>
    ?<query xmlns='jabber:iq:auth'>
    ??? <username>bill</username>
    ??? <password>Calli0pe</password>
    ??? <resource>globe</resource>
    ?</query>
    </iq>
    加密模式
    <iq type='set' id='auth2'>
    ?<query xmlns='jabber:iq:auth'>
    ??? <username>bill</username>
    ??? <digest>48fc78be9ec8f86d8ce1c39c320c97c21d62334d</digest>
    ??? <resource>globe</resource>
    ?</query>
    </iq>
    ?

    6、登錄結果
    成功
    <iq type='result' id='auth2'/>
    失敗認證失敗,可能是用戶名密碼不匹配或數字驗證錯誤
    <iq type='error' id='auth2'>
    ?<error code='401' type='auth'>
    ??? <not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
    ?</error>
    </iq>
    失敗資源沖突/錯誤
    <iq type='error' id='auth2'>
    ?<error code='409' type='cancel'>
    ??? <conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
    ?</error>
    </iq>
    失敗沒有提供需要驗證的字段
    <iq type='error' id='auth2'>
    ?<error code='406' type='modify'>
    ??? <not-acceptable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
    ?</error>
    </iq>
    ?
    ?
    ?
    其他的就沒什么重要的了,JEP-0078就到此了吧,剩余的重要工作就是如何配置SASL
    posted on 2006-12-31 12:54 飛雪(leo) 閱讀(3089) 評論(0)  編輯  收藏 所屬分類: XMPP專區

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日本视频免费在线| 亚洲成在人线aⅴ免费毛片| 四虎免费久久影院| 亚洲AV无码AV吞精久久| 毛片免费在线观看网站| 亚洲av无码成人影院一区| 国产一区视频在线免费观看 | baoyu116.永久免费视频| 亚洲熟妇少妇任你躁在线观看无码| 国产亚洲视频在线观看网址| 免费人成视频在线观看不卡| 九九九国产精品成人免费视频| 亚洲综合精品网站| 免费人成网站在线观看不卡| 久久亚洲sm情趣捆绑调教| 18禁止看的免费污网站| 亚洲熟妇成人精品一区| 国产又粗又猛又爽又黄的免费视频 | 在线a毛片免费视频观看| 久久亚洲精品11p| 亚洲午夜AV无码专区在线播放| 黄色视频在线免费观看| 精品日韩亚洲AV无码 | 综合一区自拍亚洲综合图区| 亚洲男人在线无码视频| 国产偷伦视频免费观看| 亚洲一区二区三区免费观看| 男女啪啪永久免费观看网站| 久久久久久久国产免费看| 亚洲激情电影在线| 免费人成在线观看播放国产| 三年片在线观看免费西瓜视频| 18gay台湾男同亚洲男同| 毛片免费观看的视频在线| 国产免费高清69式视频在线观看| 久久久久久亚洲Av无码精品专口| 成年人性生活免费视频| aa毛片免费全部播放完整| 亚洲免费观看在线视频| 全亚洲最新黄色特级网站 | 国产美女被遭强高潮免费网站|