2017-01-27 18 views
0

OAuth2トークンを取得しようとしています。しかし、私はwso2esbを使ってx-www-form-urlencodedリクエストをどうやって作ることができないのか分かりません。 これは私のコードの抜粋です:wso2 esbを使用してアプリケーション/ x-www-form-urlencodedをリクエストしてください

<?xml version="1.0" encoding="UTF-8"?> 
<sequence name="test-oauth_v1" xmlns="http://ws.apache.org/ns/synapse"> 
    <in> 
     <property name="RESPONSE" scope="default" value="true"/> 
     <property action="remove" name="NO_ENTITY_BODY" scope="axis2"/> 
     <header action="remove" name="To"/> 
     <property name="messageType" value="application/json" scope="axis2" type="STRING"/> 
     <property name="basicAuth" scope="default" type="STRING" value="Z3FZVFhUQnhkQlVGNDloblxxzedtSGRBQ1kySWpmSmNvZXdh"/> 


     <script language="js"><![CDATA[ 

      var body = {}; 
      body.grant_type = 'password'; 
      body.username = 'xxxx'; 
      body.password = 'xxxxxxx'; 
      mc.setPayloadJSON(body); 

     ]]></script>  

     <property name="messageType" scope="default" type="STRING" value="application/x-www-form-urlencoded"/> 
     <header 
      expression="fn:concat('Basic ', get-property('basicAuth'))" 
      name="Authorization" scope="transport" xmlns:ns="http://org.apache.synapse/xsd"/> 
     <call> 
      <endpoint key="server_token_oauth"/> 
     </call> 

     <send /> 
    </in> 
</sequence> 

あなたはどんな提案を持っていますか?

敬具

答えて

0

あなたはこの例[1]を参照することができます。 messageTypeのスコープはaxis2でなければなりません。

<property name="messageType" value="application/x-www-form-urlencoded" scope="axis2" type="STRING"/>  
<property name="DISABLE_CHUNKING" value="true" scope="axis2" type="STRING"/> 
+0

私はその試行錯誤を成功裏に試みました。私は答えにシーケンスを入れます –

0

こんにちは、私は成功せず、これを試してみました:

<?xml version="1.0" encoding="UTF-8"?> 
<sequence name="test-consume-oauth_v1" trace="enable" xmlns="http://ws.apache.org/ns/synapse"> 
    <in> 
     <script language="js"><![CDATA[try { var randomnumber1=Math.floor((Math.random() * 10000) + 1); mc.setProperty("sessionnumber", randomnumber1.toString()); } catch(e) {}]]></script> 
     <property 
      expression="fn:concat('Basic ', 'Z3FZVFhUQnhkQlVGNDloblJzb0kydxzSGRBQ1kySWpmSmNvZXdh')" 
      name="Autorizacion" xmlns:ns="http://org.apache.synapse/xsd"/> 
     <property name="grant_type" value="password"/> 
     <property name="username" value="admin"/> 
     <property name="password" value="admin"/> 
     <property name="scope" value="default"/> 
     <payloadFactory media-type="xml"> 
      <format> 
       <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
        <soapenv:Body> 
         <root> 
          <grant_type>$1</grant_type> 
          <username>$2</username> 
          <password>$3</password> 
          <scope>$4</scope> 
         </root> 
        </soapenv:Body> 
       </soapenv:Envelope> 
      </format> 
      <args> 
       <arg evaluator="xml" expression="$ctx:grant_type" xmlns:ns="http://org.apache.synapse/xsd"/> 
       <arg evaluator="xml" expression="$ctx:username" xmlns:ns="http://org.apache.synapse/xsd"/> 
       <arg evaluator="xml" expression="$ctx:password" xmlns:ns="http://org.apache.synapse/xsd"/> 
       <arg evaluator="xml" expression="$ctx:scope" xmlns:ns="http://org.apache.synapse/xsd"/> 
      </args> 
     </payloadFactory> 
     <header name="Content-Type" scope="transport" value="application/x-www-form-urlencoded"/> 
     <header expression="get-property('Autorizacion')" 
      name="Authorization" scope="transport" xmlns:ns="http://org.apache.synapse/xsd"/> 
     <property name="messageType" scope="default" type="STRING" value="application/x-www-form-urlencoded"/> 
     <property name="DISABLE_CHUNKING" scope="default" type="STRING" value="true"/> 

     <!-- GET the token --> 
     <call> 
      <endpoint key="get_token_oauth"/> 
     </call> 

     <respond/> 
    </in> 
</sequence> 

あなたはどんな提案を持っているだろうしてください?

関連する問題