Клиент SOAP с Ruby и Savon :Как добавить атрибут EncodingType в элемент Nonce

Мне нужно создать ruby-клиент веб-службы (с Savon ), чтобы сделать мыльный вызов веб-службы, для которой требуется EncodingType в Nonce. Таким образом, правильное мыльное сообщение будет иметь такой элемент Nonce:

......
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">SomeHashValue</wsse:Nonce>
......

Но в моем клиенте Savon я не знаю, как добавить этот атрибут в элемент Nonce. Мой код здесь:

......
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
......

и Nonce в сгенерированном сообщении SOAP выглядит как:

......
    <wsse:Nonce>SomeHashValue</wsse:Nonce>
......

Итак, мой вопрос: как добавить атрибут EncodingType в элемент Nonce без изменения/удаления SomeHashValue в элементе Nonce?

5
задан Don 9 July 2012 в 17:25
поделиться