This is an automated email from the ASF dual-hosted git repository.

roryqi pushed a commit to branch ISSUE-6353
in repository https://gitbox.apache.org/repos/asf/gravitino.git

commit d6717ded70fc13a36e76d2e6678a6fb598f0ba41
Author: Rory <ror...@apache.org>
AuthorDate: Thu Jan 23 11:06:17 2025 +0800

    Use loader for chained plugin
---
 .../gravitino/authorization/chain/ChainedAuthorizationPlugin.java  | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git 
a/authorizations/authorization-chain/src/main/java/org/apache/gravitino/authorization/chain/ChainedAuthorizationPlugin.java
 
b/authorizations/authorization-chain/src/main/java/org/apache/gravitino/authorization/chain/ChainedAuthorizationPlugin.java
index 83f2ce6caf..982ee38cd2 100644
--- 
a/authorizations/authorization-chain/src/main/java/org/apache/gravitino/authorization/chain/ChainedAuthorizationPlugin.java
+++ 
b/authorizations/authorization-chain/src/main/java/org/apache/gravitino/authorization/chain/ChainedAuthorizationPlugin.java
@@ -72,8 +72,13 @@ public class ChainedAuthorizationPlugin implements 
AuthorizationPlugin {
               try {
                 BaseAuthorization<?> authorization =
                     BaseAuthorization.createAuthorization(classLoader, 
authzProvider);
+
+                // Load the authorization plugin with the class loader of the 
catalog.
+                // Because the JDBC authorization plugin may load JDBC driver 
using the class
+                // loader.
                 AuthorizationPlugin authorizationPlugin =
-                    authorization.newPlugin(metalake, catalogProvider, 
pluginConfig);
+                    classLoader.withClassLoader(
+                        cl -> authorization.newPlugin(metalake, 
catalogProvider, pluginConfig));
                 plugins.add(authorizationPlugin);
               } catch (Exception e) {
                 throw new RuntimeException(e);

Reply via email to