Repository: hadoop
Updated Branches:
  refs/heads/branch-2 3e80aece2 -> 91c4a3a81


HADOOP-12878. KMS SPNEGO sequence does not work with WEBHDFS. Contributed by 
Xiaoyu Yao.

(cherry picked from commit fd1befb6ba450e45b1fcb3fb28b0da6c48daf6b3)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/91c4a3a8
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/91c4a3a8
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/91c4a3a8

Branch: refs/heads/branch-2
Commit: 91c4a3a81681ed6fa05aa8d9bdcaa2460d1a93e7
Parents: 3e80aec
Author: Xiaoyu Yao <[email protected]>
Authored: Wed Feb 17 08:27:27 2016 -0800
Committer: Xiaoyu Yao <[email protected]>
Committed: Wed Feb 17 08:44:37 2016 -0800

----------------------------------------------------------------------
 hadoop-common-project/hadoop-common/CHANGES.txt       |  2 ++
 .../hadoop/crypto/key/kms/KMSClientProvider.java      | 14 +++++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/91c4a3a8/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt 
b/hadoop-common-project/hadoop-common/CHANGES.txt
index b2a3167..671ed4f 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -1071,6 +1071,8 @@ Release 2.8.0 - UNRELEASED
     HADOOP-12780. During atomic rename handle crash when one directory has been
     renamed but not file under it. (Madhumita Chakraborty via cnauroth)
 
+    HADOOP-12878. KMS SPNEGO sequence does not work with WEBHDFS. (xyao)
+
 Release 2.7.3 - UNRELEASED
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/91c4a3a8/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
index 9c38181..a73eda6 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
@@ -397,11 +397,15 @@ public class KMSClientProvider extends KeyProvider 
implements CryptoExtension,
                     KMS_CLIENT_ENC_KEY_CACHE_NUM_REFILL_THREADS_DEFAULT),
             new EncryptedQueueRefiller());
     authToken = new DelegationTokenAuthenticatedURL.Token();
-    actualUgi =
-        (UserGroupInformation.getCurrentUser().getAuthenticationMethod() ==
-        UserGroupInformation.AuthenticationMethod.PROXY) ? UserGroupInformation
-            .getCurrentUser().getRealUser() : UserGroupInformation
-            .getCurrentUser();
+    UserGroupInformation.AuthenticationMethod authMethod =
+        UserGroupInformation.getCurrentUser().getAuthenticationMethod();
+    if (authMethod == UserGroupInformation.AuthenticationMethod.PROXY) {
+      actualUgi = UserGroupInformation.getCurrentUser().getRealUser();
+    } else if (authMethod == UserGroupInformation.AuthenticationMethod.TOKEN) {
+      actualUgi = UserGroupInformation.getLoginUser();
+    } else {
+      actualUgi =UserGroupInformation.getCurrentUser();
+    }
   }
 
   private static Path extractKMSPath(URI uri) throws MalformedURLException, 
IOException {

Reply via email to