From 2d4d6cfe420eb80f36a6a3efc0118b3ec9d7efbd Mon Sep 17 00:00:00 2001 From: Cheng Pan Date: Wed, 26 Mar 2025 20:31:32 +0800 Subject: [PATCH] [KYUUBI #7004] Include FastXML Jackson into authZ shaded jar ### Why are the changes needed? RANGER-4225 (2.5.0) upgrades Jackson from 1.x to 2.x, and it causes `ClassNotFoundException` when user use `kyuubi-spark-authz-shaded_2.12-1.10.1.jar`(built with Ranger 2.5.0) ``` java.lang.NoClassDefFoundError: com/fasterxml/jackson/jaxrs/base/ProviderBase at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.ranger.plugin.util.RangerRESTClient.buildClient(RangerRESTClient.java:208) at org.apache.ranger.plugin.util.RangerRESTClient.getClient(RangerRESTClient.java:191) at org.apache.ranger.plugin.util.RangerRESTClient.get(RangerRESTClient.java:465) at org.apache.ranger.admin.client.RangerAdminRESTClient.getRangerRolesDownloadResponse(RangerAdminRESTClient.java:1321) at org.apache.ranger.admin.client.RangerAdminRESTClient.getRolesIfUpdatedWithCred(RangerAdminRESTClient.java:1183) at org.apache.ranger.admin.client.RangerAdminRESTClient.getRolesIfUpdated(RangerAdminRESTClient.java:148) at org.apache.ranger.plugin.util.RangerRolesProvider.loadUserGroupRolesFromAdmin(RangerRolesProvider.java:172) at org.apache.ranger.plugin.util.RangerRolesProvider.loadUserGroupRoles(RangerRolesProvider.java:112) at org.apache.ranger.plugin.util.PolicyRefresher.loadRoles(PolicyRefresher.java:563) at org.apache.ranger.plugin.util.PolicyRefresher.startRefresher(PolicyRefresher.java:138) at org.apache.ranger.plugin.service.RangerBasePlugin.init(RangerBasePlugin.java:254) at org.apache.kyuubi.plugin.spark.authz.ranger.SparkRangerAdminPlugin$.initialize(SparkRangerAdminPlugin.scala:68) at org.apache.kyuubi.plugin.spark.authz.ranger.RangerSparkExtension.(RangerSparkExtension.scala:44) ``` ### How was this patch tested? ``` $ jar tf kyuubi-spark-authz-shaded_2.12-1.11.0-SNAPSHOT.jar | grep org/apache/kyuubi/shade/com/fasterxml org/apache/kyuubi/shade/com/fasterxml/ org/apache/kyuubi/shade/com/fasterxml/jackson/ org/apache/kyuubi/shade/com/fasterxml/jackson/databind/ org/apache/kyuubi/shade/com/fasterxml/jackson/databind/AbstractTypeResolver.class org/apache/kyuubi/shade/com/fasterxml/jackson/databind/AnnotationIntrospector$ReferenceProperty$Type.class org/apache/kyuubi/shade/com/fasterxml/jackson/databind/AnnotationIntrospector$ReferenceProperty.class org/apache/kyuubi/shade/com/fasterxml/jackson/databind/AnnotationIntrospector$XmlExtensions.class org/apache/kyuubi/shade/com/fasterxml/jackson/databind/AnnotationIntrospector.class org/apache/kyuubi/shade/com/fasterxml/jackson/databind/BeanDescription.class ... ``` ### Was this patch authored or co-authored using generative AI tooling? No. Closes #7004 from pan3793/authz-jackson. Closes #7004 cbf870516 [Cheng Pan] fix 4312d9fe5 [Cheng Pan] Include FastXML Jackson into authZ shaded jar Authored-by: Cheng Pan Signed-off-by: Cheng Pan (cherry picked from commit d7f20e843149c333a45877e4f0eca29a269927bf) Signed-off-by: Cheng Pan --- extensions/spark/kyuubi-spark-authz-shaded/pom.xml | 8 ++++++++ extensions/spark/kyuubi-spark-authz/pom.xml | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/extensions/spark/kyuubi-spark-authz-shaded/pom.xml b/extensions/spark/kyuubi-spark-authz-shaded/pom.xml index 5afc095e7..d701365f7 100644 --- a/extensions/spark/kyuubi-spark-authz-shaded/pom.xml +++ b/extensions/spark/kyuubi-spark-authz-shaded/pom.xml @@ -49,7 +49,11 @@ org.apache.kyuubi:* org.apache.ranger:* + org.codehaus.jackson:* + com.fasterxml.jackson.core:* + com.fasterxml.jackson.module:* + com.fasterxml.jackson.jaxrs:* com.sun.jersey:* javax.ws.rs:jsr311-api @@ -81,6 +85,10 @@ org.codehaus.jackson ${kyuubi.shade.packageName}.org.codehaus.jackson + + com.fasterxml.jackson + ${kyuubi.shade.packageName}.com.fasterxml.jackson + com.sun.jersey ${kyuubi.shade.packageName}.com.sun.jersey diff --git a/extensions/spark/kyuubi-spark-authz/pom.xml b/extensions/spark/kyuubi-spark-authz/pom.xml index dd9f1dfa0..16f76a46e 100644 --- a/extensions/spark/kyuubi-spark-authz/pom.xml +++ b/extensions/spark/kyuubi-spark-authz/pom.xml @@ -270,7 +270,6 @@ com.fasterxml.jackson.module jackson-module-scala_${scala.binary.version} - provided