CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > 技巧

企业应用的Web服务安全技术之二:框架

作者: ,  出处:Matrix, 责任编辑: 叶江, 
2005-10-27 11:07
  本文是讨论如何在企业环境中实现和应用基于Web服务安全技术的安全保护方案。本文将进一步介绍此Web服务安全工具包的框架,并解释工具包内Web服务安全的特性与Java语言的面向对象特性之间的高层抽象映射关系。

企业应用的Web服务安全技术之一:问题介绍

  客户端

  第一部分中工具包需求部分指出, 开发工具包的目的之一是简化客户在当前的开发环境下处理Web服务安全的工作。这些工作应该移至框架层, 以便框架层最终将这些工作代理到底层基础设施——真正应该处理这些工作的地方。 因此,在讨论工具包的结构以及工具包内实体与WSSE相关标准之间的关系前, 让我们将工具包视为一个黑盒子, 从客户的角度来体验一下(如何使用工具包)。

  WsseHeaderToken wsseHeader = new WsseHeaderToken();
       
        // Add Timestamp element to the WSSE Header  添加时间戳元素
        TsToken ts = wsseHeader.AddTimestamp(60);
       
        // Sign the timestamp element with default certificate使用缺省证书对时间戳元素签名
        WsToken[] sigTokens = new WsToken[] {ts};
        wsseHeader.AddSignature(sigTokens);
       
        // Encrypt the signature and body elements with default key 使用缺省的密钥加密签名及主体中元素
        WsTokenRef[] encTokens = new WsTokenRef[]
                { new DSigTokenRef(), new SoapBodyRef() };
        wsseHeader.AddEncryption(encTokens);
       
        wsseHeader.ProcessHeader();
       
        Element soap = wsseHeader.GetSoapEnvelope();

  这个简单示例构造了一个包含时间戳子元素的Web服务安全(以下简记为WSSE)头部元素, 并从配置文件中获取XML签名提供者的信息, 使用相应XML签名提供者工具对时间戳元素签名, 进而使用配置的XML加密提供者对安全头部中的签名元素和时间戳元素进行加密。

  XML文件解析具有过程化的本质, 这将带来处理WSSE XML信息的困难, 导致混乱复杂相互纠缠的代码。 工具包中实现了复杂安全规范的代码, 试图将安全领域的过程化规则映射到面向对象领域的对应部分。 包中代表WSSE元素的类, 隔离了XML解析过程, 创建了处理XML代码的面向对象的包装器。

  工具包提供的WsseHeaderToken类, 对一些功能进行了便于使用的封装, 这样可以使得客户与框架的复杂性隔离。 如果有必要, 客户也可以在代码内直接创建和访问工具包内的其他类。 例如, 当现有帮助类未提供处理某种类型的元素的功能时, 可以创建相应的处理器对象进行处理, 并将处理结果添加到头部安全信息中。 在下面代码中使用一个示例处理器和示例标记, 演示了如何从WSSE信息头部拷贝标记元素到另一个WSSE信息头部

  // Reference and read WSSE header with null actor
        使用null操作器引用和读取WSSE 头部
        WsseHeaderRef ref = WsseHeaderRef.CreateFromFile(filename, null);
        WsseHeaderToken wsseHeader = ref.GetWsseHeader();
       
        // Reference a sample element in the retrieved header
        引用已读取头部包含的一个示例元素
        SampleTokenRef sampleRef = new SampleTokenRef(wsseHeader,"sample1");
        SampleToken sample = sampleRef.GetSampleToken();
       
        // Create a new WSSE header and add the element
        生成新的安全头部信息并添加元素
        WsseHeaderToken wsseNew = new WsseHeaderToken();
        wsseNew.InsertToken(sample);
       
        // Add sample element's processing in the new WSSE header
        在生成的头部中处理示例元素
        SampleProcessor sampleProcessor = new SampleProcessor();
        sampleProcessor.SetReplaceTokens(true);
        sampleProcessor.AddToken(sample);
        wsseNew.AddProcessor(sampleProcessor);
       
        wsseNew.ProcessHeader();
       
        Element soap = wsseNew.GetSoapEnvelope();

共6页。 1 2 3 4 5 6 :
  • 本文关键词:

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       

该文章的读者还阅读了

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错