List of usage examples for org.apache.hadoop.minikdc MiniKdc createPrincipal
public synchronized void createPrincipal(File keytabFile, String... principals) throws Exception
From source file:fr.infologic.vei.sso.TestMiniKdc.java
License:Apache License
@Test public void testKerberosLogin() throws Exception { MiniKdc kdc = getKdc(); File workDir = getWorkDir();//w w w . j a v a 2s . c o m 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(); } } }