0

こんにちは私は次のメッセージがあります:

 <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
      <soapenv:Header>
         <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="true">
            <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-11">
               <wsu:Created>2012-09-06T09:59:04.031Z</wsu:Created>
               <wsu:Expires>2012-09-06T10:04:04.031Z</wsu:Expires>
            </wsu:Timestamp>
            <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-12">
               <wsse:Username>admin</wsse:Username>
               <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
            </wsse:UsernameToken>
         </wsse:Security>
      </soapenv:Header>
      <soapenv:Body />
   </soapenv:Envelope>

<wsse:Username>admin</wsse:Username>XPathを使用して、着信メッセージからユーザー名を取得したかった

なにか提案を?

編集:

私はこれを試しました:

<inSequence xmlns="http://ws.apache.org/ns/synapse">
   <property xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="p1" expression="$header/wsse:Username" scope="default" />
   <log>
      <property name="output*********" expression="get-property('p1')" />
   </log>
</inSequence>

ただし、ユーザー名は出力されません。

MessageID: urn:uuid:68f95493-7dfd-416a-b
455-f77f4fd5c9c5, Direction: request, output********* =
4

2 に答える 2

1

ヌヴィオ

「$header/wsse:Security」という表現を使用できます。ここで、「wsse」は Security ヘッダー要素によって運ばれる名前空間のプレフィックスです。以下に、Synapse メッセージ コンテキスト プロパティに保存する方法を示します。

<property xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="Security" expression="$header/wsse:Security" />

参考までに、構文「$header/header_name」を使用して、SOAP メッセージに存在する SOAP ヘッダー要素を抽出できます。

お役に立てれば!

乾杯、プラバース

于 2012-09-08T04:05:14.340 に答える
0

それ以外の場合は、これを使用するオプションがあります。xpath:"//wsse:Username/text()" 私もこのwso2ツールを初めて使用するのに役立つと思います。

これがあなたを運ぶことを願っています..

于 2013-01-24T06:52:45.417 に答える