このコンテンツは選択した言語では利用できません。
Chapter 15. Example of Authentication
The following is a test case for the default implementation's
JBossAuthenticationManager.
package org.jboss.test.authentication; import java.security.Principal; import java.util.HashMap; import javax.security.auth.login.AppConfigurationEntry; import javax.security.auth.login.Configuration; import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag; import org.jboss.security.AuthenticationManager; import org.jboss.security.SimplePrincipal; import org.jboss.security.auth.callback.AppCallbackHandler; import org.jboss.security.plugins.JBossAuthenticationManager; import junit.framework.TestCase; //$Id$ /** * Unit tests for the JBossAuthenticationManager */ public class JBossAuthenticationManagerUnitTestCase extends TestCase { @Override protected void setUp() throws Exception { super.setUp(); establishSecurityConfiguration(); } public void testSecurityDomain() throws Exception { AuthenticationManager am = new JBossAuthenticationManager("test1", new AppCallbackHandler("a","b".toCharArray())); assertEquals("test1", am.getSecurityDomain()); } public void testLogin() throws Exception { Principal p = new SimplePrincipal("jduke"); AppCallbackHandler acbh = new AppCallbackHandler("jduke","theduke".toCharArray()); AuthenticationManager am = new JBossAuthenticationManager("test",acbh); assertTrue(am.isValid(p, "theduke")); assertNotNull("Subject is valid",am.getActiveSubject()); assertTrue("Principal is present", am.getActiveSubject().getPrincipals().contains(p)); } public void testUnsuccessfulLogin() throws Exception { Principal p = new SimplePrincipal("jduke"); AppCallbackHandler acbh = new AppCallbackHandler("jduke","bad".toCharArray()); AuthenticationManager am = new JBossAuthenticationManager("test",acbh); assertFalse(am.isValid(p, "bad")); } public void testSecurityCache() throws Exception { Principal p = new SimplePrincipal("jduke"); AppCallbackHandler acbh = new AppCallbackHandler("jduke","theduke".toCharArray()); JBossAuthenticationManager am = new JBossAuthenticationManager("test",acbh); assertFalse("Cache Validation is false", am.fromCache()); assertTrue(am.isValid(p, "theduke")); assertNotNull("Subject is valid",am.getActiveSubject()); assertTrue("Principal is present", am.getActiveSubject().getPrincipals().contains(p)); assertFalse("Cache Validation is false", am.fromCache()); assertTrue(am.isValid(p, "theduke")); assertTrue("Cache Validation", am.fromCache()); assertTrue(am.isValid(p, "theduke")); assertTrue("Cache Validation", am.fromCache()); acbh = new AppCallbackHandler("jduke","dummy".toCharArray()); am = new JBossAuthenticationManager("test",acbh); assertFalse(am.isValid(p, "dummy")); assertFalse("Cache Validation is false", am.fromCache()); } public void testSecurityCacheInjection() throws Exception { Principal p = new SimplePrincipal("jduke"); AppCallbackHandler acbh = new AppCallbackHandler("jduke","theduke".toCharArray()); JBossAuthenticationManager am = new JBossAuthenticationManager("test",acbh); am.setSecurityCache(TestSecurityCache.class.getName()); assertFalse("Cache Validation is false", am.fromCache()); assertTrue(am.isValid(p, "theduke")); assertNotNull("Subject is valid",am.getActiveSubject()); assertTrue("Principal is present", am.getActiveSubject().getPrincipals().contains(p)); assertFalse("Cache Validation is false", am.fromCache()); assertTrue(am.isValid(p, "theduke")); assertTrue("Cache Validation", am.fromCache()); assertTrue(am.isValid(p, "theduke")); assertTrue("Cache Validation", am.fromCache()); acbh = new AppCallbackHandler("jduke","dummy".toCharArray()); am = new JBossAuthenticationManager("test",acbh); assertFalse(am.isValid(p, "dummy")); assertFalse("Cache Validation is false", am.fromCache()); } private void establishSecurityConfiguration() { Configuration.setConfiguration(new TestConfig()); } public class TestConfig extends Configuration { @Override public AppConfigurationEntry[] getAppConfigurationEntry(String name) { HashMap map = new HashMap(); map.put("usersProperties", "users.properties"); map.put("rolesProperties", "roles.properties"); String moduleName = "org.jboss.security.auth.spi.UsersRolesLoginModule"; AppConfigurationEntry ace = new AppConfigurationEntry(moduleName, LoginModuleControlFlag.REQUIRED, map); return new AppConfigurationEntry[]{ace}; } @Override public void refresh() { } } }
package org.jboss.test.authentication;
import java.security.Principal;
import java.util.HashMap;
import javax.security.auth.login.AppConfigurationEntry;
import javax.security.auth.login.Configuration;
import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
import org.jboss.security.AuthenticationManager;
import org.jboss.security.SimplePrincipal;
import org.jboss.security.auth.callback.AppCallbackHandler;
import org.jboss.security.plugins.JBossAuthenticationManager;
import junit.framework.TestCase;
//$Id$
/**
* Unit tests for the JBossAuthenticationManager
*/
public class JBossAuthenticationManagerUnitTestCase extends TestCase
{
@Override
protected void setUp() throws Exception
{
super.setUp();
establishSecurityConfiguration();
}
public void testSecurityDomain() throws Exception
{
AuthenticationManager am = new JBossAuthenticationManager("test1",
new AppCallbackHandler("a","b".toCharArray()));
assertEquals("test1", am.getSecurityDomain());
}
public void testLogin() throws Exception
{
Principal p = new SimplePrincipal("jduke");
AppCallbackHandler acbh = new AppCallbackHandler("jduke","theduke".toCharArray());
AuthenticationManager am = new JBossAuthenticationManager("test",acbh);
assertTrue(am.isValid(p, "theduke"));
assertNotNull("Subject is valid",am.getActiveSubject());
assertTrue("Principal is present",
am.getActiveSubject().getPrincipals().contains(p));
}
public void testUnsuccessfulLogin() throws Exception
{
Principal p = new SimplePrincipal("jduke");
AppCallbackHandler acbh = new AppCallbackHandler("jduke","bad".toCharArray());
AuthenticationManager am = new JBossAuthenticationManager("test",acbh);
assertFalse(am.isValid(p, "bad"));
}
public void testSecurityCache() throws Exception
{
Principal p = new SimplePrincipal("jduke");
AppCallbackHandler acbh = new AppCallbackHandler("jduke","theduke".toCharArray());
JBossAuthenticationManager am = new JBossAuthenticationManager("test",acbh);
assertFalse("Cache Validation is false", am.fromCache());
assertTrue(am.isValid(p, "theduke"));
assertNotNull("Subject is valid",am.getActiveSubject());
assertTrue("Principal is present",
am.getActiveSubject().getPrincipals().contains(p));
assertFalse("Cache Validation is false", am.fromCache());
assertTrue(am.isValid(p, "theduke"));
assertTrue("Cache Validation", am.fromCache());
assertTrue(am.isValid(p, "theduke"));
assertTrue("Cache Validation", am.fromCache());
acbh = new AppCallbackHandler("jduke","dummy".toCharArray());
am = new JBossAuthenticationManager("test",acbh);
assertFalse(am.isValid(p, "dummy"));
assertFalse("Cache Validation is false", am.fromCache());
}
public void testSecurityCacheInjection() throws Exception
{
Principal p = new SimplePrincipal("jduke");
AppCallbackHandler acbh = new AppCallbackHandler("jduke","theduke".toCharArray());
JBossAuthenticationManager am = new JBossAuthenticationManager("test",acbh);
am.setSecurityCache(TestSecurityCache.class.getName());
assertFalse("Cache Validation is false", am.fromCache());
assertTrue(am.isValid(p, "theduke"));
assertNotNull("Subject is valid",am.getActiveSubject());
assertTrue("Principal is present",
am.getActiveSubject().getPrincipals().contains(p));
assertFalse("Cache Validation is false", am.fromCache());
assertTrue(am.isValid(p, "theduke"));
assertTrue("Cache Validation", am.fromCache());
assertTrue(am.isValid(p, "theduke"));
assertTrue("Cache Validation", am.fromCache());
acbh = new AppCallbackHandler("jduke","dummy".toCharArray());
am = new JBossAuthenticationManager("test",acbh);
assertFalse(am.isValid(p, "dummy"));
assertFalse("Cache Validation is false", am.fromCache());
}
private void establishSecurityConfiguration()
{
Configuration.setConfiguration(new TestConfig());
}
public class TestConfig extends Configuration
{
@Override
public AppConfigurationEntry[] getAppConfigurationEntry(String name)
{
HashMap map = new HashMap();
map.put("usersProperties", "users.properties");
map.put("rolesProperties", "roles.properties");
String moduleName = "org.jboss.security.auth.spi.UsersRolesLoginModule";
AppConfigurationEntry ace = new AppConfigurationEntry(moduleName,
LoginModuleControlFlag.REQUIRED, map);
return new AppConfigurationEntry[]{ace};
}
@Override
public void refresh()
{
}
}
}
This test case should be used with the Java Authentication and Authorization Service (JAAS) configuration.