org.apache.catalina.realm.CombinedRealm Java Examples
The following examples show how to use
org.apache.catalina.realm.CombinedRealm.
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: RealmSF.java From Tomcat8-Source-Read with MIT License | 6 votes |
@Override public void store(PrintWriter aWriter, int indent, Object aElement) throws Exception { if (aElement instanceof CombinedRealm) { StoreDescription elementDesc = getRegistry().findDescription( aElement.getClass()); if (elementDesc != null) { if (log.isDebugEnabled()) log.debug(sm.getString("factory.storeTag", elementDesc.getTag(), aElement)); getStoreAppender().printIndent(aWriter, indent + 2); getStoreAppender().printOpenTag(aWriter, indent + 2, aElement, elementDesc); storeChildren(aWriter, indent + 2, aElement, elementDesc); getStoreAppender().printIndent(aWriter, indent + 2); getStoreAppender().printCloseTag(aWriter, elementDesc); } else { if (log.isWarnEnabled()) log.warn(sm.getString("factory.storeNoDescriptor", aElement.getClass())); } } else { super.store(aWriter, indent, aElement); } }
Example #2
Source File: RealmSF.java From Tomcat8-Source-Read with MIT License | 6 votes |
/** * Store the specified Realm properties and child (Realm) * * @param aWriter * PrintWriter to which we are storing * @param indent * Number of spaces to indent this element * @param aRealm * Realm whose properties are being stored * * @exception Exception * if an exception occurs while storing */ @Override public void storeChildren(PrintWriter aWriter, int indent, Object aRealm, StoreDescription parentDesc) throws Exception { if (aRealm instanceof CombinedRealm) { CombinedRealm combinedRealm = (CombinedRealm) aRealm; // Store nested <Realm> element Realm[] realms = combinedRealm.getNestedRealms(); storeElementArray(aWriter, indent, realms); } // Store nested <CredentialHandler> element CredentialHandler credentialHandler = ((Realm) aRealm).getCredentialHandler(); if (credentialHandler != null) { storeElement(aWriter, indent, credentialHandler); } }
Example #3
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()); }