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

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

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

    posts - 11,  comments - 14,  trackbacks - 0
    Webservice交互經(jīng)常需要驗(yàn)證用戶,用戶名和密碼的傳遞采用SOAPHeader傳遞不失為一種好辦法。在Axis1中設(shè)置很簡單:
    客戶端:
    ((org.apache.axis.client.Call) call).addHeader(new SOAPHeaderElement("Authorization","username",username));
    ((org.apache.axis.client.Call) call).addHeader(new SOAPHeaderElement("Authorization","password",password));

    經(jīng)包裝后傳遞的內(nèi)容如下
    <soapenv:Header>
      <ns1:username
       soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
       soapenv:mustUnderstand="0" xsi:type="soapenc:string"
       xmlns:ns1="Authorization"
       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
       admin
      </ns1:username>
      <ns2:password
       soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
       soapenv:mustUnderstand="0" xsi:type="soapenc:string"
       xmlns:ns2="Authorization"
       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
       1
      </ns2:password>
     </soapenv:Header>

    服務(wù)端通過Handler取得用戶名和密碼進(jìn)行驗(yàn)證:
    username = (String) messageContext.getRequestMessage().getSOAPEnvelope()
    .getHeaderByName("Authorization","username").getValue();
    password = (String) messageContext.getRequestMessage().getSOAPEnvelope()
    .getHeaderByName("Authorization","password").getValue();

    如果覺得這樣不安全,可雙方約定一種加密解密規(guī)則,將用戶名和密碼加密后進(jìn)行傳輸。

    我曾試過使用如下方法,
    客戶端:
    ((org.apache.axis.client.Call) call).setUsername(username);
    ((org.apache.axis.client.Call) call).setPassword(password);

    包裝后傳遞內(nèi)容(多了最后一句:Authorization: Basic emphZG1pbjox。Axis將用戶名和密碼經(jīng)Base64加密后傳遞):
    POST /web/services/GenericServer HTTP/1.0
    Content-Type: text/xml; charset=utf-8
    Accept: application/soap+xml, application/dime, multipart/related, text/*
    User-Agent: Axis/1.4
    Host: localhost:8083
    Cache-Control: no-cache
    Pragma: no-cache
    SOAPAction: ""
    Content-Length: 807
    Authorization: Basic emphZG1pbjox

    服務(wù)端的Handle:
    username =messageContext.getUsername();
    password = messageContext.getPassword();

    這樣是沒問題,看起來更簡單。可惜調(diào)用部署在weblogic上的ws時(shí),會被weblogic攔截,必須在weblogic安全域中配置相應(yīng)的用戶才能通過驗(yàn)證,這不是我們所需要的,通常我們有自己的用戶管理機(jī)制,調(diào)用WS的用戶也作為系統(tǒng)中的一個(gè)用戶納入我們的管理,而不是跟weblogic安全域用戶綁在一起。

    posted on 2008-07-18 13:18 jinn 閱讀(5935) 評論(1)  編輯  收藏 所屬分類: Jave/Webservice

    FeedBack:
    # re: Axis中用戶名、密碼傳遞
    2008-07-19 10:10 | 高手
    http://www.HelloCTO.com
    成千視頻,上萬文章,技術(shù)資料與您共享``  回復(fù)  更多評論
      

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


    網(wǎng)站導(dǎo)航:
     
    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(3)

    隨筆分類

    文章分類

    相冊

    網(wǎng)站鏈接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成电影福利在线播放 | 亚洲中文字幕无码一去台湾| 成人A毛片免费观看网站| 大地资源二在线观看免费高清| 亚洲理论精品午夜电影| 国产精品亚洲不卡一区二区三区| 亚洲区小说区图片区QVOD| 青草青草视频2免费观看| 在线观看免费宅男视频| 亚洲精品无码日韩国产不卡?V| 疯狂做受xxxx高潮视频免费| 免费夜色污私人影院在线观看| 亚洲色图在线播放| 一级做a爱过程免费视| 免费观看激色视频网站bd| 亚洲天天做日日做天天看| 在线看片免费人成视久网| 亚洲综合久久成人69| 91九色精品国产免费| 亚洲无码高清在线观看| www成人免费观看网站| 亚洲熟女少妇一区二区| 久草免费福利资源站| 亚洲精品在线免费观看视频| 久久综合AV免费观看| 亚洲AV色无码乱码在线观看| 性短视频在线观看免费不卡流畅 | 亚洲成a人一区二区三区| fc2成年免费共享视频网站| 中文字幕精品亚洲无线码二区 | 亚洲 小说区 图片区 都市| 污污污视频在线免费观看| 岛国av无码免费无禁网站| 亚洲AV成人片无码网站| 亚洲人妻av伦理| 久久这里只精品热免费99| 亚洲一级毛片免观看| 亚洲AV无码不卡在线观看下载| 人妻丰满熟妇无码区免费| 亚洲国产精品久久久久婷婷软件| 大地资源二在线观看免费高清|