2010-09-20 87 views
5

我正在使用Soap4r和HTTPClient与Web服务进行交互。该服务只接受已使用X509证书进行数字签名的请求。我已经完成了生成私钥,获取证书请求(CSR)以及从授权机构(托管Web服务的公司)获取实际证书的步骤。使用X509证书的Ruby中的SOAP请求

是否有任何示例可以说明如何执行这个?

+0

3年后,有人可以用ruby实现WS-Security?我需要一些帮助!! – rderoldan1 2014-07-03 04:45:29

回答

4

看来您正在使用的web服务使用WS-Security。 WS-Security是一种OASIS标准,它利用XML签名和XML加密来保护SOAP消息。不过,据我所知,Soap4r不支持WS-Security。自己实现它是相当无望的,因为它相当复杂(并且涉及XML-Canonicalization之类的恼人的东西)。

WSO2在其框架中有红宝石绑定(http://wso2.org/projects/wsf/ruby)也许你可以使用它。如果没有,你可能不得不包装一些C库(如libxmlsec)来签署由Soap4r创建的消息。有红宝石绑定(http://rubygems.org/gems/xmlsec-ruby),但我认为他们不公开xmlsec的全部功能。

如果这是你可以实现你的代码在Java中,因为它有相当多的功能强大的开源SOAP库与WS-Security的像地铁(http://metro.java.net/),Axis2的(http://ws.apache.org/axis2/)和CXF(http://cxf.apache.org/

支持的选项