Exemplo n.º 1
0
 @Test
 public void testGetPrincipalNamesMissingKeytab() {
   try {
     KerberosUtil.getPrincipalNames(testKeytab);
     Assert.fail("Exception should have been thrown");
   } catch (IOException e) {
     // expects exception
   }
 }
Exemplo n.º 2
0
 @Test
 public void testGetPrincipalNamesMissingPattern() throws IOException {
   createKeyTab(testKeytab, new String[] {"test/testhost@testRealm"});
   try {
     KerberosUtil.getPrincipalNames(testKeytab, null);
     Assert.fail("Exception should have been thrown");
   } catch (Exception e) {
     // expects exception
   }
 }
Exemplo n.º 3
0
  @Test
  public void testGetServerPrincipal() throws IOException {
    String service = "TestKerberosUtil";
    String localHostname = KerberosUtil.getLocalHostName();
    String testHost = "FooBar";

    // send null hostname
    Assert.assertEquals(
        "When no hostname is sent",
        service + "/" + localHostname.toLowerCase(Locale.ENGLISH),
        KerberosUtil.getServicePrincipal(service, null));
    // send empty hostname
    Assert.assertEquals(
        "When empty hostname is sent",
        service + "/" + localHostname.toLowerCase(Locale.ENGLISH),
        KerberosUtil.getServicePrincipal(service, ""));
    // send 0.0.0.0 hostname
    Assert.assertEquals(
        "When 0.0.0.0 hostname is sent",
        service + "/" + localHostname.toLowerCase(Locale.ENGLISH),
        KerberosUtil.getServicePrincipal(service, "0.0.0.0"));
    // send uppercase hostname
    Assert.assertEquals(
        "When uppercase hostname is sent",
        service + "/" + testHost.toLowerCase(Locale.ENGLISH),
        KerberosUtil.getServicePrincipal(service, testHost));
    // send lowercase hostname
    Assert.assertEquals(
        "When lowercase hostname is sent",
        service + "/" + testHost.toLowerCase(Locale.ENGLISH),
        KerberosUtil.getServicePrincipal(service, testHost.toLowerCase(Locale.ENGLISH)));
  }
Exemplo n.º 4
0
  @Test
  public void testGetPrincipalNamesFromKeytab() throws IOException {
    createKeyTab(testKeytab, testPrincipals);
    // read all principals in the keytab file
    String[] principals = KerberosUtil.getPrincipalNames(testKeytab);
    Assert.assertNotNull("principals cannot be null", principals);

    int expectedSize = 0;
    List<String> principalList = Arrays.asList(principals);
    for (String principal : testPrincipals) {
      Assert.assertTrue("missing principal " + principal, principalList.contains(principal));
      expectedSize++;
    }
    Assert.assertEquals(expectedSize, principals.length);
  }
Exemplo n.º 5
0
  @Test
  public void testGetPrincipalNamesFromKeytabWithPattern() throws IOException {
    createKeyTab(testKeytab, testPrincipals);
    // read the keytab file
    // look for principals with HTTP as the first part
    Pattern httpPattern = Pattern.compile("HTTP/.*");
    String[] httpPrincipals = KerberosUtil.getPrincipalNames(testKeytab, httpPattern);
    Assert.assertNotNull("principals cannot be null", httpPrincipals);

    int expectedSize = 0;
    List<String> httpPrincipalList = Arrays.asList(httpPrincipals);
    for (String principal : testPrincipals) {
      if (httpPattern.matcher(principal).matches()) {
        Assert.assertTrue("missing principal " + principal, httpPrincipalList.contains(principal));
        expectedSize++;
      }
    }
    Assert.assertEquals(expectedSize, httpPrincipals.length);
  }