Ho bisogno di creare un client del servizio web rubino (con Savon) per effettuare una chiamata di sapone a un servizio Web che richiede l'EncodingType nel Nonce. Così il corretto messaggio SOAP avrà l'elemento Nonce in questo modo:Client SOAP con Ruby e Savon: Come aggiungere l'attributo EncodingType nell'elemento Nonce
......
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">SomeHashValue</wsse:Nonce>
......
Ma nel mio cliente Savon, non so come aggiungere tale attributo nell'elemento Nonce. Il mio codice qui:
......
client = Savon.client do
wsdl.endpoint = "http://webservicehost/TestWebService"
wsdl.namespace = "namespace"
wsse.credentials "username", "password"
wsse.digest = "true"
end
client.request :get_service do |soap|
soap.input = [
"GetService",
{ "xmlns" => "namespace" }
]
soap.body = {
"locale" => "en_US",
"serviceID" => '123'
}
end
......
e il Nonce nel messaggio SOAP generato è come:
......
<wsse:Nonce>SomeHashValue</wsse:Nonce>
......
Quindi la mia domanda è, come aggiungere l'EncodingType attributo all'elemento Nonce, senza cambiare/rimozione il valore SomeHashValue nell'elemento Nonce?