This is an automated email from the ASF dual-hosted git repository.
chengpan pushed a commit to branch branch-1.10
in repository https://gitbox.apache.org/repos/asf/kyuubi.git
The following commit(s) were added to refs/heads/branch-1.10 by this push:
new 2d4d6cfe42 [KYUUBI #7004] Include FastXML Jackson into authZ shaded jar
2d4d6cfe42 is described below
commit 2d4d6cfe420eb80f36a6a3efc0118b3ec9d7efbd
Author: Cheng Pan <[email protected]>
AuthorDate: Wed Mar 26 20:31:32 2025 +0800
[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.<init>(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 <[email protected]>
Signed-off-by: Cheng Pan <[email protected]>
(cherry picked from commit d7f20e843149c333a45877e4f0eca29a269927bf)
Signed-off-by: Cheng Pan <[email protected]>
---
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 5afc095e7e..d701365f72 100644
--- a/extensions/spark/kyuubi-spark-authz-shaded/pom.xml
+++ b/extensions/spark/kyuubi-spark-authz-shaded/pom.xml
@@ -49,7 +49,11 @@
<includes>
<include>org.apache.kyuubi:*</include>
<include>org.apache.ranger:*</include>
+ <!-- RANGER-4225 (2.5.0) upgrades Jackson from 1.x
to 2.x -->
<include>org.codehaus.jackson:*</include>
+ <include>com.fasterxml.jackson.core:*</include>
+ <include>com.fasterxml.jackson.module:*</include>
+ <include>com.fasterxml.jackson.jaxrs:*</include>
<include>com.sun.jersey:*</include>
<include>javax.ws.rs:jsr311-api</include>
</includes>
@@ -81,6 +85,10 @@
<pattern>org.codehaus.jackson</pattern>
<shadedPattern>${kyuubi.shade.packageName}.org.codehaus.jackson</shadedPattern>
</relocation>
+ <relocation>
+ <pattern>com.fasterxml.jackson</pattern>
+
<shadedPattern>${kyuubi.shade.packageName}.com.fasterxml.jackson</shadedPattern>
+ </relocation>
<relocation>
<pattern>com.sun.jersey</pattern>
<shadedPattern>${kyuubi.shade.packageName}.com.sun.jersey</shadedPattern>
diff --git a/extensions/spark/kyuubi-spark-authz/pom.xml
b/extensions/spark/kyuubi-spark-authz/pom.xml
index dd9f1dfa03..16f76a46ea 100644
--- a/extensions/spark/kyuubi-spark-authz/pom.xml
+++ b/extensions/spark/kyuubi-spark-authz/pom.xml
@@ -270,7 +270,6 @@
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-scala_${scala.binary.version}</artifactId>
- <scope>provided</scope>
</dependency>
<dependency>