Repository: hive Updated Branches: refs/heads/master 8f183945a -> 0cce1a61a
HIVE-14230: Hadoop23Shims.cloneUgi() doesn't add credentials from original UGI (Jason Dere, reviewed by Sergey Shelukhin) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/0cce1a61 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/0cce1a61 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/0cce1a61 Branch: refs/heads/master Commit: 0cce1a61ac051d32edf8fd48bb1b07aeb1abe6af Parents: 8f18394 Author: Jason Dere <jd...@hortonworks.com> Authored: Thu Jul 14 14:51:04 2016 -0700 Committer: Jason Dere <jd...@hortonworks.com> Committed: Thu Jul 14 14:51:04 2016 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/0cce1a61/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java ---------------------------------------------------------------------- diff --git a/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java b/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java index 155567e..9ea174f 100644 --- a/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java +++ b/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java @@ -1298,9 +1298,10 @@ public class Hadoop23Shims extends HadoopShimsSecure { if (getSubjectMethod == null) { throw new IOException("The UGI method was not found: " + ugiCloneError); } - Subject subject = new Subject(); try { - subject.getPrincipals().addAll(((Subject)getSubjectMethod.invoke(baseUgi)).getPrincipals()); + Subject origSubject = (Subject) getSubjectMethod.invoke(baseUgi); + Subject subject = new Subject(false, origSubject.getPrincipals(), + origSubject.getPublicCredentials(), origSubject.getPrivateCredentials()); return ugiCtor.newInstance(subject); } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { throw new IOException(e);