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;
   }

Reply via email to