Repository: incubator-slider Updated Branches: refs/heads/develop d5aebbbb5 -> 098507719
SLIDER-1186 Slider incorrectly assumes that keytabs are provided for AM Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/09850771 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/09850771 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/09850771 Branch: refs/heads/develop Commit: 0985077198c21cee6789d8413ecfb034e1546764 Parents: d5aebbb Author: Gour Saha <gourks...@apache.org> Authored: Mon Jan 16 15:47:50 2017 -0800 Committer: Gour Saha <gourks...@apache.org> Committed: Mon Jan 16 15:47:50 2017 -0800 ---------------------------------------------------------------------- .../security/SecurityConfiguration.java | 18 ++++++++++-------- .../security/SecurityConfigurationTest.groovy | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/09850771/slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java index 9a89c39..27fb0d7 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java @@ -17,6 +17,8 @@ package org.apache.slider.server.appmaster.security; import com.google.common.base.Preconditions; + +import org.apache.commons.lang.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import static org.apache.slider.core.main.LauncherExitCodes.EXIT_UNAUTHORIZED; @@ -126,14 +128,14 @@ public class SecurityConfiguration { } public boolean isKeytabProvided() { - boolean keytabProvided = instanceDefinition.getAppConfOperations() - .getComponent(SliderKeys.COMPONENT_AM) - .get(SliderXmlConfKeys.KEY_AM_KEYTAB_LOCAL_PATH) != null || - instanceDefinition.getAppConfOperations() - .getComponent(SliderKeys.COMPONENT_AM). - get(SliderXmlConfKeys.KEY_AM_LOGIN_KEYTAB_NAME) != null; - return keytabProvided; - + String keytabLocalPath = instanceDefinition.getAppConfOperations() + .getComponent(SliderKeys.COMPONENT_AM) + .get(SliderXmlConfKeys.KEY_AM_KEYTAB_LOCAL_PATH); + String keytabName = instanceDefinition.getAppConfOperations() + .getComponent(SliderKeys.COMPONENT_AM) + .get(SliderXmlConfKeys.KEY_AM_LOGIN_KEYTAB_NAME); + return StringUtils.isNotBlank(keytabLocalPath) + || StringUtils.isNotBlank(keytabName); } public File getKeytabFile(AggregateConf instanceDefinition) http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/09850771/slider-core/src/test/groovy/org/apache/slider/server/appmaster/security/SecurityConfigurationTest.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/security/SecurityConfigurationTest.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/security/SecurityConfigurationTest.groovy index e543b7c..be1205b 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/security/SecurityConfigurationTest.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/security/SecurityConfigurationTest.groovy @@ -159,4 +159,23 @@ public class SecurityConfigurationTest { securityConfiguration.getKeytabFile(aggregateConf).getAbsolutePath() } + @Test + public void testAMKeytabProvided() throws Throwable { + Configuration config = new Configuration() + AggregateConf aggregateConf = new AggregateConf(); + MapOperations compOps = + aggregateConf.appConfOperations.getOrAddComponent(SliderKeys.COMPONENT_AM) + compOps.put(SliderXmlConfKeys.KEY_AM_KEYTAB_LOCAL_PATH, " ") + + SecurityConfiguration securityConfiguration = + new SecurityConfiguration(config, aggregateConf, "testCluster") + assert !securityConfiguration.isKeytabProvided() + + compOps.put(SliderXmlConfKeys.KEY_AM_LOGIN_KEYTAB_NAME, "") + assert !securityConfiguration.isKeytabProvided() + + compOps.put(SliderXmlConfKeys.KEY_AM_LOGIN_KEYTAB_NAME, "some.keytab") + assert securityConfiguration.isKeytabProvided() + } + }