2012-08-07 66 views
0

這是一個有點拉伸,我希望具有WSS4CF經驗的人將知道我到底是什麼。使用WSS4CF與<cfhttp>

我們正試圖訪問遠程Web服務,要求使用用戶名/密碼的WS Security。在玩弄SOAP + <cfhttp>並遇到課堂問題後,我的同事建議我看看WSS4CF。這似乎正是我需要避免需要處理這些額外的jar文件等。

沒有提供任何示例,我注意到cfc(view here)似乎被配置爲使用類似dotNet SOAP服務的地方你只需使用參數調用一個方法,例如

<cfinvoke 
      webservice="https://service.gov.au/OrgService.svc?WSDL" 
      refreshwsdl="true" 
      method="Search" 
      returnvariable="aSearch"> 
       <cfinvokeargument name="request" value="#arguments.sXML#"/> 
     </cfinvoke> 

WSS4CF首先創建一個安全的Web服務,然後在該安全環境中提出請求。我試過上面的代碼,它不工作(沒想到它)。該服務需要一個xml包,而不是帶有參數的方法調用。

而不是擺弄那個,我需要配置它與cfhttp一起使用,在cfhttpparam中傳遞一個xml信封,例如,如下:

<cfhttp 
    url="/service.gov.au/OrgService.svc?WSDL" 
    method="post"> 

    <cfhttpparam type="header" name="content-type" value="application/soap+xml" /><!---text/xml---> 
    <cfhttpparam type="header" name="SOAPAction" value="http://service.gov.au/services/IOrgService/Search"/> 
    <cfhttpparam type="header" name="accept-encoding" value="no-compression" /> 
    <cfhttpparam type="xml" value="#trim(sXML)#"/> 

</cfhttp> 

任何幫助做到這一點,將不勝感激。除非他們感興趣,否則我不希望人們去研究圖書館。更希望與WSS4CF合作的人能夠提供一些啓發。

回答

0

雖然它不使用WS-Security本身,但the answer here可以幫助你做你想做的事情,假設你可以在消息頭中發送WS-Security包(維基百科確保你可以)。在這種方法中,你使用cfinvoke,但是添加一個頭,你的情況就是ws-security頭。你仍然必須自己組裝頭,但我認爲這是可能的