2012-08-07 56 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头。你仍然必须自己组装头,但我认为这是可能的