0

これは基本的な質問かもしれません。WSO2 の専門用語に慣れてきたところです。WSDL を使用して個別に展開し、適切な SOAP 要求を渡し、それに応じて情報を返すことができる 2 つのサービスがあります。今、私はそれらを「If then, else」ステートメントにまとめたいと思っています。これは、ある種のシーケンスで設定されると思いますが、フィルターをどのように使用するかはわかりません.

  1. 認証リクエストと情報リクエストでリクエストを送信
  2. 認証要求を行う - 成功した場合は続行、失敗した場合は 401
  3. 情報リクエストを行う - 情報を入手する
  4. 情報を返す

フォローできるサンプルがある場合、または WSO2 が持っている数百のサンプルの 1 つを教えてくれる場合は、それらから多くを引き出すことができませんでした。構成の XML ソースの例も機能する可能性があります。助けてくれてありがとう、そして WSO2 の専門用語とワークフローを知らない私に感謝します。

4

2 に答える 2

0

だから私はこれに非常に似たものになってしまいました。誰かがこれに出くわし、wso2構成を探している場合。

  <proxy name="name"
          transports="https http"
          startOnLoad="true"
          trace="disable">
      <description/>
      <target>
         <inSequence>
            <property xmlns:ns1="ns1"
                      xmlns:ns="ns"
                      name="userID"
                      expression="//ns:AuthenticateRequest/ns:Credentials/ns1:userID"
                      scope="default"
                      type="STRING"/>
            <property xmlns:ns1="ns1"
                      xmlns:ns="ns1"
                      name="password"
                      expression="//ns:AuthenticateRequest/ns:Credentials/ns1:password"
                      scope="default"
                      type="STRING"/>

            <log>
               <property name="userID" expression="get-property('userID')"/>
               <property name="password" expression="get-property('password')"/>
            </log>
            <header name="Action"
                    value="http://services.com:port/AuthenticateSecureCredential"/>
            <send receive="AuthRecvSequence">
               <endpoint>
                  <address uri="http://server.com:port/DefaultAuthenticationService"/>
               </endpoint>
            </send>
         </inSequence>
      </target>
   </proxy>


   <sequence name="AuthRecvSequence">
      <filter xmlns:ns="ns"
              source="//ns:AuthenticateSecureCredentialResponse/ns:isAuthenticated"
              regex="false">
         <then>
            <makefault version="soap11">
               <code xmlns:soap11Env="http://schemas.xmlsoap.org/soap/envelope/"
                     value="soap11Env:VersionMismatch"/>
               <reason value="Not Authenticated"/>
               <role/>
            </makefault>
            <header name="To" action="remove"/>
            <property name="RESPONSE" value="true" scope="default" type="STRING"/>
            <send/>
            <drop/>
         </then>
         <else>
            <payloadFactory>
               <format>
                  <ns:INFO xmlns:ns="ns"
                                    xmlns:ns1="ns1">
                     <ns:secureCredentials>
                        <ns1:userID>$1</ns1:userID>
                        <ns1:password>$2</ns1:password>
                     </ns:secureCredentials>
                  </ns:INFORequest>
               </format>
               <args>
                  <arg expression="get-property('userID')"/>
                  <arg expression="get-property('password')"/>
               </args>
            </payloadFactory>
            <header name="Action"
                    value="http://services.com/GetINFO"/>
            <send receive="INFOrRecvSeq">
               <endpoint>
                  <address uri="http://server:port/INFOService"/>
               </endpoint>
            </send>
         </else>
      </filter>
   </sequence>

   <sequence name="INFORecvSeq">
      <send/>
   </sequence>
   <sequence name="main">
      <description>The main sequence for the message mediation</description>
   </sequence>
于 2012-09-25T21:46:32.427 に答える
0

条件Entitlement Mediatorに基づいてメッセージをフィルター処理するには、フィルター メディエーターを参照してください。ユースケースに役立つリファレンスとして、こちらのサンプルを見つけることができます。

于 2012-09-14T02:04:31.580 に答える