Java Code Examples for org.apache.catalina.realm.CombinedRealm#addRealm()
The following examples show how to use
org.apache.catalina.realm.CombinedRealm#addRealm() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TestRegistration.java From Tomcat8-Source-Read with MIT License | 4 votes |
@Test public void testMBeanDeregistration() throws Exception { final MBeanServer mbeanServer = Registry.getRegistry(null, null).getMBeanServer(); // Verify there are no Catalina or Tomcat MBeans Set<ObjectName> onames = mbeanServer.queryNames(new ObjectName("Catalina:*"), null); log.info(MBeanDumper.dumpBeans(mbeanServer, onames)); Assert.assertEquals("Unexpected: " + onames, 0, onames.size()); onames = mbeanServer.queryNames(new ObjectName("Tomcat:*"), null); log.info(MBeanDumper.dumpBeans(mbeanServer, onames)); Assert.assertEquals("Unexpected: " + onames, 0, onames.size()); final Tomcat tomcat = getTomcatInstance(); final File contextDir = new File(getTemporaryDirectory(), "webappFoo"); addDeleteOnTearDown(contextDir); if (!contextDir.mkdirs() && !contextDir.isDirectory()) { Assert.fail("Failed to create: [" + contextDir.toString() + "]"); } Context ctx = tomcat.addContext(contextName, contextDir.getAbsolutePath()); CombinedRealm combinedRealm = new CombinedRealm(); Realm nullRealm = new NullRealm(); combinedRealm.addRealm(nullRealm); ctx.setRealm(combinedRealm); tomcat.start(); getUrl("http://localhost:" + getPort()); // Verify there are no Catalina MBeans onames = mbeanServer.queryNames(new ObjectName("Catalina:*"), null); log.info(MBeanDumper.dumpBeans(mbeanServer, onames)); Assert.assertEquals("Found: " + onames, 0, onames.size()); // Verify there are the correct Tomcat MBeans onames = mbeanServer.queryNames(new ObjectName("Tomcat:*"), null); ArrayList<String> found = new ArrayList<>(onames.size()); for (ObjectName on: onames) { found.add(on.toString()); } // Create the list of expected MBean names String protocol = tomcat.getConnector().getProtocolHandlerClassName(); if (protocol.indexOf("Nio2") > 0) { protocol = "nio2"; } else if (protocol.indexOf("Apr") > 0) { protocol = "apr"; } else { protocol = "nio"; } String index = tomcat.getConnector().getProperty("nameIndex").toString(); ArrayList<String> expected = new ArrayList<>(Arrays.asList(basicMBeanNames())); expected.addAll(Arrays.asList(hostMBeanNames("localhost"))); expected.addAll(Arrays.asList(contextMBeanNames("localhost", contextName))); expected.addAll(Arrays.asList(connectorMBeanNames("auto-" + index, protocol))); expected.addAll(Arrays.asList(optionalMBeanNames("localhost"))); expected.addAll(Arrays.asList(requestMBeanNames( "auto-" + index + "-" + getPort(), protocol))); // Did we find all expected MBeans? ArrayList<String> missing = new ArrayList<>(expected); missing.removeAll(found); Assert.assertTrue("Missing Tomcat MBeans: " + missing, missing.isEmpty()); // Did we find any unexpected MBeans? List<String> additional = found; additional.removeAll(expected); Assert.assertTrue("Unexpected Tomcat MBeans: " + additional, additional.isEmpty()); tomcat.stop(); // There should still be some Tomcat MBeans onames = mbeanServer.queryNames(new ObjectName("Tomcat:*"), null); Assert.assertTrue("No Tomcat MBeans", onames.size() > 0); // add a new host StandardHost host = new StandardHost(); host.setName("otherhost"); tomcat.getEngine().addChild(host); final File contextDir2 = new File(getTemporaryDirectory(), "webappFoo2"); addDeleteOnTearDown(contextDir2); if (!contextDir2.mkdirs() && !contextDir2.isDirectory()) { Assert.fail("Failed to create: [" + contextDir2.toString() + "]"); } tomcat.addContext(host, contextName + "2", contextDir2.getAbsolutePath()); tomcat.start(); tomcat.stop(); tomcat.destroy(); // There should be no Catalina MBeans and no Tomcat MBeans onames = mbeanServer.queryNames(new ObjectName("Catalina:*"), null); log.info(MBeanDumper.dumpBeans(mbeanServer, onames)); Assert.assertEquals("Remaining: " + onames, 0, onames.size()); onames = mbeanServer.queryNames(new ObjectName("Tomcat:*"), null); log.info(MBeanDumper.dumpBeans(mbeanServer, onames)); Assert.assertEquals("Remaining: " + onames, 0, onames.size()); }