/// <summary>Sets up the KDC and a set of principals in the JAAS file</summary> /// <exception cref="System.Exception"/> public static void SetupKDCAndPrincipals() { // set up the KDC FilePath target = new FilePath(Runtime.GetProperty("test.dir", "target")); kdcWorkDir = new FilePath(target, "kdc"); kdcWorkDir.Mkdirs(); if (!kdcWorkDir.Mkdirs()) { NUnit.Framework.Assert.IsTrue(kdcWorkDir.IsDirectory()); } kdcConf = MiniKdc.CreateConf(); kdcConf.SetProperty(MiniKdc.Debug, "true"); kdc = new MiniKdc(kdcConf, kdcWorkDir); kdc.Start(); keytab_zk = CreateKeytab(Zookeeper, "zookeeper.keytab"); keytab_alice = CreateKeytab(Alice, "alice.keytab"); keytab_bob = CreateKeytab(Bob, "bob.keytab"); zkServerPrincipal = Shell.Windows ? Zookeeper1270001 : ZookeeperLocalhost; StringBuilder jaas = new StringBuilder(1024); jaas.Append(registrySecurity.CreateJAASEntry(ZookeeperClientContext, Zookeeper, keytab_zk )); jaas.Append(registrySecurity.CreateJAASEntry(ZookeeperServerContext, zkServerPrincipal , keytab_zk)); jaas.Append(registrySecurity.CreateJAASEntry(AliceClientContext, AliceLocalhost, keytab_alice)); jaas.Append(registrySecurity.CreateJAASEntry(BobClientContext, BobLocalhost, keytab_bob )); jaasFile = new FilePath(kdcWorkDir, "jaas.txt"); FileUtils.Write(jaasFile, jaas.ToString()); Log.Info("\n" + jaas); RegistrySecurity.BindJVMtoJAASFile(jaasFile); }