From 0a95b4f8aa7a3d03986de56145294bd7c933b96d Mon Sep 17 00:00:00 2001 From: Arun Suresh Date: Fri, 10 Apr 2015 11:40:25 -0700 Subject: [PATCH] HDFS-7931. DistributedFileSystem should not look for keyProvider in cache if Encryption is disabled (asuresh) (cherry picked from commit 7660da95cb67cbfe034aa8fa2a5bf0f8c9fdf41a) --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/hdfs/DFSClient.java | 4 ++++ .../java/org/apache/hadoop/hdfs/DistributedFileSystem.java | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 1df106a13ba..1e1a0d86ce0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -10,6 +10,9 @@ Release 2.7.1 - UNRELEASED HDFS-8081. Split getAdditionalBlock() into two methods. (shv) + HDFS-7931. DistributedFileSystem should not look for keyProvider in + cache if Encryption is disabled (asuresh) + OPTIMIZATIONS BUG FIXES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java index 455950636e4..a93ede3f5f7 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java @@ -3527,6 +3527,10 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory, } } + public boolean isHDFSEncryptionEnabled() { + return conf.get( + DFSConfigKeys.DFS_ENCRYPTION_KEY_PROVIDER_URI, null) != null; + } /** * Returns the SaslDataTransferClient configured for this DFSClient. * diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java index 9443eafd570..86002b647bd 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java @@ -2226,7 +2226,7 @@ public class DistributedFileSystem extends FileSystem { public Token[] addDelegationTokens( final String renewer, Credentials credentials) throws IOException { Token[] tokens = super.addDelegationTokens(renewer, credentials); - if (dfs.getKeyProvider() != null) { + if (dfs.isHDFSEncryptionEnabled()) { KeyProviderDelegationTokenExtension keyProviderDelegationTokenExtension = KeyProviderDelegationTokenExtension. createKeyProviderDelegationTokenExtension(dfs.getKeyProvider());