[
https://issues.apache.org/jira/browse/KNOX-1559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16704852#comment-16704852
]
Kevin Risden commented on KNOX-1559:
------------------------------------
Talked with [~rlevas] offline - the DefaultDispatch does the right thing when
it comes to headers. The big question is the need for removeUrlEncoding for
Ambari.
[https://github.com/apache/ambari/blob/trunk/ambari-server/docs/api/v1/index.md#query-predicates]
One of the issues is that Ambari doesn't seem to require url encoding of query
predicates (there may be other places but this is the first I found). Knox
works around that here:
[https://github.com/apache/knox/blob/master/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/AbstractGatewayDispatch.java#L149]
PassAllHeadersNoUrlEncoding makes use of that to make sure Ambari works. There
are cases where we want to use the header handling of DefaultDispatch but the
url encoding handling.
> Create Dispatch implementation that is configurable via service.xml file
> ------------------------------------------------------------------------
>
> Key: KNOX-1559
> URL: https://issues.apache.org/jira/browse/KNOX-1559
> Project: Apache Knox
> Issue Type: Improvement
> Reporter: Robert Levas
> Assignee: Kevin Risden
> Priority: Major
> Labels: ambari
> Fix For: 1.3.0
>
> Attachments: KNOX-1559.patch, KNOX-1559.patch
>
>
> Create a {{org.apache.knox.gateway.dispatch.Dispatch}} implementation that is
> configurable via metadata file (for example, {{service.xml}}). Configurable
> parameters should be
> * headers to exclude when forwarding requests
> * whether parameters should URL-encoded or not
> Such an implementation should be able to make at least the following Dispatch
> implementations obsolete:
> * org.apache.knox.gateway.dispatch.PassAllHeadersNoEncodingDispatch
> * org.apache.knox.gateway.dispatch.PassAllHeadersDispatch
> A possible declaration could be:
> {code}
> <dispatch
> classname="org.apache.knox.gateway.dispatch.ConfigurableDispatch">
> <property>
> <name>excludeHeaders<name>
> <value>Authorization, Content-Length</value>
> </property>
> <property>
> <name>removeUrlEncoding<name>
> <value>false</value>
> </property>
> </dispatch>
> {code}
> Or maybe
> {code}
> <dispatch
> classname="org.apache.knox.gateway.dispatch.ConfigurableDispatch"
> removeUrlEncoding="true" excludeHeaders="Authorization, Content-Length" />
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)