通过Apache Knox POST代理服务

时间:2019-05-01 12:24:09

标签: knox-gateway

我正在使用0.12版本的Knox,并将服务配置为通过knox代理,如下所示:

我的拓扑是:

<topology>
    <gateway>
        <provider>
            <role>webappsec</role>
            <name>WebAppSec</name>
            <enabled>true</enabled>
            <param>
                <name>cors.enabled</name>
                <value>true</value>
              </param>
              <param>
                    <name>cors.supportedMethods</name>
                    <value>GET,HEAD,POST,OPTIONS,PUT</value>
               </param>
                <param>
                        <name>xframe.options.enabled</name>
                        <value>true</value>
                </param>
                <param>
                        <name>xframe.options</name>
                        <value>SAMEORIGIN</value>
                </param>
        </provider>
       <provider>
            <role>identity-assertion</role>
            <name>Default</name>
            <enabled>true</enabled>
        </provider>

        <service>
            <role>MYSERVICE</role>
            <url>http://localhost:9090</url>
        </service>
</topology>

及其本身的服务被描述为

    <policies>
        <policy role="webappsec"/>
        <policy role="authentication" name="Anonymous"/>
        <policy role="rewrite"/>
        <policy role="authorization"/>
    </policies>

    <routes>
        <route path="/myservice"/>
        <route path="/myservice/**"/>
    </routes>

    <dispatch classname="org.apache.hadoop.gateway.dispatch.PassAllHeadersDispatch"/>

                              

    <rule dir="IN" name="MYSERVICE/myservice/inbound/root" pattern="*://*:*/**/myservice/">
        <rewrite template="{$serviceUrl[MYSERVICE]}/"/>
    </rule>

    <rule dir="IN" name="MYSERVICE/myservice/inbound/path" pattern="*://*:*/**/myservice/{**}">
        <rewrite template="{$serviceUrl[MYSERVICE]}/{**}"/>
    </rule>

当我尝试访问时,服务GET请求正在按预期方式工作。 POST请求也将路由到服务,无论POST正文没有发送到目标服务。不确定是什么问题。

谢谢 卫星

0 个答案:

没有答案