2010-09-20 14 views
5

Używam Soap4r i HTTPClient do interakcji z usługą sieci Web. Usługa akceptuje tylko te wnioski, które zostały cyfrowo podpisane za pomocą certyfikatu X509. Podjąłem kroki, by wygenerować klucz prywatny, uzyskać żądanie certyfikatu (CSR) i uzyskać aktualny certyfikat od organu (firmy obsługującej usługę sieciową).Żądania SOAP w Ruby z certyfikatami X509

Czy są jakieś przykłady, jak to zrobić? to?

+0

Ktoś mógłby zaimplementować WS-Security z rubinem 3 lata później? Potrzebuję pomocy!! – rderoldan1

Odpowiedz

4

Wygląda na to, że zużywająca się usługa internetowa używa WS-Security. WS-Security to standard OASIS, który wykorzystuje XML-Signature i XML-Encryption do zabezpieczania wiadomości SOAP. Jednak, o ile wiem, Soap4r nie obsługuje WS-Security. Wdrożenie go samemu jest dość beznadziejne, ponieważ jest dość skomplikowane (i zawiera irytujące elementy, takie jak kanonizacja XML).

WSO2 ma wiązania ruby ​​dla ich szkieletu (http://wso2.org/projects/wsf/ruby) może mógłbyś z niego skorzystać. Jeśli nie, prawdopodobnie będziesz musiał zawinąć bibliotekę C (np. Libxmlsec), aby podpisać wiadomości utworzone przez Soap4r. Istnieją wiązania ruby ​​(http://rubygems.org/gems/xmlsec-ruby), ale myślę, że nie eksponują pełnej funkcjonalności xmlsec.

Jeśli jest to opcja, można zaimplementować kod w Javie, ponieważ ma sporo zaawansowanych bibliotek open source SOAP ze wsparciem dla WS-Security, takich jak Metro (http://metro.java.net/), Axis2 (http://ws.apache.org/axis2/) i CXF (http://cxf.apache.org/)

Powiązane problemy