diff --git itests/util/src/main/java/org/apache/hadoop/hive/ql/security/DummyAuthenticator.java itests/util/src/main/java/org/apache/hadoop/hive/ql/security/DummyAuthenticator.java index 45fabf5..8e8c6a0 100644 --- itests/util/src/main/java/org/apache/hadoop/hive/ql/security/DummyAuthenticator.java +++ itests/util/src/main/java/org/apache/hadoop/hive/ql/security/DummyAuthenticator.java @@ -22,7 +22,7 @@ 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 @@ } @Override - public void setSessionState(SessionState ss) { + public void setSessionState(ISessionAuthState ss) { //no op } diff --git itests/util/src/main/java/org/apache/hadoop/hive/ql/security/InjectableDummyAuthenticator.java itests/util/src/main/java/org/apache/hadoop/hive/ql/security/InjectableDummyAuthenticator.java index c0ca4b3..6a33a15 100644 --- itests/util/src/main/java/org/apache/hadoop/hive/ql/security/InjectableDummyAuthenticator.java +++ itests/util/src/main/java/org/apache/hadoop/hive/ql/security/InjectableDummyAuthenticator.java @@ -22,7 +22,7 @@ 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 @@ } @Override - public void setSessionState(SessionState arg0) { + public void setSessionState(ISessionAuthState arg0) { //no-op } diff --git ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java index f5d5856..24c0b53 100644 --- ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java +++ ql/src/java/org/apache/hadoop/hive/ql/security/HadoopDefaultAuthenticator.java @@ -23,8 +23,7 @@ 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 @@ } @Override - public void setSessionState(SessionState ss) { + public void setSessionState(ISessionAuthState ss) { //no op } diff --git ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java index 25eb2a2..43c5a09 100644 --- ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java +++ ql/src/java/org/apache/hadoop/hive/ql/security/HiveAuthenticationProvider.java @@ -22,7 +22,7 @@ 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 @@ * 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 ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateConfigUserAuthenticator.java ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateConfigUserAuthenticator.java index c3ade54..07b08f1 100644 --- ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateConfigUserAuthenticator.java +++ ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateConfigUserAuthenticator.java @@ -23,6 +23,7 @@ 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 @@ private final List groupNames = new ArrayList(); protected Configuration conf; - private SessionState sessionState; + private ISessionAuthState sessionState; @Override public List getGroupNames() { @@ -67,7 +68,7 @@ } @Override - public void setSessionState(SessionState sessionState) { + public void setSessionState(ISessionAuthState sessionState) { this.sessionState = sessionState; } diff --git ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateUserAuthenticator.java ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateUserAuthenticator.java index 226fbe0..1bf7ca0 100644 --- ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateUserAuthenticator.java +++ ql/src/java/org/apache/hadoop/hive/ql/security/SessionStateUserAuthenticator.java @@ -22,7 +22,7 @@ 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 @@ public class SessionStateUserAuthenticator implements HiveAuthenticationProvider { protected Configuration conf; - private SessionState sessionState; + private ISessionAuthState sessionState; private List groups; @Override @@ -64,7 +64,7 @@ } @Override - public void setSessionState(SessionState sessionState) { + public void setSessionState(ISessionAuthState sessionState) { this.sessionState = sessionState; } diff --git ql/src/java/org/apache/hadoop/hive/ql/session/ISessionAuthState.java ql/src/java/org/apache/hadoop/hive/ql/session/ISessionAuthState.java new file mode 100644 index 0000000..83438fa --- /dev/null +++ ql/src/java/org/apache/hadoop/hive/ql/session/ISessionAuthState.java @@ -0,0 +1,36 @@ +/** + * 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 org.apache.hadoop.hive.ql.session; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; + +/** + * Exposes the authentication related methods of SessionState + * + * intended for internal usage only + */ +@InterfaceAudience.Private +public interface ISessionAuthState { + + Configuration getConf(); + + String getUserName(); + +} diff --git ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java index 072758b..6c6138e 100644 --- ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java +++ ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java @@ -120,7 +120,7 @@ * 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 @@ private final AtomicLong sparkSessionId = new AtomicLong(); + @Override public HiveConf getConf() { return sessionConf; } @@ -1909,6 +1910,7 @@ } } + @Override public String getUserName() { return userName; }