我正在使用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正文没有发送到目标服务。不确定是什么问题。
谢谢 卫星