<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專區

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


    網站導航:
     
    主站蜘蛛池模板: 中文字幕无码免费久久| 亚洲天堂免费在线视频| 蜜臀AV免费一区二区三区| 亚洲日韩一页精品发布| 中文字幕无码免费久久9一区9| 亚洲精品麻豆av| 黄 色一级 成 人网站免费| 亚洲精品无码专区2| 两个人日本WWW免费版| 国产av无码专区亚洲av桃花庵| 免费精品一区二区三区第35| 亚洲国产精品久久久久婷婷软件| 久久国产高潮流白浆免费观看| 亚洲国产高清在线精品一区 | 亚洲成人激情小说| 成年午夜视频免费观看视频| 亚洲AV无码成人精品区狼人影院| 可以免费观看一级毛片黄a| 中文字幕免费在线看| 亚洲第一永久在线观看| 四虎永久在线精品免费网址| 女bbbbxxxx另类亚洲| 国产亚洲一区二区在线观看| 99久久99热精品免费观看国产| 国产午夜亚洲精品| 亚洲男人第一无码aⅴ网站| 久久久久久成人毛片免费看| www.亚洲日本| 久久亚洲欧洲国产综合| 91精品视频在线免费观看| 亚洲精品美女久久久久久久| 亚洲婷婷国产精品电影人久久 | 84pao强力永久免费高清| 最新国产精品亚洲| 国产精品亚洲不卡一区二区三区| 99久久精品免费视频| 精品韩国亚洲av无码不卡区| 亚洲国产精品第一区二区| 在线观着免费观看国产黄| 国产猛男猛女超爽免费视频| 亚洲一卡2卡3卡4卡5卡6卡 |