HADOOP-12076. Incomplete Cache Mechanism in CredentialProvider API. Contributed by Larry McCay.
(cherry picked from commit fbf55dcaf45285e1795cb107e7846799e4042b0b) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/63f3c24b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/63f3c24b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/63f3c24b Branch: refs/heads/branch-2 Commit: 63f3c24bb09ecd97c72b2f23d8613b1a11756468 Parents: 4bfbc6b Author: cnauroth <[email protected]> Authored: Tue Jun 16 14:44:03 2015 -0700 Committer: cnauroth <[email protected]> Committed: Tue Jun 16 14:44:14 2015 -0700 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../security/alias/AbstractJavaKeyStoreProvider.java | 15 +-------------- 2 files changed, 4 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/63f3c24b/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 f6b4345..d9ba06b 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -374,6 +374,9 @@ Release 2.8.0 - UNRELEASED HADOOP-12095. org.apache.hadoop.fs.shell.TestCount fails. (Brahma Reddy Battula via aajisaka) + HADOOP-12076. Incomplete Cache Mechanism in CredentialProvider API. + (Larry McCay via cnauroth) + Release 2.7.1 - UNRELEASED INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/63f3c24b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/alias/AbstractJavaKeyStoreProvider.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/alias/AbstractJavaKeyStoreProvider.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/alias/AbstractJavaKeyStoreProvider.java index 76b8cd5..9656261 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/alias/AbstractJavaKeyStoreProvider.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/alias/AbstractJavaKeyStoreProvider.java @@ -41,9 +41,7 @@ import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; import java.util.ArrayList; import java.util.Enumeration; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -174,13 +172,6 @@ public abstract class AbstractJavaKeyStoreProvider extends CredentialProvider { return keyStore; } - public Map<String, CredentialEntry> getCache() { - return cache; - } - - private final Map<String, CredentialEntry> cache = - new HashMap<String, CredentialEntry>(); - protected final String getPathAsString() { return getPath().toString(); } @@ -213,9 +204,6 @@ public abstract class AbstractJavaKeyStoreProvider extends CredentialProvider { try { SecretKeySpec key = null; try { - if (cache.containsKey(alias)) { - return cache.get(alias); - } if (!keyStore.containsAlias(alias)) { return null; } @@ -269,7 +257,7 @@ public abstract class AbstractJavaKeyStoreProvider extends CredentialProvider { throws IOException { writeLock.lock(); try { - if (keyStore.containsAlias(alias) || cache.containsKey(alias)) { + if (keyStore.containsAlias(alias)) { throw new IOException("Credential " + alias + " already exists in " + this); } @@ -296,7 +284,6 @@ public abstract class AbstractJavaKeyStoreProvider extends CredentialProvider { } catch (KeyStoreException e) { throw new IOException("Problem removing " + name + " from " + this, e); } - cache.remove(name); changed = true; } finally { writeLock.unlock();
