List of usage examples for org.apache.hadoop.minikdc MiniKdc getRealm
public String getRealm()
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(); } } }