@Test(timeout = 60000) public void testKeytabGen() throws Exception { MiniKdc kdc = getKdc(); File workDir = getWorkDir(); kdc.createPrincipal(new File(workDir, "keytab"), "foo/bar", "bar/foo"); List<PrincipalName> principalNameList = Keytab.loadKeytab(new File(workDir, "keytab")).getPrincipals(); Set<String> principals = new HashSet<String>(); for (PrincipalName principalName : principalNameList) { principals.add(principalName.getName()); } Assert.assertEquals(new HashSet<String>(Arrays.asList( "foo/bar@" + kdc.getRealm(), "bar/foo@" + kdc.getRealm())), principals); }
/** * Dump a keytab: list all principals. * * @param keytabFile the keytab file * @throws IOException IO problems */ private void dumpKeytab(File keytabFile) throws IOException { title("Examining keytab %s", keytabFile); File kt = keytabFile.getCanonicalFile(); verifyFileIsValid(kt, CAT_KERBEROS, "keytab"); Keytab loadKeytab = Keytab.loadKeytab(kt); List<PrincipalName> principals = loadKeytab.getPrincipals(); println("keytab principal count: %d", principals.size()); int entrySize = 0; for (PrincipalName princ : principals) { List<KeytabEntry> entries = loadKeytab.getKeytabEntries(princ); entrySize = entrySize + entries.size(); for (KeytabEntry entry : entries) { EncryptionKey key = entry.getKey(); println(" %s: version=%d expires=%s encryption=%s", entry.getPrincipal(), entry.getKvno(), entry.getTimestamp(), key.getKeyType()); } } println("keytab entry count: %d", entrySize); endln(); }
/** * Get all the unique principals present in the keytabfile. * * @param keytabFileName * Name of the keytab file to be read. * @return list of unique principals in the keytab. * @throws IOException * If keytab entries cannot be read from the file. */ static final String[] getPrincipalNames(String keytabFileName) throws IOException { Keytab keytab = Keytab.loadKeytab(new File(keytabFileName)); Set<String> principals = new HashSet<String>(); List<PrincipalName> entries = keytab.getPrincipals(); for (PrincipalName entry : entries) { principals.add(entry.getName().replace("\\", "/")); } return principals.toArray(new String[0]); }
/** * Get all the unique principals present in the keytabfile. * * @param keytabFileName * Name of the keytab file to be read. * @return list of unique principals in the keytab. * @throws IOException * If keytab entries cannot be read from the file. */ static final String[] getPrincipalNames(String keytabFileName) throws IOException { Keytab keytab = Keytab.loadKeytab(new File(keytabFileName)); Set<String> principals = new HashSet<>(); List<PrincipalName> entries = keytab.getPrincipals(); for (PrincipalName entry : entries) { principals.add(entry.getName().replace("\\", "/")); } return principals.toArray(new String[0]); }
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); Keytab keytab = Keytab.loadKeytab(keytabFile); List<PrincipalName> principals = keytab.getPrincipals(); for (PrincipalName principal : principals) { List<KeytabEntry> keytabEntries = keytab.getKeytabEntries(principal);
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); Keytab keytab = Keytab.loadKeytab(keytabFile); List<PrincipalName> principals = keytab.getPrincipals(); for (PrincipalName principal : principals) { List<KeytabEntry> keytabEntries = keytab.getKeytabEntries(principal);