0

赫罗,。

我正在尝试执行以下命令:

curl -d "param1=A¶m[2]=B¶m[3]=username¶m[4]=password" https://dev-domain.com/test/

我得到了预期的结果。

但是当我尝试使用 WSO2 API Manager 来实现它时,使用下面的 API 突触,

<?xml version="1.0" encoding="UTF-8"?><api xmlns="http://ws.apache.org/ns/synapse" name="admin--auth" context="/auth" version="1.0.0" version-type="url">
    <resource methods="POST" url-mapping="/*">
        <inSequence>
            <property name="POST_TO_URI" value="true" scope="axis2"/>       

            <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
                <then>
                    <send>
                        <endpoint name="admin--auth_APIproductionEndpoint_0">                           
                            <http uri-template="https://dev-domain.com/test/">
                                <timeout>
                                    <duration>30000</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>
                        </endpoint>
                    </send>
                </then>
                <else>
                    <sequence key="_sandbox_key_error_"/>
                </else>
            </filter>
        </inSequence>
        <outSequence>
            <send/>
        </outSequence>
    </resource>
    <handlers>
        <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler"/>
        <handler class="org.wso2.carbon.apimgt.gateway.handlers.throttling.APIThrottleHandler">
            <property name="id" value="A"/>
            <property name="policyKey" value="gov:/apimgt/applicationdata/tiers.xml"/>
        </handler>
        <handler class="org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageHandler"/>
        <handler class="org.wso2.carbon.apimgt.usage.publisher.APIMgtGoogleAnalyticsTrackingHandler">
            <property name="configKey" value="gov:/apimgt/statistics/ga-config.xml"/>
        </handler>
        <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler"/>
    </handlers>
</api>

我使用以下命令进行测试:

curl -d "param1=A¶m[2]=B¶m[3]=username¶m[4]=password" http://apiserver.com:8280/auth/1.0.0

我得到了意想不到的结果,结果是:404,找不到页面

由于端点地址是安全连接,我已将证书注册到 [API_MGR_HOME]/repository/resources/security/client-truststore.jks

我认为如果我直接访问 curl 中的端点,结果应该是相同的。

有什么我没有做的吗?或者有什么建议可以让我得到相同的结果。它必须使用 WSO2 API Manager 来完成。

如果有任何意见或建议,请让我知道,提前谢谢。

4

1 回答 1

0

already solved by removing POST_TO_URI property.

于 2014-10-13T02:41:22.383 回答