Este contenido no está disponible en el idioma seleccionado.
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.