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 3bf990a..1ded295 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 @@ -24,6 +24,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.security.UserGroupInformation; /** * Authenticator that returns the userName set in SessionState. For use when authorizing with HS2 @@ -35,10 +36,14 @@ protected Configuration conf; private SessionState sessionState; + private List groups; @Override public List getGroupNames() { - return groupNames; + if (groups == null) { + groups = UserGroupInformation.createRemoteUser(sessionState.getUserName()).getGroups(); + } + return groups; } @Override