0

soap4r を使用してユーザー名とパスワードを渡すように SimpleHandler をオーバーライドしました。問題は、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>

含む名前を渡さないにはどうすればよいですか?

4

2 に答える 2

0

Soap4R は、ヘッダーのオーバーライドについて非常にうるさいです。あなたの状況では、両方を持つ単一のハンドラーではなく、2 つの「フラット」ハンドラー (ユーザー名用とパスワード用) を追加する必要があります。

于 2009-10-30T12:33:06.767 に答える
0

soap4r に変更を加える必要があるようです: http://dev.ctor.org/soap4r/browser/branches/1_5/lib/soap/header/handler.rb

サービスがそれほど複雑でない場合は、Handsoap https://github.com/unwire/handsoap/wiki/authentication#WS-Securityを試すことができます

于 2009-10-30T14:00:48.587 に答える