Java 与 .NET 的基于 WS-Security的Web Services集成实现(上)

翻译|其它|编辑:郝浩|2004-07-26 09:25:00.000|阅读 1531 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


本文适用读者: 

Web Services开发人员 

应具备的知识: 

使用过VS.NET2003 +WSE开发过Web Services,会使用Jbuilder9开发简单的java应用程序。 


一:内容简介 

WS-Security描述通过消息完整性,消息机密性和单独消息认证提供保护质量的SOAP消息传递增强。适用于下列场合: 

1. 客户必须能够确定消息来自哪个人并能够证实发送方就是那个发送方声称的发送方。 

2. 客户必须能够确定被传送的数据没有篡改。 

本文介绍了如何实现基于WS-Security协议的Java客户端程序与 .net的web services的集成调用。 

二:平台及工具 

操作系统:win2000 server 

软件:VS.NET2003+WSE1.0 sp1 

Jbuilder9 

axis-wsse-1.0(axis实现的ws-security) 

三:实现 

1. 打开VS.NET2003,新建一个ASP.Net Web Services工程。增加一个名称为SumService的Web Services页面,其核心代码如下: 

[SoapRpcMethod(Action="http://www.contoso.com/Rpc",RequestNamespace="http://www.contoso.com/SU",ResponseNamespace="http://www.contoso.com/SU")] 

[WebMethod] 

public int IntAdd(int a,int b) 



SoapContext requestContext = HttpSoapContext.RequestContext; 

if (requestContext == null) 

throw new ApplicationException("Only SOAP requests are permitted."); 

return a+b ; 



2. 使用WSE Setting Tool 设定此Asp Web Services使用WSE功能,并在“安全”选项栏中添加一个密码提供类(PasswordProvider)用来实现WS-Security的安全认证。同时,选中trace功能用以跟踪此Web Services的接收到请求SOAP信息和返回的SOAP信息。 

3. 添加Microsoft.Web.Services 引用,添加一个新的class,命名为PasswordProvider,此类实现了WSE中的IPasswordProvider接口,用来提供WS-Security的用户身份验证功能。其核心代码如下: 

public class PasswordProvider : IPasswordProvider 



public PasswordProvider() 



// 

// TODO: Add constructor logic here 

// 



public string GetPassword(UsernameToken token) 



if (token.Username == “username”) 



return “password”; 



else 



return "love"; 







至此,一个实现了WS-Security中的UsernameToken的Web Services就基本实现了。此时建议使用.net先开发一个客户端进行测试,测试成功后再开发相应的java客户端程序。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP