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

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

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

    kingpub

    海內存知己,博客若比鄰

     

    運用Web Services安全機制對SOAP消息加密(3)

    2.4 WEBSPHERE IICE WEB SERVICE SOAP消息安全實現細節

      A. 配置

      WebSphere IICE Web Services安全機制的配置工作是由客戶端和服務器端兩部分組成的。就如下面的配置文件實例說描述的一樣,SOAP消息會在它被發送到目標服務器之前分別被不同的句柄簽名和加密。相對應的,它也會在服務器端被驗證和解密。

      列表2:AXIS客戶端配置文件示例

    <globalConfiguration>
    ????? <requestFlow>????
    ????? <handler
    ?? type="java:com.venetica.vbr.webservices.handler.X509SignHandler"/>
    ????? <handler
    ?? type="java:com.venetica.vbr.webservices.handler.EncryptHandler"/>?????
    ?? </requestFlow>??
    ?? <responseFlow>
    ??? <handler
    ?type="java:com.venetica.vbr.webservices.handler.X509SignHandler"/>
    ??? <handler
    ?type="java:com.venetica.vbr.webservices.handler.DecryptHandler"/>
    ?? </responseFlow>??
    ?</globalConfiguration>

      服務器端的配置文件和客戶端的配置文件非常相像。

      B. 簽名和加密/解密過程:

      SOAP消息的簽名和加密/解密過程如圖2所示:

      圖2:SOAP消息的簽名和加密/解密過程

      列表3: XML簽名示例代碼

    public Message signSOAPEnvelope(SOAPEnvelope unsignedEnvelope) throws Exception
    ?? {? // WSSignEnvelope signs a SOAP envelope according to the
    ????? // WS Specification (X509 profile) and adds the signature data
    ????? // to the envelope.
    ????? WSSignEnvelope signer = new WSSignEnvelope();
    ????? String alias = "username";
    ????? String password = "password";
    ????? signer.setUserInfo(alias, password);
    ????? Document doc = unsignedEnvelope.getAsDocument();????
    ????? Document signedDoc = signer.build(doc, crypto);
    ????? // Convert the signed document into a SOAP message.
    ????? Message signedSOAPMsg =???????? (org.apache.axis.Message)AxisUtil.toSOAPMessage(signedDoc);
    ????? return signedSOAPMsg;
    ?? }

      列表3顯示了XML簽名的過程:首先得到SOAP信封,接下來是獲得用戶證書信息、產生簽名對象,然后是用此簽名對象對信封進行簽名,最后是從被簽名的信封中產生新的SOAP消息。

      列表4:XML加密示例代碼

    public Message encryptSOAPEnvelope(
    ????? SOAPEnvelope unsignedEnvelope, Message axisMessage)
    ????? throws Exception
    ?? {
    ????? WSEncryptBody encrypt = new WSEncryptBody();
    ????? // build the encrypted SOAP part
    ????? Document doc = unsignedEnvelope.getAsDocument();
    ????? Document encryptedDoc = encrypt.build(doc, crypto);
    ????? // Convert the document into a SOAP message
    ????? Message encryptedMsg =
    ???????? (Message)AxisUtil.toSOAPMessage(encryptedDoc);
    ????? // Retrieve the desired SOAP part
    ????? String soapPart = encryptedMsg.getSOAPPartAsString();
    ????? ((SOAPPart)axisMessage.getSOAPPart()). setCurrentMessage(soapPart, SOAPPart.FORM_STRING);
    ????? encryptedDoc =axisMessage.getSOAPEnvelope().getAsDocument();
    ????? // Convert the document into a SOAP message
    ????? Message encryptedSOAPMsg = Message)AxisUtil.toSOAPMessage(encryptedDoc);
    ????? return encryptedSOAPMsg;
    ?? }

    posted on 2006-06-08 18:01 xiaofeng 閱讀(276) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩一卡2卡3卡4卡新区亚洲| 日韩免费一区二区三区| 精品国产亚洲男女在线线电影| 香蕉高清免费永久在线视频| 国产成人精品日本亚洲18图| 国产成人免费午夜在线观看| 青青久在线视频免费观看| 亚洲另类春色国产精品| 国产精品久久永久免费| 中文字幕亚洲码在线| 国产女高清在线看免费观看| 日本一区二区三区免费高清在线| 久久精品国产亚洲AV不卡| 日韩精品无码免费专区午夜不卡| 亚洲中文字幕久久精品无码喷水| 任你躁在线精品免费| 亚洲综合图片小说区热久久| 日韩欧美一区二区三区免费观看| 亚洲人成色4444在线观看| www.亚洲色图.com| 国产日韩精品无码区免费专区国产| 久久91亚洲精品中文字幕| 在线v片免费观看视频| 青娱乐在线视频免费观看| 亚洲日韩欧洲乱码AV夜夜摸| 免费A级毛片无码A∨中文字幕下载| 亚洲精品免费在线| 妞干网免费视频观看| 一级做a爰片久久毛片免费看| 亚洲av中文无码乱人伦在线咪咕| 国产香蕉免费精品视频| 精品在线视频免费| 亚洲精品天天影视综合网| 在线A级毛片无码免费真人| 国产视频精品免费视频| 国产精品亚洲四区在线观看 | 老司机午夜免费视频| 亚洲va久久久噜噜噜久久狠狠| 成年女人午夜毛片免费视频| 人体大胆做受免费视频| 久久亚洲AV成人无码|