protected static TestingServer getZKServer() throws Exception {
if (!kerberos) {
LOGGER.info("Creating a non-security ZooKeeper Server.");
return new TestingServer();
} else {
LOGGER.info("Creating a security ZooKeeper Server.");
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
kdc = getKdc();
ZKKeytabFile = new File(kdcWorkDir, "test.keytab");
kdc.createPrincipal(ZKKeytabFile, ZK_SERVER_PRINCIPAL);
System.setProperty("zookeeper.authProvider.1", "org.apache.zookeeper.server.auth.SASLAuthenticationProvider");
System.setProperty("zookeeper.kerberos.removeHostFromPrincipal", "true");
System.setProperty("zookeeper.kerberos.removeRealmFromPrincipal", "true");
JaasConfiguration.addEntryForKeytab("Server", ZK_SERVER_PRINCIPAL, ZKKeytabFile.getAbsolutePath());
JaasConfiguration.addEntryForKeytab(HAContext.SENTRY_ZK_JAAS_NAME,
SERVER_KERBEROS_NAME, serverKeytab.getAbsolutePath());
javax.security.auth.login.Configuration.setConfiguration(JaasConfiguration.getInstance());
System.setProperty(ZooKeeperSaslServer.LOGIN_CONTEXT_NAME_KEY, "Server");
return new TestingServer();
}
}