Example usage for org.apache.hadoop.minikdc MiniKdc getRealm

List of usage examples for org.apache.hadoop.minikdc MiniKdc getRealm

Introduction

In this page you can find the example usage for org.apache.hadoop.minikdc MiniKdc getRealm.

Prototype

public String getRealm() 

Source Link

Document

Returns the realm of the MiniKdc.

Usage

From source file:fr.infologic.vei.sso.TestMiniKdc.java

License:Apache License

@Test
public void testKeytabGen() throws Exception {
    MiniKdc kdc = getKdc();
    File workDir = getWorkDir();//from  ww  w .  j a  v  a  2 s. c  o  m

    kdc.createPrincipal(new File(workDir, "keytab"), "foo/bar", "bar/foo");
    Keytab kt = Keytab.read(new File(workDir, "keytab"));
    Set<String> principals = new HashSet<String>();
    for (KeytabEntry entry : kt.getEntries()) {
        principals.add(entry.getPrincipalName());
    }
    //here principals use \ instead of /
    //because org.apache.directory.server.kerberos.shared.keytab.KeytabDecoder
    // .getPrincipalName(IoBuffer buffer) use \\ when generates principal
    Assert.assertEquals(
            new HashSet<String>(Arrays.asList("foo\\bar@" + kdc.getRealm(), "bar\\foo@" + kdc.getRealm())),
            principals);
}

From source file:fr.infologic.vei.sso.TestMiniKdc.java

License:Apache License

@Test
public void testKerberosLogin() throws Exception {
    MiniKdc kdc = getKdc();
    File workDir = getWorkDir();/*from ww  w .j  a v a 2  s  . com*/
    LoginContext loginContext = null;
    try {
        String principal = "foo";
        File keytab = new File(workDir, "foo.keytab");
        kdc.createPrincipal(keytab, principal);

        Set<Principal> principals = new HashSet<Principal>();
        principals.add(new KerberosPrincipal(principal));

        //client login
        Subject subject = new Subject(false, principals, new HashSet<Object>(), new HashSet<Object>());
        loginContext = new LoginContext("", subject, null,
                KerberosConfiguration.createClientConfig(principal, keytab));
        loginContext.login();
        subject = loginContext.getSubject();
        Assert.assertEquals(1, subject.getPrincipals().size());
        Assert.assertEquals(KerberosPrincipal.class, subject.getPrincipals().iterator().next().getClass());
        Assert.assertEquals(principal + "@" + kdc.getRealm(),
                subject.getPrincipals().iterator().next().getName());
        loginContext.logout();

        //server login
        subject = new Subject(false, principals, new HashSet<Object>(), new HashSet<Object>());
        loginContext = new LoginContext("", subject, null,
                KerberosConfiguration.createServerConfig(principal, keytab));
        loginContext.login();
        subject = loginContext.getSubject();
        Assert.assertEquals(1, subject.getPrincipals().size());
        Assert.assertEquals(KerberosPrincipal.class, subject.getPrincipals().iterator().next().getClass());
        Assert.assertEquals(principal + "@" + kdc.getRealm(),
                subject.getPrincipals().iterator().next().getName());
        loginContext.logout();

    } finally {
        if (loginContext != null) {
            loginContext.logout();
        }
    }
}