Передача пустого XSD :: QName с использованием soap4r - PullRequest
0 голосов
/ 12 октября 2009

Я переопределил SimpleHandler для передачи имени пользователя и пароля с использованием soap4r. проблема в том, что я вынужден дать QName, и это приводит к сбою результата, потому что он не в правильном формате.

То, что добавляет soap4r, выглядит примерно так («ns1» - это фиктивные значения):

<env:Header>
  <n1:ns1 env:mustUnderstand="0"
    xmlns:n1="ns1">
    <n1:Username>someuser</n1:Username>
    <n1:Password>topsecret</n1:Password>
   </n1:ns1>
 </env:Header>

Что это должно быть так:

<env:Header>
  <n1:Username>someuser</n1:Username>
  <n1:Password>topsecret</n1:Password>
</env:Header>

Как я могу НЕ передать содержащее имя?

Ответы [ 2 ]

0 голосов
/ 30 октября 2009

Похоже, вам нужно внести некоторые изменения в soap4r: http://dev.ctor.org/soap4r/browser/branches/1_5/lib/soap/header/handler.rb

Если сервис не такой уж сложный, вы можете попробовать Handsoap http://wiki.github.com/unwire/handsoap/authentication#WS-Security

0 голосов
/ 30 октября 2009

Soap4R довольно требователен к переопределению заголовков. В вашей ситуации вам нужно добавить два «плоских» обработчика (один для имени пользователя, а другой для пароля) вместо одного с обоими.

...