ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/test/org/apache/catalina/manager/TestHostManagerWebapp.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/test/org/apache/catalina/manager/TestHostManagerWebapp.java
Status
scanned
Type
file
Name
TestHostManagerWebapp.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
12324 (12.0 KB)
MD5
75b2c9b8c4509ee74005fc659f08270c
SHA1
650c18f32d2ed458aa53c4f4908d45a779fb7969
SHA256
c57d5ea9f681922266b6747f423230a589ce0c99a633733b49b748ca2fc311fc
SHA512

      
    
SHA1_git
ae7055bcb1a0c0be33405af9490f47086c7fcf07
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
TestHostManagerWebapp.java | 12.0 KB |

/* * 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.manager; import java.io.File; import java.io.FileReader; import java.io.PrintWriter; import java.io.StringWriter; import jakarta.servlet.http.HttpServletResponse; import org.junit.Assert; import org.junit.Test; import static org.apache.catalina.startup.SimpleHttpClient.CRLF; import org.apache.catalina.Context; import org.apache.catalina.authenticator.TestBasicAuthParser.BasicAuthHeader; import org.apache.catalina.realm.MemoryRealm; import org.apache.catalina.realm.MessageDigestCredentialHandler; import org.apache.catalina.startup.Catalina; import org.apache.catalina.startup.SimpleHttpClient; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; import org.apache.catalina.storeconfig.StoreConfigLifecycleListener; import org.apache.catalina.util.IOTools; public class TestHostManagerWebapp extends TomcatBaseTest { @Test public void testServlet() throws Exception { System.setProperty("catalina.home", getBuildDirectory().getAbsolutePath()); Tomcat tomcat = getTomcatInstance(); tomcat.setAddDefaultWebXmlToWebapp(false); tomcat.getServer().addLifecycleListener(new StoreConfigLifecycleListener()); File configFile = new File(getTemporaryDirectory(), "tomcat-users-host-manager.xml"); try (PrintWriter writer = new PrintWriter(configFile)) { writer.write(TestManagerWebapp.CONFIG); } addDeleteOnTearDown(configFile); MemoryRealm memoryRealm = new MemoryRealm(); memoryRealm.setCredentialHandler(new MessageDigestCredentialHandler()); memoryRealm.setPathname(configFile.getAbsolutePath()); tomcat.getEngine().setRealm(memoryRealm); File confFolder = new File(getTemporaryDirectory(), "conf"); confFolder.mkdirs(); File webappDir = new File(getBuildDirectory(), "webapps"); // Add host-manager webapp File appDir = new File(webappDir, "host-manager"); tomcat.addWebapp(null, "/host-manager", appDir.getAbsolutePath()); Context context = getProgrammaticRootContext(); Tomcat.addServlet(context, "hello", new HelloWorldServlet()); context.addServletMappingDecoded("/", "hello"); tomcat.start(); SimpleHttpClient client = new SimpleHttpClient() { @Override public boolean isResponseBodyOK() { return true; } }; client.setPort(getPort()); String basicHeader = (new BasicAuthHeader("Basic", "admin", "sekr3t")).getHeader().toString(); // @formatter:off client.setRequest(new String[] { "GET / HTTP/1.1" + CRLF + "Host: newhost" + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); // @formatter:off client.setRequest(new String[] { "GET /host-manager/html HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("/host-manager/css/manager.css")); // @formatter:off client.setRequest(new String[] { "GET /host-manager/text/list HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("[localhost]:[]")); // @formatter:off client.setRequest(new String[] { "GET /host-manager/text/add?name=newhost&aliases=bar&manager=true HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("[newhost]")); // @formatter:off client.setRequest(new String[] { "GET /host-manager/text/list HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("[newhost]:[bar]")); // @formatter:off client.setRequest(new String[] { "GET /manager/text/list HTTP/1.1" + CRLF + "Host: newhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("/manager:running")); // @formatter:off client.setRequest(new String[] { "GET /host-manager/text/stop?name=newhost HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("[newhost]")); // @formatter:off client.setRequest(new String[] { "GET /manager/text/list HTTP/1.1" + CRLF + "Host: newhost" + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("Hello")); // @formatter:off client.setRequest(new String[] { "GET /host-manager/text/start?name=newhost HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("[newhost]")); // @formatter:off client.setRequest(new String[] { "GET /manager/text/list HTTP/1.1" + CRLF + "Host: bar" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("/manager:running")); // @formatter:off client.setRequest(new String[] { "GET /host-manager/text/persist HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); 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("<Alias>bar</Alias>")); // @formatter:off client.setRequest(new String[] { "GET /host-manager/text/remove?name=newhost HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("[newhost]")); // @formatter:off client.setRequest(new String[] { "GET /manager/text/list HTTP/1.1" + CRLF + "Host: newhost" + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("Hello")); // @formatter:off client.setRequest(new String[] { "GET /host-manager/text/start?name=newhost HTTP/1.1" + CRLF + "Host: localhost" + CRLF + "Authorization: " + basicHeader + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("[newhost]")); // @formatter:off client.setRequest(new String[] { "GET /manager/text/list HTTP/1.1" + CRLF + "Host: newhost" + CRLF + "Connection: Close" + CRLF + CRLF }); // @formatter:on client.connect(); client.processRequest(true); Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode()); Assert.assertTrue(client.getResponseBody().contains("Hello")); tomcat.stop(); } }
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
11.23
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 9 9