1 17 18 package org.apache.geronimo.security.jaas; 19 20 import org.apache.geronimo.gbean.AbstractName; 21 import org.apache.geronimo.gbean.GBeanData; 22 import org.apache.geronimo.gbean.AbstractNameQuery; 23 import org.apache.geronimo.security.AbstractTest; 24 import org.apache.geronimo.security.ContextManager; 25 import org.apache.geronimo.security.RealmPrincipal; 26 27 import javax.security.auth.Subject ; 28 import javax.security.auth.login.LoginContext ; 29 import javax.security.auth.login.LoginException ; 30 import java.util.Properties ; 31 32 33 41 public class LoginKerberosNonGeronimoTest extends AbstractTest { 42 43 protected AbstractName kerberosCE; 44 protected AbstractName kerberosLM; 45 46 53 public void setUp() throws Exception { 54 needLoginConfiguration = true; 55 super.setUp(); 56 57 GBeanData gbean; 58 59 gbean = buildGBeanData("name", "KerberosLoginModule", LoginModuleGBean.getGBeanInfo()); 60 kerberosLM = gbean.getAbstractName(); 61 gbean.setAttribute("loginModuleClass", "com.sun.security.auth.module.Krb5LoginModule"); 62 gbean.setAttribute("serverSide", Boolean.TRUE); Properties props = new Properties (); 64 props.put("debug", "true"); 65 props.put("useTicketCache", "true"); 66 props.put("doNotPrompt", "true"); 67 gbean.setAttribute("options", props); 68 kernel.loadGBean(gbean, LoginModuleGBean.class.getClassLoader()); 69 70 gbean = buildGBeanData("name", "kerberosConfigurationEntry", DirectConfigurationEntry.getGBeanInfo()); 71 kerberosCE = gbean.getAbstractName(); 72 gbean.setAttribute("applicationConfigName", "kerberos-foobar"); 73 gbean.setAttribute("controlFlag", LoginModuleControlFlag.REQUIRED); 74 gbean.setReferencePattern("Module", kerberosLM); 75 kernel.loadGBean(gbean, DirectConfigurationEntry.class.getClassLoader()); 76 77 kernel.startGBean(loginConfiguration); 78 kernel.startGBean(kerberosLM); 79 kernel.startGBean(kerberosCE); 80 } 81 82 88 public void tearDown() throws Exception { 89 kernel.stopGBean(kerberosCE); 90 kernel.stopGBean(kerberosLM); 91 kernel.stopGBean(loginConfiguration); 92 93 kernel.unloadGBean(kerberosCE); 94 kernel.unloadGBean(kerberosLM); 95 kernel.unloadGBean(loginConfiguration); 96 97 super.tearDown(); 98 } 99 100 107 public void testLogin() throws Exception { 108 109 try { 110 LoginContext context = new LoginContext ("kerberos-foobar"); 111 112 context.login(); 113 Subject subject = context.getSubject(); 114 115 assertTrue("expected non-null subject", subject != null); 116 assertTrue("id of subject should be null", ContextManager.getSubjectId(subject) == null); 117 assertEquals("subject should have one principal", 1, subject.getPrincipals().size()); 118 assertEquals("subject should have no realm principal", 0, subject.getPrincipals(RealmPrincipal.class).size()); 119 120 context.logout(); 121 } catch (LoginException e) { 122 e.printStackTrace(); 123 } 125 } 126 } 127 | Popular Tags |