### Why are the changes needed? The PR fixes multiple `Pygments lexer name` issues and resolves the following warnings during the documentation build process: ``` ../kyuubi/docs/client/advanced/kerberos.md:37: WARNING: Pygments lexer name 'cmd' is not known ../kyuubi/docs/client/bi_tools/hue.md:26: WARNING: Lexing literal_block "Welcome to\n __ __ __\n /\\ \\/\\ \\ /\\ \\ __\n \\ \\ \\/'/' __ __ __ __ __ __\\ \\ \\____/\\_\\\n \\ \\ , < /\\ \\/\\ \\/\\ \\/\\ \\/\\ \\/\\ \\\\ \\ '__`\\/\\ \\\n \\ \\ \\\\`\\\\ \\ \\_\\ \\ \\ \\_\\ \\ \\ \\_\\ \\\\ \\ \\L\\ \\ \\ \\\n \\ \\_\\ \\_\\/`____ \\ \\____/\\ \\____/ \\ \\_,__/\\ \\_\\\n \\/_/\\/_/`/___/> \\/___/ \\/___/ \\/___/ \\/_/\n /\\___/\n \\/__/" as "bash" resulted in an error at token: "'". Retrying in relaxed mode. [misc.highlighting_failure] ../kyuubi/docs/client/jdbc/hive_jdbc.md:27: WARNING: Pygments lexer name 'gradle' is not known ../kyuubi/docs/client/jdbc/kyuubi_jdbc.rst:111: WARNING: Pygments lexer name 'jdbc' is not known ../kyuubi/docs/client/jdbc/kyuubi_jdbc.rst:134: WARNING: Pygments lexer name 'jdbc' is not known ../kyuubi/docs/client/jdbc/kyuubi_jdbc.rst:143: WARNING: Pygments lexer name 'jdbc' is not known ../kyuubi/docs/client/jdbc/kyuubi_jdbc.rst:163: WARNING: Pygments lexer name 'jdbc' is not known ../kyuubi/docs/connector/spark/delta_lake_with_azure_blob.rst:191: WARNING: Pygments lexer name 'log' is not known ../kyuubi/docs/deployment/hive_metastore.md:38: WARNING: Pygments lexer name 'shell script' is not known ../kyuubi/docs/deployment/hive_metastore.md:207: WARNING: Lexing literal_block "Caused by: org.apache.thrift.TApplicationException: Invalid method name: 'get_table_req'\n\tat org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:79)\n\tat org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_get_table_req(ThriftHiveMetastore.java:1567)\n\tat org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_table_req(ThriftHiveMetastore.java:1554)\n\tat org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getTable(HiveMetaStoreClient.java:1350)\n\tat org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.getTable(SessionHiveMetaStoreClient.java:127)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:173)\n\tat com.sun.proxy.$Proxy37.getTable(Unknown Source)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.apache.hadoop.hive.metastore.HiveMetaStoreClient$SynchronizedHandler.invoke(HiveMetaStoreClient.java:2336)\n\tat com.sun.proxy.$Proxy37.getTable(Unknown Source)\n\tat org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:1274)\n\t... 93 more" as "java" resulted in an error at token: "'". Retrying in relaxed mode. [misc.highlighting_failure] ../kyuubi/docs/extensions/server/authentication.rst:75: WARNING: Pygments lexer name 'property' is not known ../kyuubi/docs/extensions/server/events.rst:76: WARNING: Pygments lexer name 'property' is not known ../kyuubi/docs/monitor/logging.md:38: WARNING: Pygments lexer name 'log' is not known ../kyuubi/docs/monitor/logging.md:86: WARNING: Pygments lexer name 'log' is not known ../kyuubi/docs/monitor/logging.md:222: WARNING: Pygments lexer name 'log' is not known ../kyuubi/docs/security/kerberos.rst:104: WARNING: Pygments lexer name 'property' is not known ../kyuubi/docs/security/ldap.md:24: WARNING: Pygments lexer name 'properties example' is not known ../kyuubi/docs/security/ldap.md:40: WARNING: Pygments lexer name 'properties example' is not known ``` Supported languages: [Pygments lexers](https://pygments.org/docs/lexers) and [highlightjs](https://github.com/highlightjs/highlight.js/blob/main/SUPPORTED_LANGUAGES.md). ### How was this patch tested? Built documentation locally and checked there are related warnings. ### Was this patch authored or co-authored using generative AI tooling? No Closes #6986 from dnskr/fix-unknown-Pygments-lexer-name. Closes #6986 f5b62f52d [dnskr] [DOC] Fix multiple Pygments lexer name issues Authored-by: dnskr <dnskrv88@gmail.com> Signed-off-by: Cheng Pan <chengpan@apache.org>
85 lines
3.3 KiB
ReStructuredText
85 lines
3.3 KiB
ReStructuredText
.. Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
.. Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
|
|
Configure Kyuubi to use Custom Authentication
|
|
=============================================
|
|
|
|
Besides the `builtin authentication`_ methods, kyuubi supports custom
|
|
authentication implementations of `org.apache.kyuubi.service.authentication.PasswdAuthenticationProvider`
|
|
and `org.apache.kyuubi.service.authentication.TokenAuthenticationProvider`.
|
|
|
|
.. code-block:: scala
|
|
|
|
package org.apache.kyuubi.service.authentication
|
|
|
|
import javax.security.sasl.AuthenticationException
|
|
|
|
trait PasswdAuthenticationProvider {
|
|
|
|
/**
|
|
* The authenticate method is called by the Kyuubi Server authentication layer
|
|
* to authenticate users for their requests.
|
|
* If a user is to be granted, return nothing/throw nothing.
|
|
* When a user is to be disallowed, throw an appropriate [[AuthenticationException]].
|
|
*
|
|
* @param user The username received over the connection request
|
|
* @param password The password received over the connection request
|
|
*
|
|
* @throws AuthenticationException When a user is found to be invalid by the implementation
|
|
*/
|
|
@throws[AuthenticationException]
|
|
def authenticate(user: String, password: String): Unit
|
|
}
|
|
|
|
Build A Custom Authenticator
|
|
----------------------------
|
|
|
|
To create custom Authenticator class derived from the above interface, we need to:
|
|
|
|
- Referencing the library
|
|
|
|
.. parsed-literal::
|
|
|
|
<dependency>
|
|
<groupId>org.apache.kyuubi</groupId>
|
|
<artifactId>kyuubi-common_2.12</artifactId>
|
|
<version>\ |release|\</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
- Implement PasswdAuthenticationProvider or TokenAuthenticationProvider - `Sample Code`_
|
|
|
|
|
|
Enable Custom Authentication
|
|
----------------------------
|
|
|
|
To enable the custom authentication method, we need to
|
|
|
|
- Put the jar package to ``$KYUUBI_HOME/jars`` directory to make it visible for
|
|
the classpath of the kyuubi server.
|
|
- Configure the following properties to ``$KYUUBI_HOME/conf/kyuubi-defaults.conf``
|
|
on each node where kyuubi server is installed.
|
|
|
|
.. code-block:: properties
|
|
|
|
kyuubi.authentication=CUSTOM
|
|
kyuubi.authentication.custom.class=YourAuthenticationProvider
|
|
kyuubi.authentication.custom.basic.class=YourBasicAuthenticationProvider
|
|
kyuubi.authentication.custom.bearer.class=YourBearerAuthenticationProvider
|
|
|
|
- Restart all the kyuubi server instances
|
|
|
|
.. _builtin authentication: ../../security/authentication.html
|
|
.. _Sample Code: https://github.com/kyuubilab/example-custom-authentication/blob/main/src/main/scala/org/apache/kyuubi/example/MyAuthenticationProvider.scala |