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 {
