Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[KYUUBI #6041] RESTful API supports isolated authentication configuration #6042

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix test
wangjunbo committed Feb 20, 2024
commit 8a877afe98709989a880afe28f18bb0090a8a7bc
2 changes: 1 addition & 1 deletion docs/configuration/settings.md
Original file line number Diff line number Diff line change
@@ -246,7 +246,7 @@ You can configure the Kyuubi properties in `$KYUUBI_HOME/conf/kyuubi-defaults.co
| kyuubi.frontend.mysql.worker.keepalive.time | PT1M | Time(ms) that an idle async thread of the command execution thread pool will wait for a new task to arrive before terminating in MySQL frontend service | duration | 1.4.0 |
| kyuubi.frontend.protocols | THRIFT_BINARY,REST | A comma-separated list for all frontend protocols <ul> <li>THRIFT_BINARY - HiveServer2 compatible thrift binary protocol.</li> <li>THRIFT_HTTP - HiveServer2 compatible thrift http protocol.</li> <li>REST - Kyuubi defined REST API(experimental).</li> <li>MYSQL - MySQL compatible text protocol(experimental).</li> <li>TRINO - Trino compatible http protocol(experimental).</li> </ul> | seq | 1.4.0 |
| kyuubi.frontend.proxy.http.client.ip.header | X-Real-IP | The HTTP header to record the real client IP address. If your server is behind a load balancer or other proxy, the server will see this load balancer or proxy IP address as the client IP address, to get around this common issue, most load balancers or proxies offer the ability to record the real remote IP address in an HTTP header that will be added to the request for other devices to use. Note that, because the header value can be specified to any IP address, so it will not be used for authentication. | string | 1.6.0 |
| kyuubi.frontend.rest.authentication | NONE | A comma-separated list of client authentication types. It fallback to `kyuubi.authentication` if not configure. | seq | 1.9.0 |
| kyuubi.frontend.rest.authentication | NONE | A comma-separated list of rest protocol client authentication types. It fallback to `kyuubi.authentication` if not configure. | seq | 1.9.0 |
| kyuubi.frontend.rest.bind.host | &lt;undefined&gt; | Hostname or IP of the machine on which to run the REST frontend service. | string | 1.4.0 |
| kyuubi.frontend.rest.bind.port | 10099 | Port of the machine on which to run the REST frontend service. | int | 1.4.0 |
| kyuubi.frontend.rest.max.worker.threads | 999 | Maximum number of threads in the frontend worker thread pool for the rest frontend service | int | 1.6.2 |
Original file line number Diff line number Diff line change
@@ -799,7 +799,7 @@ object KyuubiConf {

val FRONTEND_REST_AUTHENTICATION_METHOD: ConfigEntry[Seq[String]] =
buildConf("kyuubi.frontend.rest.authentication")
.doc("A comma-separated list of client authentication types." +
.doc("A comma-separated list of rest protocol client authentication types." +
" It fallback to `kyuubi.authentication` if not configure.")
.version("1.9.0")
.serverOnly
Original file line number Diff line number Diff line change
@@ -186,7 +186,9 @@ class KyuubiRestAuthenticationSuite extends RestClientTestHelper {
class NoneKyuubiRestAuthenticationSuite extends RestClientTestHelper {

override protected val otherConfigs: Map[String, String] = {
Map(KyuubiConf.FRONTEND_REST_AUTHENTICATION_METHOD.key -> "NONE")
Map(
KyuubiConf.AUTHENTICATION_METHOD.key -> "KERBEROS",
KyuubiConf.FRONTEND_REST_AUTHENTICATION_METHOD.key -> "NONE")
}

test("test disable restful api authentication") {
@@ -201,7 +203,7 @@ class NoneKyuubiRestAuthenticationSuite extends RestClientTestHelper {
class KerberosKyuubiRestAuthenticationSuite extends RestClientTestHelper {

override protected val otherConfigs: Map[String, String] = {
Map(KyuubiConf.FRONTEND_REST_AUTHENTICATION_METHOD.key -> "KERBEROS")
Map(KyuubiConf.AUTHENTICATION_METHOD.key -> "KERBEROS")
}

test("test without authorization when rest api authentication with KERBEROS") {