0

我想通过 knox 作为特定用户 (userX) 连接到 HiveServer2,并且不需要任何身份验证。为此,我将“身份断言”与“匿名身份验证提供程序”一起使用。

在我的 sandbox.xml(存在于拓扑中)中,我使用了以下代码:

<provider>
        <role>authentication</role>
        <name>Anonymous</name>
        <enabled>true</enabled>
</provider>
<provider>
        <role>identity-assertion</role>
        <name>Default</name>
        <enabled>true</enabled>
        <param>
        <name>principal.mapping</name>
        <value>anonymous=userX;</value>
        </param>
</provider>

这工作正常,但我希望 userX 是一个变量,我想通过 jdbc url 命令接收这个变量。

我正在使用的命令:

beeline -u "jdbc:hive2://GATEWAY-HOST:GATEWAY-PORT/;ssl=true;sslTrustStore={gateway.jks location};trustStorePassword={master-key};transportMode=http;httpPath=gateway/sandbox/hive"

假设我想将连接建立为“UserABC”,我该如何实现?如何在 jdbc url 中传递此 UserABC,以及在 sandbox.xml 中需要进行哪些更改来选择该变量 userId。

4

1 回答 1

0

您可以为此使用HeaderPreAuth联合提供程序,我还将回应文档中表达的警告,即您需要配置适当的网络安全性,否则此提供程序将使网关暴露于身份欺骗。

于 2018-08-17T22:17:53.313 回答