<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) 閱讀(3095) 評論(0)  編輯  收藏 所屬分類: XMPP專區

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


    網站導航:
     
    主站蜘蛛池模板: 牛牛在线精品免费视频观看| 亚洲精品国产高清不卡在线| 色影音免费色资源| 精品一区二区三区免费毛片爱| 免费精品久久天干天干| a级毛片无码免费真人久久| 丝袜足液精子免费视频| 日韩精品无码免费专区午夜| 野花香在线视频免费观看大全| 免费萌白酱国产一区二区三区| 久久免费线看线看| 最近中文字幕mv免费高清在线 | 亚洲福利视频网址| 亚洲女人初试黑人巨高清| 亚洲一区二区三区在线| 亚洲第一男人天堂| 亚洲av无码专区亚洲av不卡| 爱爱帝国亚洲一区二区三区| 成年网站免费入口在线观看| 在线观看免费视频一区| 美丽姑娘免费观看在线观看中文版 | 国产成人A人亚洲精品无码| 久久亚洲精品中文字幕无码| 亚洲视频一区在线观看| 国产亚洲玖玖玖在线观看| 最新亚洲人成网站在线观看| eeuss影院www天堂免费| 国产在线一区二区综合免费视频 | 美女被免费网站视频在线| 国产精品成人69XXX免费视频| 女同免费毛片在线播放| 在线视频精品免费| 爽爽日本在线视频免费| 色噜噜AV亚洲色一区二区| 亚洲综合激情视频| 国产精品亚洲专区无码WEB| 一级特黄a大片免费| 在线免费观看你懂的| 麻豆国产入口在线观看免费| 亚洲精品成人区在线观看| 亚洲视频在线视频|