CTOCIO IT专家网

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

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

保护WebLogic Server上WebServices

作者: 佚名,  出处:Dev2Dev, 责任编辑: 叶江, 
2007-08-23 14:00
  本文首先概述了消息完整性、消息机密性和身份验证,简短讨论了怎样通过策略注释加以实现。接着实例指导如何构建一个基本服务,添加消息完整性、机密性和授权……

  为服务加入机密性

  现在我们要为服务加入机密性。这意味着希望在客户端和服务器之间加密消息(SOAP体)。其基本过程与添加消息的完整性一样:注释并重新生成服务,然后更新客户端。

  打开WTP中的HelloWorldService.java。添加下面突出显示的注释:

  @Policies({
  @Policy(uri="policy:Sign.xml"),
  @Policy(uri="policy:Encrypt.xml")
  })

  (别忘了在Sign.xml注释后添加逗号。)

  这个注释指定我们希望客户端和服务器使用加密。默认加密是双向的(即,从客户端到服务器、从服务器到客户端两个方向)。如果只要求单向加密,可向注释添加可选的direction属性来处理这一问题。

  现在需要重建服务。从命令窗口运行ant命令。如前,您将看到BUILD SUCCESSFUL消息。

  现在,更新客户端。首先,像以前那样获得WSDL文件并保存。用编辑器打开它。您将注意到一个新的元素:wssp:Confidentiality。这示意客户端使用加密。还请注意如下所示的Encypt.xml策略的内容:

<wsp:Policy s0:Id="Encrypt.xml">
...
</wsp:Policy>
...
 <portType name="HelloWorldPortType" wsp:PolicyURIs="#Sign.xml #Encrypt.xml">
..
</portType>

  由于新的部署重新生成了WSDL文件,我们需要再为监视器更新端口号。WSDL文件末尾处有如下代码:

  <s2:address location="http://localhost:7001/HelloWorldService/HelloWorldService"/>

  如下所示将端口号改为7002:

  <s2:address location="http://localhost:7002/HelloWorldService/HelloWorldService"/>

  保存并关闭WSDL文件。现在,从命令shell窗口运行ant -buildfile gen-client.xml命令,您会看到BUILD SUCCESSFUL消息,这时客户代理已经更新了。

  下面还要做什么呢?实际上不需要任何改动了。客户端无需添加任何代码使消息加密。客户端代理将提供所有的加密工作。这是使用Web services安全机制的一个主要优点;开发人员编写任何加密代码!

  运行HelloWorldClient,您将看到正常的问候响应。有什么改变了?初看起来似乎并无变化。然而,检查TCP/IP监视器,您将看到请求和响应已经加密了;无法像先前那样找到元素。这里有元素和一些加密的文本。注意,只是加密了消息体(请求的name元素和响应的return元素);所有的消息报头没有加密。还请注意,安全报头(wsse:Security)已经添加了ns1:EncryptedKey元素。

  消息机密性已经被加入服务了!

共13页。 9 6 7 8 9 10 11 12 13 :

网友评论

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

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i