1 22 package org.jboss.test.jmx.test; 23 24 import javax.management.MBeanInfo ; 25 import javax.management.MBeanServerConnection ; 26 import javax.management.ObjectName ; 27 import javax.naming.InitialContext ; 28 import javax.security.auth.login.LoginContext ; 29 30 import junit.framework.Test; 31 import junit.framework.TestSuite; 32 33 import org.jboss.test.JBossTestCase; 34 import org.jboss.test.JBossTestSetup; 35 import org.jboss.test.util.AppCallbackHandler; 36 37 39 47 public class RMIAdaptorAuthorizationUnitTestCase extends JBossTestCase 48 { 49 public RMIAdaptorAuthorizationUnitTestCase(String name) 50 { 51 super(name); 52 } 53 54 59 public void testConfigurableRolesAuthorizedAccess() throws Exception 60 { 61 LoginContext lc = login("admin", "admin".toCharArray()); 62 InitialContext ctx = getInitialContext(); 63 MBeanServerConnection conn = (MBeanServerConnection ) ctx.lookup("jmx/invoker/ConfigurableAuthorizedRMIAdaptor"); 64 ObjectName server = new ObjectName ("jboss.system:type=Server"); 65 String version = (String ) conn.getAttribute(server, "Version"); 66 log.info("Obtained server version: "+version); 67 MBeanInfo info = conn.getMBeanInfo(server); 68 assertNotNull("MBeanInfo != null", info); 69 Integer mbeanCount = conn.getMBeanCount(); 70 assertNotNull("mbeanCount != null", mbeanCount); 71 lc.logout(); 72 } 73 74 78 public void testUnAuthorizedAccess() throws Exception 79 { 80 InitialContext ctx = getInitialContext(); 81 MBeanServerConnection conn = (MBeanServerConnection ) ctx.lookup("jmx/invoker/ConfigurableAuthorizedRMIAdaptor"); 82 ObjectName server = new ObjectName ("jboss.system:type=Server"); 83 try 84 { 85 String version = (String ) conn.getAttribute(server, "Version"); 86 log.info("Obtained server version: "+version); 87 fail("Was able to get server Version attribute"); 88 } 89 catch(Exception e) 90 { 91 log.info("Access failed as expected", e); 92 } 93 } 94 95 public static Test suite() 96 throws Exception 97 { 98 TestSuite suite = new TestSuite(); 99 suite.addTest(new TestSuite(RMIAdaptorAuthorizationUnitTestCase.class)); 100 101 JBossTestSetup wrapper = new JBossTestSetup(suite) 102 { 103 protected void setUp() throws Exception 104 { 105 deploymentException = null; 106 try 107 { 108 this.delegate.init(); 109 redeploy("jmxinvoker-authorization-test.jar"); 110 redeploy(getResourceURL("jmx/jmxadaptor/authorization-jmx-invoker-service.xml")); 112 redeploy(getResourceURL("jmx/jmxadaptor/jaas-service.xml")); 113 } 114 catch (Exception ex) 115 { 116 deploymentException = ex; 118 } 119 } 120 121 protected void tearDown() throws Exception 122 { 123 undeploy(getResourceURL("jmx/jmxadaptor/authorization-jmx-invoker-service.xml")); 124 undeploy("jmxinvoker-authorization-test.jar"); 125 undeploy(getResourceURL("jmx/jmxadaptor/jaas-service.xml")); 126 } 127 }; 128 return wrapper; 129 } 130 131 private LoginContext login(String username, char[] password) throws Exception 132 { 133 String confName = System.getProperty("conf.name", "other"); 134 AppCallbackHandler handler = new AppCallbackHandler(username, password); 135 log.debug("Creating LoginContext("+confName+")"); 136 LoginContext lc = new LoginContext (confName, handler); 137 lc.login(); 138 log.debug("Created LoginContext, subject="+lc.getSubject()); 139 return lc; 140 } 141 } 142 | Popular Tags |