You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[KYUUBI #2719] [SUB-TASK][KPIP-4] Support internal rest request authentication to enable http request redirection across kyuubi instances
### _Why are the changes needed?_
Support internal rest request authentication to enable redirect http request across kyuubi instances
### _How was this patch tested?_
- [x] Add some test cases that check the changes thoroughly including negative and positive cases if possible
- [ ] Add screenshots for manual tests if appropriate
- [x] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request
Closes#2719 from turboFei/internal_access.
Closes#2719b9e150e [Fei Wang] revert config key change
aa37872 [Fei Wang] make it internal
ce96d92 [Fei Wang] comments
6fe8523 [Fei Wang] Support internal rest request authentication to enable redirect http request across kyuubi instances
Authored-by: Fei Wang <fwang12@ebay.com>
Signed-off-by: Fei Wang <fwang12@ebay.com>
Copy file name to clipboardExpand all lines: docs/deployment/settings.md
-8Lines changed: 0 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -220,13 +220,6 @@ Key | Default | Meaning | Type | Since
220
220
<code>kyuubi.engine.pool.name</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>engine-pool</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The name of engine pool.</div>|<divstyle='width: 30pt'>string</div>|<divstyle='width: 20pt'>1.5.0</div>
221
221
<code>kyuubi.engine.pool.size</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>-1</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The size of engine pool. Note that, if the size is less than 1, the engine pool will not be enabled; otherwise, the size of the engine pool will be min(this, kyuubi.engine.pool.size.threshold).</div>|<divstyle='width: 30pt'>int</div>|<divstyle='width: 20pt'>1.4.0</div>
222
222
<code>kyuubi.engine.pool.size.threshold</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>9</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>This parameter is introduced as a server-side parameter, and controls the upper limit of the engine pool.</div>|<divstyle='width: 30pt'>int</div>|<divstyle='width: 20pt'>1.4.0</div>
223
-
<code>kyuubi.engine.security.crypto.cipher</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>AES/CBC/PKCS5PADDING</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The cipher transformation to use for encrypting engine access token.</div>|<divstyle='width: 30pt'>string</div>|<divstyle='width: 20pt'>1.5.0</div>
<code>kyuubi.engine.security.crypto.keyLength</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>128</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The length in bits of the encryption key to generate. Valid values are 128, 192 and 256</div>|<divstyle='width: 30pt'>int</div>|<divstyle='width: 20pt'>1.5.0</div>
227
-
<code>kyuubi.engine.security.enabled</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>false</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>Whether to enable the internal secure access between Kyuubi server and engine.</div>|<divstyle='width: 30pt'>boolean</div>|<divstyle='width: 20pt'>1.5.0</div>
228
-
<code>kyuubi.engine.security.secret.provider</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>org.apache.kyuubi.service.authentication.ZooKeeperEngineSecuritySecretProviderImpl</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The class used to manage the engine security secret. This class must be a subclass of EngineSecuritySecretProvider.</div>|<divstyle='width: 30pt'>string</div>|<divstyle='width: 20pt'>1.5.0</div>
229
-
<code>kyuubi.engine.security.token.max.lifetime</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>PT10M</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The max lifetime of the token used for secure access between Kyuubi server and engine.</div>|<divstyle='width: 30pt'>duration</div>|<divstyle='width: 20pt'>1.5.0</div>
230
223
<code>kyuubi.engine.session.initialize.sql</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'></div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>SemiColon-separated list of SQL statements to be initialized in the newly created engine session before queries. This configuration can not be used in JDBC url due to the limitation of Beeline/JDBC driver.</div>|<divstyle='width: 30pt'>seq</div>|<divstyle='width: 20pt'>1.3.0</div>
231
224
<code>kyuubi.engine.share.level</code>|<div style='width: 65pt;word-wrap: break-word;white-space: normal'>USER</div>|<div style='width: 170pt;word-wrap: break-word;white-space: normal'>Engines will be shared in different levels, available configs are: <ul> <li>CONNECTION: engine will not be shared but only used by the current client connection</li> <li>USER: engine will be shared by all sessions created by a unique username, see also kyuubi.engine.share.level.subdomain</li> <li>GROUP: engine will be shared by all sessions created by all users belong to the same primary group name. The engine will be launched by the group name as the effective username, so here the group name is kind of special user who is able to visit the compute resources/data of a team. It follows the [Hadoop GroupsMapping](https://reurl.cc/xE61Y5) to map user to a primary group. If the primary group is not found, it fallback to the USER level. <li>SERVER: the App will be shared by Kyuubi servers</li></ul></div>|<div style='width: 30pt'>string</div>|<div style='width: 20pt'>1.2.0</div>
@@ -292,7 +285,6 @@ Key | Default | Meaning | Type | Since
292
285
<code>kyuubi.ha.zookeeper.connection.retry.policy</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>EXPONENTIAL_BACKOFF</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The retry policy for connecting to the zookeeper ensemble, all candidates are: <ul><li>ONE_TIME</li><li> N_TIME</li><li> EXPONENTIAL_BACKOFF</li><li> BOUNDED_EXPONENTIAL_BACKOFF</li><li> UNTIL_ELAPSED</li></ul></div>|<divstyle='width: 30pt'>string</div>|<divstyle='width: 20pt'>1.0.0</div>
293
286
<code>kyuubi.ha.zookeeper.connection.timeout</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>15000</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The timeout(ms) of creating the connection to the zookeeper ensemble</div>|<divstyle='width: 30pt'>int</div>|<divstyle='width: 20pt'>1.0.0</div>
294
287
<code>kyuubi.ha.zookeeper.engine.auth.type</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>NONE</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The type of zookeeper authentication for engine, all candidates are <ul><li>NONE</li><li> KERBEROS</li><li> DIGEST</li></ul></div>|<divstyle='width: 30pt'>string</div>|<divstyle='width: 20pt'>1.3.2</div>
295
-
<code>kyuubi.ha.zookeeper.engine.secure.secret.node</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'><undefined></div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The zk node contains the secret that used for internal secure between Kyuubi server and Kyuubi engine, please make sure that it is only visible for Kyuubi.</div>|<divstyle='width: 30pt'>string</div>|<divstyle='width: 20pt'>1.5.0</div>
296
288
<code>kyuubi.ha.zookeeper.namespace</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>kyuubi</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>The root directory for the service to deploy its instance uri</div>|<divstyle='width: 30pt'>string</div>|<divstyle='width: 20pt'>1.0.0</div>
<code>kyuubi.ha.zookeeper.publish.configs</code>|<divstyle='width: 65pt;word-wrap: break-word;white-space: normal'>false</div>|<divstyle='width: 170pt;word-wrap: break-word;white-space: normal'>When set to true, publish Kerberos configs to Zookeeper.Note that the Hive driver needs to be greater than 1.3 or 2.0 or apply HIVE-11581 patch.</div>|<divstyle='width: 30pt'>boolean</div>|<divstyle='width: 20pt'>1.4.0</div>
Copy file name to clipboardExpand all lines: kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/EngineSecureAuthenticationProviderImpl.scala
Copy file name to clipboardExpand all lines: kyuubi-server/src/main/scala/org/apache/kyuubi/server/http/authentication/KyuubiHttpAuthenticationFactory.scala
0 commit comments