2010-09-20 2 views
5

Я использую Soap4r и HTTPClient для взаимодействия с Webservice. Служба принимает только запросы, которые были подписаны цифровой подписью с сертификатом X509. Я прошел через шаги создания секретного ключа, получения запроса сертификата (CSR) и получения фактического сертификата от авторитета (компания, принимающая веб-сервис.)Запросы SOAP в Ruby с сертификатами X509

Есть ли какие-либо примеры для того, как это сделать это?

+0

Кто-нибудь может реализовать WS-Security с рубином через 3 года? Мне нужна помощь!! – rderoldan1

ответ

4

Кажется, что используемый вами веб-сервис использует 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, как Metro (http://metro.java.net/), Axis2 (http://ws.apache.org/axis2/) и CXF (http://cxf.apache.org/)

Смежные вопросы