Прокси-служба через проблему Apache Knox POST - PullRequest
0 голосов
/ 01 мая 2019

Я использую версию 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 не отправляется целевой службе.Не уверен, в чем проблема.

Спасибо, Сатиш

...