我们正面临在WSO2中使用CALL中介的问题。我们正试图从另一个支持OAUTH的WSO2 API调用WSO2 API。
以下是按预期工作的SEND调解员。
<send>
<endpoint name="wso2_get_http_endpoint" xmlns="http://ws.apache.org/ns/synapse">
<http method="get" statistics="enable" trace="enable" uri-template="https://localhost:8243/t/rest/cust/33/alert">
<timeout>
<duration>5000</duration>
<responseAction>fault</responseAction>
</timeout>
<suspendOnFailure>
<errorCodes>-1</errorCodes>
<initialDuration>0</initialDuration>
<progressionFactor>1.0</progressionFactor>
<maximumDuration>0</maximumDuration>
</suspendOnFailure>
<markForSuspension>
<errorCodes>-1</errorCodes>
</markForSuspension>
</http>
<property name="Authorization" scope="transport" value="Basic 0b6fda8c-6b50-339a-9e61-37fc11924591"/>
</endpoint>
</send>
但是当我们从SEND更改为CALL调解器时,我们收到401 Authentication错误(OAUTH丢失)。
<call blocking="true">
<endpoint name="wso2_get_http_endpoint" xmlns="http://ws.apache.org/ns/synapse">
<http method="get" statistics="enable" trace="enable" uri-template="https://localhost:8243/t/rest/cust/33/alert">
<timeout>
<duration>5000</duration>
<responseAction>fault</responseAction>
</timeout>
<suspendOnFailure>
<errorCodes>-1</errorCodes>
<initialDuration>0</initialDuration>
<progressionFactor>1.0</progressionFactor>
<maximumDuration>0</maximumDuration>
</suspendOnFailure>
<markForSuspension>
<errorCodes>-1</errorCodes>
</markForSuspension>
</http>
<property name="Authorization" scope="transport" value="Basic 0b6fda8c-6b50-339a-9e61-37fc11924591"/>
</endpoint>
</call>
即使在日志中,我也可以看到SEND mediator存在Authorization标头,但看起来它在CALL介体中被删除了。不确定这是否是WSO2问题。 我可以看到报告的类似问题,但是给出的工作对我们没有用。 (http://wso2-oxygen-tank.10903.n7.nabble.com/ESB-OAuth-1-0-authentication-headers-failing-when-sending-via-Call-Mediator-td97265.html)
请帮忙。感谢。