[KYUUBI #7003] Cut out JNA dependencies for authZ plugin
### Why are the changes needed? This PR provides an alternative for RANGER-4125 to cut out JNA dependencies for authZ plugin. ### How was this patch tested? Pass GHA, and I checked the content of authz-shaded jar ``` $ jar tf extensions/spark/kyuubi-spark-authz-shaded/target/kyuubi-spark-authz-shaded_2.12-1.11.0-SNAPSHOT.jar | grep Hostname org/apache/kyuubi/shade/com/kstruct/gethostname4j/Hostname.class ``` ### Was this patch authored or co-authored using generative AI tooling? No. Closes #7003 from pan3793/authz-hostname. Closes #7003 42e246856 [Cheng Pan] Cut out JNA dependencies for authz plugin Authored-by: Cheng Pan <chengpan@apache.org> Signed-off-by: Cheng Pan <chengpan@apache.org>
This commit is contained in:
parent
560e0fbee1
commit
176bc293fc
@ -51,11 +51,7 @@
|
||||
<include>org.apache.ranger:*</include>
|
||||
<include>org.codehaus.jackson:*</include>
|
||||
<include>com.sun.jersey:*</include>
|
||||
<include>com.kstruct:gethostname4j</include>
|
||||
<include>javax.ws.rs:jsr311-api</include>
|
||||
<!-- JNA is the transitive dependency of gethostname4j -->
|
||||
<include>net.java.dev.jna:jna</include>
|
||||
<include>net.java.dev.jna:jna-platform</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
<filters>
|
||||
|
||||
@ -33,10 +33,7 @@
|
||||
|
||||
<properties>
|
||||
<ranger.version>2.5.0</ranger.version>
|
||||
<!-- the following components' version may need to tune to align w/ the ranger.version-->
|
||||
<gethostname4j.version>1.0.0</gethostname4j.version>
|
||||
<jersey.client.version>1.19.4</jersey.client.version>
|
||||
<jna.version>5.7.0</jna.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
@ -108,24 +105,6 @@
|
||||
<version>${jersey.client.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.kstruct</groupId>
|
||||
<artifactId>gethostname4j</artifactId>
|
||||
<version>${gethostname4j.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
<version>${jna.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna-platform</artifactId>
|
||||
<version>${jna.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.ranger</groupId>
|
||||
<artifactId>ranger-plugin-classloader</artifactId>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user