This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new 94b0b0de91 Add dedicated storeconfig test
94b0b0de91 is described below
commit 94b0b0de91ba3a1589bf4b5c247e6ac89dadc5a1
Author: remm <[email protected]>
AuthorDate: Thu Nov 14 14:20:18 2024 +0100
Add dedicated storeconfig test
---
.../catalina/storeconfig/TestStoreConfig.java | 147 +++++++++++++++++++++
1 file changed, 147 insertions(+)
diff --git a/test/org/apache/catalina/storeconfig/TestStoreConfig.java
b/test/org/apache/catalina/storeconfig/TestStoreConfig.java
new file mode 100644
index 0000000000..42fc8a5690
--- /dev/null
+++ b/test/org/apache/catalina/storeconfig/TestStoreConfig.java
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.catalina.storeconfig;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import org.apache.catalina.startup.Catalina;
+import org.apache.catalina.startup.Tomcat;
+import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.catalina.util.IOTools;
+import org.xml.sax.InputSource;
+
+public class TestStoreConfig extends TomcatBaseTest {
+
+ @Test
+ public void testListener() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+ tomcat.enableNaming();
+ StoreConfigLifecycleListener storeConfigListener = new
StoreConfigLifecycleListener();
+ tomcat.getServer().addLifecycleListener(storeConfigListener);
+
+ // Create various components (from generated embedded code; startup
errors must not be fatal)
+
+ org.apache.catalina.deploy.NamingResourcesImpl
tc_NamingResourcesImpl_11 = new
org.apache.catalina.deploy.NamingResourcesImpl();
+ org.apache.tomcat.util.descriptor.web.ContextResource
tc_ContextResource_12 = new
org.apache.tomcat.util.descriptor.web.ContextResource();
+ tc_ContextResource_12.setName("UserDatabase");
+ tc_ContextResource_12.setAuth("Container");
+ tc_ContextResource_12.setType("org.apache.catalina.UserDatabase");
+ tc_ContextResource_12.setDescription("User database that can be
updated and saved");
+ tc_ContextResource_12.setProperty("factory",
"org.apache.catalina.users.MemoryUserDatabaseFactory");
+ tc_ContextResource_12.setProperty("pathname", "conf/tomcat-users.xml");
+ tc_NamingResourcesImpl_11.addResource(tc_ContextResource_12);
+ tomcat.getServer().setGlobalNamingResources(tc_NamingResourcesImpl_11);
+
+ org.apache.catalina.core.StandardThreadExecutor
tc_StandardThreadExecutor_14 = new
org.apache.catalina.core.StandardThreadExecutor();
+ tc_StandardThreadExecutor_14.setName("tomcatThreadPool");
+ tc_StandardThreadExecutor_14.setNamePrefix("catalina-exec-");
+ tc_StandardThreadExecutor_14.setMaxThreads(Integer.valueOf("150"));
+ tc_StandardThreadExecutor_14.setMinSpareThreads(Integer.valueOf("4"));
+ tomcat.getService().addExecutor(tc_StandardThreadExecutor_14);
+
+ org.apache.coyote.http2.Http2Protocol tc_Http2Protocol_17 = new
org.apache.coyote.http2.Http2Protocol();
+ tomcat.getConnector().addUpgradeProtocol(tc_Http2Protocol_17);
+ tomcat.getConnector().setProperty("SSLEnabled", "true");
+ tomcat.getConnector().setScheme("https");
+ tomcat.getConnector().setSecure(Boolean.valueOf("true"));
+ tomcat.getConnector().setThrowOnFailure(false);
+
tomcat.getConnector().getProtocolHandler().setExecutor(tomcat.getService().getExecutor("tomcatThreadPool"));
+
+ org.apache.tomcat.util.net.SSLHostConfig tc_SSLHostConfig_22 = new
org.apache.tomcat.util.net.SSLHostConfig();
+ tc_SSLHostConfig_22.setProtocols("TLSv1.1+TLSv1.2");
+ tc_SSLHostConfig_22.setCertificateVerification("optionalNoCA");
+
tc_SSLHostConfig_22.setCertificateVerificationDepth(Integer.valueOf("3"));
+ org.apache.tomcat.util.net.SSLHostConfigCertificate
tc_SSLHostConfigCertificate_23 =
+ new
org.apache.tomcat.util.net.SSLHostConfigCertificate(tc_SSLHostConfig_22,
+
org.apache.tomcat.util.net.SSLHostConfigCertificate.Type.RSA);
+
tc_SSLHostConfigCertificate_23.setCertificateKeystoreFile("conf/localhost-rsa.jks");
+
tc_SSLHostConfigCertificate_23.setCertificateKeystorePassword("changeit");
+ tc_SSLHostConfig_22.addCertificate(tc_SSLHostConfigCertificate_23);
+ tomcat.getConnector().addSslHostConfig(tc_SSLHostConfig_22);
+
+ org.apache.catalina.ha.tcp.SimpleTcpCluster tc_SimpleTcpCluster_51 =
new org.apache.catalina.ha.tcp.SimpleTcpCluster();
+
+ org.apache.catalina.tribes.group.GroupChannel tc_GroupChannel_52 = new
org.apache.catalina.tribes.group.GroupChannel();
+
+ org.apache.catalina.tribes.membership.cloud.CloudMembershipService
tc_CloudMembershipService_53 =
+ new
org.apache.catalina.tribes.membership.cloud.CloudMembershipService();
+
tc_CloudMembershipService_53.setMembershipProviderClassName("org.apache.catalina.tribes.membership.cloud.KubernetesMembershipProvider");
+ tc_GroupChannel_52.setMembershipService(tc_CloudMembershipService_53);
+ tc_SimpleTcpCluster_51.setChannel(tc_GroupChannel_52);
+ tomcat.getEngine().setCluster(tc_SimpleTcpCluster_51);
+
+ org.apache.catalina.realm.LockOutRealm tc_LockOutRealm_55 = new
org.apache.catalina.realm.LockOutRealm();
+
+ org.apache.catalina.realm.UserDatabaseRealm tc_UserDatabaseRealm_56 =
+ new org.apache.catalina.realm.UserDatabaseRealm();
+ tc_UserDatabaseRealm_56.setResourceName("UserDatabase");
+
+ org.apache.catalina.realm.NestedCredentialHandler
tc_NestedCredentialHandler_57 =
+ new org.apache.catalina.realm.NestedCredentialHandler();
+
+ org.apache.catalina.realm.MessageDigestCredentialHandler
tc_MessageDigestCredentialHandler_58 =
+ new org.apache.catalina.realm.MessageDigestCredentialHandler();
+
tc_NestedCredentialHandler_57.addCredentialHandler(tc_MessageDigestCredentialHandler_58);
+
+ org.apache.catalina.realm.SecretKeyCredentialHandler
tc_SecretKeyCredentialHandler_59 =
+ new org.apache.catalina.realm.SecretKeyCredentialHandler();
+
tc_NestedCredentialHandler_57.addCredentialHandler(tc_SecretKeyCredentialHandler_59);
+
tc_UserDatabaseRealm_56.setCredentialHandler(tc_NestedCredentialHandler_57);
+ tc_LockOutRealm_55.addRealm(tc_UserDatabaseRealm_56);
+ tomcat.getEngine().setRealm(tc_LockOutRealm_55);
+
+ org.apache.catalina.valves.AccessLogValve tc_AccessLogValve_57 = new
org.apache.catalina.valves.AccessLogValve();
+ tc_AccessLogValve_57.setDirectory("logs");
+ tc_AccessLogValve_57.setPrefix("localhost_access_log");
+ tc_AccessLogValve_57.setSuffix(".txt");
+ tc_AccessLogValve_57.setPattern("%h %l %u %t \"%r\" %s %b");
+ tomcat.getHost().getPipeline().addValve(tc_AccessLogValve_57);
+
+ tomcat.start();
+
+ // Save configuration
+ storeConfigListener.getStoreConfig().storeConfig();
+
+ // Read written configuration
+ File serverXml = new File(tomcat.getServer().getCatalinaBase(),
Catalina.SERVER_XML);
+ Assert.assertTrue(serverXml.canRead());
+ addDeleteOnTearDown(serverXml);
+ String serverXmlDump = "";
+ try (FileReader reader = new FileReader(serverXml);
+ StringWriter writer = new StringWriter()) {
+ IOTools.flow(reader, writer);
+ serverXmlDump = writer.toString();
+ }
+
Assert.assertTrue(serverXmlDump.contains("StoreConfigLifecycleListener"));
+ Assert.assertTrue(serverXmlDump.contains("UserDatabaseRealm"));
+
Assert.assertTrue(serverXmlDump.contains("SecretKeyCredentialHandler"));
+
Assert.assertTrue(serverXmlDump.contains("certificateKeystorePassword="));
+ Assert.assertTrue(serverXmlDump.contains("+TLSv1.1"));
+ SAXParserFactory.newInstance().newSAXParser().getXMLReader().parse(new
InputSource(new StringReader(serverXmlDump)));
+
+ tomcat.stop();
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]