明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Java 與 .NET 的基于 WS-Security的Web Services集成完成(上)

[摘要]Java 與 .NET 的基于 WS-Security的Web Services集成實現(xiàn) rottenapple本文適...


Java 與 .NET 的基于 WS-Security的Web Services集成實現(xiàn)

rottenapple

本文適用讀者:

Web Services開發(fā)人員

應(yīng)具備的知識:

使用過VS.NET2003 +WSE開發(fā)過Web Services,會使用Jbuilder9開發(fā)簡單的java應(yīng)用程序。



一:內(nèi)容簡介

WS-Security描述通過消息完整性,消息機密性和單獨消息認證提供保護質(zhì)量的SOAP消息傳遞增強。適用于下列場合:

1. 客戶必須能夠確定消息來自哪個人并能夠證實發(fā)送方就是那個發(fā)送方聲稱的發(fā)送方。

2. 客戶必須能夠確定被傳送的數(shù)據(jù)沒有篡改。

本文介紹了如何實現(xiàn)基于WS-Security協(xié)議的Java客戶端程序與 .net的web services的集成調(diào)用。

二:平臺及工具

操作系統(tǒng):win2000 server

軟件:VS.NET2003+WSE1.0 sp1

Jbuilder9

axis-wsse-1.0(axis實現(xiàn)的ws-security)

三:實現(xiàn)

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 設(shè)定此Asp Web Services使用WSE功能,并在“安全”選項欄中添加一個密碼提供類(PasswordProvider)用來實現(xiàn)WS-Security的安全認證。同時,選中trace功能用以跟蹤此Web Services的接收到請求SOAP信息和返回的SOAP信息。

3. 添加Microsoft.Web.Services 引用,添加一個新的class,命名為PasswordProvider,此類實現(xiàn)了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";

}

}

}

至此,一個實現(xiàn)了WS-Security中的UsernameToken的Web Services就基本實現(xiàn)了。此時建議使用.net先開發(fā)一個客戶端進行測試,測試成功后再開發(fā)相應(yīng)的java客戶端程序。(如何開發(fā)請參見我以前寫的關(guān)于WSE的文章或到微軟MSDN上察看)