This is an automated email from the ASF dual-hosted git repository. kgyrtkirk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/hive.git
commit 59b4c769e2f08a06b236a546e2662d7dc6dd185c Author: Zoltan Haindrich <k...@rxd.hu> AuthorDate: Mon Feb 17 12:06:51 2020 +0000 HIVE-16502: Relax hard dependency on SessionState in Authentication classes (Zoltan Haindrich reviewed by Miklos Gergely) Signed-off-by: Zoltan Haindrich <k...@rxd.hu> --- .../hive/ql/security/DummyAuthenticator.java | 4 +-- .../ql/security/InjectableDummyAuthenticator.java | 4 +-- .../ql/security/HadoopDefaultAuthenticator.java | 5 ++-- .../ql/security/HiveAuthenticationProvider.java | 4 +-- .../SessionStateConfigUserAuthenticator.java | 5 ++-- .../ql/security/SessionStateUserAuthenticator.java | 6 ++-- .../ISessionAuthState.java} | 32 ++++++++-------------- .../hadoop/hive/ql/session/SessionState.java | 4 ++- 8 files changed, 28 insertions(+), 36 deletions(-) diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/DummyAuthenticator.java b/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/DummyAuthenticator.java index 45fabf5..8e8c6a0 100644 --- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/DummyAuthenticator.java +++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/DummyAuthenticator.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.ql.session.SessionState; +import org.apache.hadoop.hive.ql.session.ISessionAuthState; public class DummyAuthenticator implements HiveAuthenticationProvider { @@ -63,7 +63,7 @@ public class DummyAuthenticator implements HiveAuthenticationProvider { } @Override - public void setSessionState(SessionState ss) { + public void setSessionState(ISessionAuthState ss) { //no op } diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/InjectableDummyAuthenticator.java b/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/InjectableDummyAuthenticator.java index c0ca4b3..6a33a15 100644 --- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/InjectableDummyAuthenticator.java +++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/InjectableDummyAuthenticator.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.metastore.IHMSHandler; import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.ql.session.SessionState; +import org.apache.hadoop.hive.ql.session.ISessionAuthState; /** * @@ -101,7 +101,7 @@ public class InjectableDummyAuthenticator implements HiveMetastoreAuthentication } @Override - public void setSessionState(SessionState arg0) { + public void setSessionState(ISessionAuthState arg0) { //no-op } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java b/ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java index f5d5856..24c0b53 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java @@ -23,8 +23,7 @@ import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.ql.session.SessionState; -import org.apache.hadoop.hive.shims.ShimLoader; +import org.apache.hadoop.hive.ql.session.ISessionAuthState; import org.apache.hadoop.hive.shims.Utils; import org.apache.hadoop.security.UserGroupInformation; @@ -77,7 +76,7 @@ public class HadoopDefaultAuthenticator implements HiveAuthenticationProvider { } @Override - public void setSessionState(SessionState ss) { + public void setSessionState(ISessionAuthState ss) { //no op } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java b/ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java index 25eb2a21..43c5a09 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.hadoop.conf.Configurable; import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.ql.session.SessionState; +import org.apache.hadoop.hive.ql.session.ISessionAuthState; /** * HiveAuthenticationProvider is an interface for authentication. The @@ -41,6 +41,6 @@ public interface HiveAuthenticationProvider extends Configurable{ * SessionState is not a public interface. * @param ss SessionState that created this instance */ - public void setSessionState(SessionState ss); + public void setSessionState(ISessionAuthState ss); } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateConfigUserAuthenticator.java b/ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateConfigUserAuthenticator.java index c3ade54..07b08f1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateConfigUserAuthenticator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateConfigUserAuthenticator.java @@ -23,6 +23,7 @@ import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.session.ISessionAuthState; import org.apache.hadoop.hive.ql.session.SessionState; /** @@ -35,7 +36,7 @@ public class SessionStateConfigUserAuthenticator implements HiveAuthenticationPr private final List<String> groupNames = new ArrayList<String>(); protected Configuration conf; - private SessionState sessionState; + private ISessionAuthState sessionState; @Override public List<String> getGroupNames() { @@ -67,7 +68,7 @@ public class SessionStateConfigUserAuthenticator implements HiveAuthenticationPr } @Override - public void setSessionState(SessionState sessionState) { + public void setSessionState(ISessionAuthState sessionState) { this.sessionState = sessionState; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateUserAuthenticator.java b/ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateUserAuthenticator.java index 226fbe0..1bf7ca0 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateUserAuthenticator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateUserAuthenticator.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.ql.session.SessionState; +import org.apache.hadoop.hive.ql.session.ISessionAuthState; import org.apache.hadoop.security.UserGroupInformation; /** @@ -32,7 +32,7 @@ import org.apache.hadoop.security.UserGroupInformation; public class SessionStateUserAuthenticator implements HiveAuthenticationProvider { protected Configuration conf; - private SessionState sessionState; + private ISessionAuthState sessionState; private List<String> groups; @Override @@ -64,7 +64,7 @@ public class SessionStateUserAuthenticator implements HiveAuthenticationProvider } @Override - public void setSessionState(SessionState sessionState) { + public void setSessionState(ISessionAuthState sessionState) { this.sessionState = sessionState; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java b/ql/src/java/org/apache/hadoop/hive/ql/session/ISessionAuthState.java similarity index 50% copy from ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java copy to ql/src/java/org/apache/hadoop/hive/ql/session/ISessionAuthState.java index 25eb2a21..83438fa 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/session/ISessionAuthState.java @@ -1,4 +1,4 @@ -/* +/** * 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 @@ -16,31 +16,21 @@ * limitations under the License. */ -package org.apache.hadoop.hive.ql.security; - -import java.util.List; +package org.apache.hadoop.hive.ql.session; -import org.apache.hadoop.conf.Configurable; -import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.ql.session.SessionState; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; /** - * HiveAuthenticationProvider is an interface for authentication. The - * implementation should return userNames and groupNames. + * Exposes the authentication related methods of SessionState + * + * intended for internal usage only */ -public interface HiveAuthenticationProvider extends Configurable{ - - public String getUserName(); - - public List<String> getGroupNames(); +@InterfaceAudience.Private +public interface ISessionAuthState { - public void destroy() throws HiveException; + Configuration getConf(); - /** - * This function is meant to be used only for hive internal implementations of this interface. - * SessionState is not a public interface. - * @param ss SessionState that created this instance - */ - public void setSessionState(SessionState ss); + String getUserName(); } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java index 072758b..6c6138e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java @@ -120,7 +120,7 @@ import com.google.common.collect.Maps; * from any point in the code to interact with the user and to retrieve * configuration information */ -public class SessionState { +public class SessionState implements ISessionAuthState{ private static final Logger LOG = LoggerFactory.getLogger(SessionState.class); public static final String TMP_PREFIX = "_tmp_space.db"; @@ -325,6 +325,7 @@ public class SessionState { private final AtomicLong sparkSessionId = new AtomicLong(); + @Override public HiveConf getConf() { return sessionConf; } @@ -1909,6 +1910,7 @@ public class SessionState { } } + @Override public String getUserName() { return userName; }