diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java index 7f70d98..41f2503 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/WebApps.java @@ -222,11 +222,22 @@ public void setup() { .setACL(new AdminACLsManager(conf).getAdminAcl()) .setPathSpec(pathList.toArray(new String[0])); - boolean hasSpnegoConf = spnegoPrincipalKey != null - && spnegoKeytabKey != null; + // NOTICE: Some unit tests currently need to start a yarn server with + // security enabled but without principal/keytab setup. In order to + // keep those test from failing, a warning is logged instead of throwing + // error. Those tests can be fixed later. + boolean hasSpnegoConf = true; + if (spnegoPrincipalKey == null || conf.get(spnegoPrincipalKey, "").isEmpty()) { + LOG.warn("Principal for spnego filter is not set"); + hasSpnegoConf = false; + } + if (spnegoKeytabKey == null || conf.get(spnegoKeytabKey, "").isEmpty()) { + LOG.warn("Keytab for spnego filter is not set"); + hasSpnegoConf = false; + } if (hasSpnegoConf) { - builder.setUsernameConfKey(conf.get(spnegoPrincipalKey)) - .setKeytabConfKey(conf.get(spnegoKeytabKey)) + builder.setUsernameConfKey(spnegoPrincipalKey) + .setKeytabConfKey(spnegoKeytabKey) .setSecurityEnabled(UserGroupInformation.isSecurityEnabled()); } HttpServer server = builder.build();