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

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲区不卡顿区在线观看| 国产免费黄色大片| 亚洲国产精久久久久久久| 亚洲毛片av日韩av无码| 美女被免费视频网站a| 免费日本一区二区| 亚洲精品美女久久777777| 亚洲人成网亚洲欧洲无码| 免费一区二区无码东京热| 日本免费一二区在线电影| 久久夜色精品国产噜噜亚洲a| 免费专区丝袜脚调教视频| 亚洲精品无码av天堂| 久香草视频在线观看免费| 久久亚洲欧洲国产综合| 你懂的在线免费观看| 亚洲五月六月丁香激情| 成人免费黄色网址| 亚洲精品宾馆在线精品酒店| 免费一级特黄特色大片在线观看| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 日本视频免费在线| 美女无遮挡免费视频网站| 国产亚洲精品影视在线产品| 一个人看的www免费视频在线观看| 亚洲avav天堂av在线不卡| 精品久久久久成人码免费动漫| 亚洲熟妇av午夜无码不卡| 亚洲成AV人网址| 午夜在线亚洲男人午在线| 中文字幕亚洲无线码a| 免费看男女下面日出水来| 亚洲av日韩精品久久久久久a| 狠狠色婷婷狠狠狠亚洲综合| 人妻无码久久一区二区三区免费 | 国产成人精品免费视频大全麻豆| 久久国产亚洲精品| 亚洲综合精品香蕉久久网| 噼里啪啦电影在线观看免费高清| 色噜噜噜噜亚洲第一| 亚洲国产成人精品不卡青青草原|