diff --git a/extensions/spark/kyuubi-spark-authz-shaded/pom.xml b/extensions/spark/kyuubi-spark-authz-shaded/pom.xml
index 2f4cb8eeb..d26e7c802 100644
--- a/extensions/spark/kyuubi-spark-authz-shaded/pom.xml
+++ b/extensions/spark/kyuubi-spark-authz-shaded/pom.xml
@@ -51,11 +51,7 @@
org.apache.ranger:*
org.codehaus.jackson:*
com.sun.jersey:*
- com.kstruct:gethostname4j
javax.ws.rs:jsr311-api
-
- net.java.dev.jna:jna
- net.java.dev.jna:jna-platform
diff --git a/extensions/spark/kyuubi-spark-authz/pom.xml b/extensions/spark/kyuubi-spark-authz/pom.xml
index 67c46fb03..b0192b6fb 100644
--- a/extensions/spark/kyuubi-spark-authz/pom.xml
+++ b/extensions/spark/kyuubi-spark-authz/pom.xml
@@ -33,10 +33,7 @@
2.5.0
-
- 1.0.0
1.19.4
- 5.7.0
@@ -108,24 +105,6 @@
${jersey.client.version}
-
- com.kstruct
- gethostname4j
- ${gethostname4j.version}
-
-
-
- net.java.dev.jna
- jna
- ${jna.version}
-
-
-
- net.java.dev.jna
- jna-platform
- ${jna.version}
-
-
org.apache.ranger
ranger-plugin-classloader
diff --git a/extensions/spark/kyuubi-spark-authz/src/main/java/com/kstruct/gethostname4j/Hostname.java b/extensions/spark/kyuubi-spark-authz/src/main/java/com/kstruct/gethostname4j/Hostname.java
new file mode 100644
index 000000000..ac384326a
--- /dev/null
+++ b/extensions/spark/kyuubi-spark-authz/src/main/java/com/kstruct/gethostname4j/Hostname.java
@@ -0,0 +1,52 @@
+/*
+ * 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.
+ */
+
+package com.kstruct.gethostname4j;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.SystemUtils;
+
+// Alternative for RANGER-4125 to cut out JNA dependencies
+public class Hostname {
+
+ // The highest priority environment variable which allows user to
+ // set hostname for Ranger client
+ public static final String RANGER_CLIENT_HOSTNAME = "RANGER_CLIENT_HOSTNAME";
+
+ /** @return the hostname the of the current machine */
+ public static String getHostname() {
+ String hostname = System.getenv(RANGER_CLIENT_HOSTNAME);
+ if (isValid(hostname)) return hostname;
+
+ // Gets the host name from an environment variable
+ // (COMPUTERNAME on Windows, HOSTNAME elsewhere)
+ hostname = SystemUtils.getHostName();
+ if (isValid(hostname)) return hostname;
+
+ try {
+ return InetAddress.getLocalHost().getHostName();
+ } catch (UnknownHostException rethrow) {
+ throw new RuntimeException(rethrow);
+ }
+ }
+
+ private static boolean isValid(String hostname) {
+ return StringUtils.isNotBlank(hostname) && !"localhost".equals(hostname);
+ }
+}