JoegenUSTC commented on code in PR #11355:
URL: https://github.com/apache/gravitino/pull/11355#discussion_r3353882104


##########
catalogs/hive-metastore-common/src/main/java/org/apache/gravitino/hive/client/HiveClientFactory.java:
##########
@@ -202,6 +212,17 @@ private HiveClient 
createHiveClientInternal(HiveClientClassLoader classloader) {
         return createProxyHiveClientImpl(
             classloader.getHiveVersion(), properties, ugi, classloader);
 
+      } else if (enableKerberos) {
+        // UGI is a shared class (org.apache.hadoop.* delegated to 
baseLoader), so the system CL
+        // and HiveClientClassLoader share the same UGI static state. The TGT 
is already stored in
+        // realLoginUgi.subject by kerberosClient.login(). The only thing 
needed is to bind that
+        // Subject to the current thread so GSSAPI can find the TGT during the 
HMS Thrift handshake.
+        // UGI.doAs() wraps Subject.doAs() internally — same pattern as 
ImpalaEngineAdapter.
+        UserGroupInformation realUgi = kerberosClient.getRealLoginUgi();
+        final HiveClientClassLoader.HiveVersion hiveVersion = 
classloader.getHiveVersion();
+        return realUgi.doAs(
+            (java.security.PrivilegedExceptionAction<HiveClient>)

Review Comment:
   Fixed. Added `import java.security.PrivilegedExceptionAction;` and replaced 
the inline 
   FQN cast per the project coding standards.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to