diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java index 80f803d80dab0..46e24be2c5d79 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java @@ -456,7 +456,7 @@ public String getPasswordString(String key) throws IOException { */ private String getMandatoryPasswordString(String key) throws IOException { String value = getPasswordString(key); - if (value == null) { + if (value == null || value.isEmpty()) { throw new ConfigurationPropertyNotFoundException(key); } return value; diff --git a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/TestAccountConfiguration.java b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/TestAccountConfiguration.java index 86bb2adbe56ed..c9f4dc9f434f8 100644 --- a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/TestAccountConfiguration.java +++ b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/TestAccountConfiguration.java @@ -382,6 +382,7 @@ public void testConfigPropNotFound() throws Throwable { for (String key : CONFIG_KEYS) { setAuthConfig(abfsConf, true, AuthType.OAuth); + abfsConf.unset(key); abfsConf.unset(key + "." + accountName); testMissingConfigKey(abfsConf, key); } @@ -390,6 +391,24 @@ public void testConfigPropNotFound() throws Throwable { unsetAuthConfig(abfsConf, true); } + @Test + public void testConfigPropEmptyString() throws Throwable { + final String accountName = "account"; + + final Configuration conf = new Configuration(); + final AbfsConfiguration abfsConf = new AbfsConfiguration(conf, accountName); + + for (String key : CONFIG_KEYS) { + setAuthConfig(abfsConf, true, AuthType.OAuth); + abfsConf.set(key, ""); + abfsConf.set(key + "." + accountName, ""); + testMissingConfigKey(abfsConf, key); + } + + unsetAuthConfig(abfsConf, false); + unsetAuthConfig(abfsConf, true); + } + private static void testMissingConfigKey(final AbfsConfiguration abfsConf, final String confKey) throws Throwable { GenericTestUtils.assertExceptionContains("Configuration property "