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

Reply via email to