Преглед на файлове

HDFS-7931. DistributedFileSystem should not look for keyProvider in cache if Encryption is disabled (asuresh)

(cherry picked from commit 7660da95cb67cbfe034aa8fa2a5bf0f8c9fdf41a)
Arun Suresh преди 10 години
родител
ревизия
0a95b4f8aa

+ 3 - 0
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

+ 4 - 0
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.
    *

+ 1 - 1
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());