[
https://issues.apache.org/jira/browse/KNOX-1559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16693432#comment-16693432
]
Kevin Risden commented on KNOX-1559:
------------------------------------
I know in the case of WebHDFS, Knox needs to authenticate via Kerberos against
the backend. So it would have to send an Authorization header. The same goes
for Hive and a few other services. Most of these rely on the default dispatch
behind the scenes. The UIs that do their own authentication seem to use
PassAllHeaders*Dispatch since then Knox will automatically pass the correct
headers.
I think in the case of Ambari you need to behavior of the default dispatch
(handling of the Authorization header) and the no encoding part from
PassAllHeadersNoEncoding. I think the above patch will handle that case since
you can configure no encoding independent of passing all headers.
> 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
>
>
> 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)