Search in sources :

Example 6 with ExampleServlet

use of cn.taketoday.test.web.servlet.ExampleServlet in project today-infrastructure by TAKETODAY.

the class UndertowServletWebServerFactoryTests method testAccessLog.

private void testAccessLog(String prefix, String suffix, String expectedFile) throws IOException, URISyntaxException {
    UndertowServletWebServerFactory factory = getFactory();
    factory.setAccessLogEnabled(true);
    factory.setAccessLogPrefix(prefix);
    factory.setAccessLogSuffix(suffix);
    File accessLogDirectory = this.tempDir;
    factory.setAccessLogDirectory(accessLogDirectory);
    assertThat(accessLogDirectory.listFiles()).isEmpty();
    this.webServer = factory.getWebServer(new ServletRegistrationBean<>(new ExampleServlet(), "/hello"));
    this.webServer.start();
    Assertions.assertThat(getResponse(getLocalUrl("/hello"))).isEqualTo("Hello World");
    File accessLog = new File(accessLogDirectory, expectedFile);
    awaitFile(accessLog);
    assertThat(accessLogDirectory.listFiles()).contains(accessLog);
}
Also used : ServletRegistrationBean(cn.taketoday.framework.web.servlet.ServletRegistrationBean) File(java.io.File) ExampleServlet(cn.taketoday.test.web.servlet.ExampleServlet)

Example 7 with ExampleServlet

use of cn.taketoday.test.web.servlet.ExampleServlet in project today-framework by TAKETODAY.

the class UndertowServletWebServerFactoryTests method errorPage404.

@Test
void errorPage404() throws Exception {
    AbstractServletWebServerFactory factory = getFactory();
    factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/hello"));
    this.webServer = factory.getWebServer(new ServletRegistrationBean<>(new ExampleServlet(), "/hello"));
    this.webServer.start();
    Assertions.assertThat(getResponse(getLocalUrl("/hello"))).isEqualTo("Hello World");
    Assertions.assertThat(getResponse(getLocalUrl("/not-found"))).isEqualTo("Hello World");
}
Also used : ErrorPage(cn.taketoday.framework.web.server.ErrorPage) AbstractServletWebServerFactory(cn.taketoday.framework.web.servlet.server.AbstractServletWebServerFactory) ServletRegistrationBean(cn.taketoday.framework.web.servlet.ServletRegistrationBean) ExampleServlet(cn.taketoday.test.web.servlet.ExampleServlet) Test(org.junit.jupiter.api.Test)

Example 8 with ExampleServlet

use of cn.taketoday.test.web.servlet.ExampleServlet in project today-framework by TAKETODAY.

the class UndertowServletWebServerFactoryTests method testAccessLog.

private void testAccessLog(String prefix, String suffix, String expectedFile) throws IOException, URISyntaxException {
    UndertowServletWebServerFactory factory = getFactory();
    factory.setAccessLogEnabled(true);
    factory.setAccessLogPrefix(prefix);
    factory.setAccessLogSuffix(suffix);
    File accessLogDirectory = this.tempDir;
    factory.setAccessLogDirectory(accessLogDirectory);
    assertThat(accessLogDirectory.listFiles()).isEmpty();
    this.webServer = factory.getWebServer(new ServletRegistrationBean<>(new ExampleServlet(), "/hello"));
    this.webServer.start();
    Assertions.assertThat(getResponse(getLocalUrl("/hello"))).isEqualTo("Hello World");
    File accessLog = new File(accessLogDirectory, expectedFile);
    awaitFile(accessLog);
    assertThat(accessLogDirectory.listFiles()).contains(accessLog);
}
Also used : ServletRegistrationBean(cn.taketoday.framework.web.servlet.ServletRegistrationBean) File(java.io.File) ExampleServlet(cn.taketoday.test.web.servlet.ExampleServlet)

Example 9 with ExampleServlet

use of cn.taketoday.test.web.servlet.ExampleServlet in project today-framework by TAKETODAY.

the class AbstractServletWebServerFactoryTests method serverHeaderIsDisabledByDefaultWhenUsingSsl.

@Test
void serverHeaderIsDisabledByDefaultWhenUsingSsl() throws Exception {
    AbstractServletWebServerFactory factory = getFactory();
    factory.setSsl(getSsl(null, "password", "src/test/resources/test.jks"));
    this.webServer = factory.getWebServer(new ServletRegistrationBean<>(new ExampleServlet(true, false), "/hello"));
    this.webServer.start();
    SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(new SSLContextBuilder().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build());
    HttpClient httpClient = this.httpClientBuilder.get().setSSLSocketFactory(socketFactory).build();
    ClientHttpResponse response = getClientResponse(getLocalUrl("https", "/hello"), HttpMethod.GET, new HttpComponentsClientHttpRequestFactory(httpClient));
    assertThat(response.getHeaders().get("Server")).isNullOrEmpty();
}
Also used : ServletRegistrationBean(cn.taketoday.framework.web.servlet.ServletRegistrationBean) HttpClient(org.apache.http.client.HttpClient) HttpComponentsClientHttpRequestFactory(cn.taketoday.http.client.HttpComponentsClientHttpRequestFactory) SSLConnectionSocketFactory(org.apache.http.conn.ssl.SSLConnectionSocketFactory) SSLContextBuilder(org.apache.http.ssl.SSLContextBuilder) ClientHttpResponse(cn.taketoday.http.client.ClientHttpResponse) ExampleServlet(cn.taketoday.test.web.servlet.ExampleServlet) TrustSelfSignedStrategy(org.apache.http.conn.ssl.TrustSelfSignedStrategy) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) Test(org.junit.jupiter.api.Test)

Example 10 with ExampleServlet

use of cn.taketoday.test.web.servlet.ExampleServlet in project today-framework by TAKETODAY.

the class AbstractServletWebServerFactoryTests method sslWithInvalidAliasFailsDuringStartup.

@Test
void sslWithInvalidAliasFailsDuringStartup() {
    AbstractServletWebServerFactory factory = getFactory();
    Ssl ssl = getSsl(null, "password", "test-alias-404", "src/test/resources/test.jks");
    factory.setSsl(ssl);
    ServletRegistrationBean<ExampleServlet> registration = new ServletRegistrationBean<>(new ExampleServlet(true, false), "/hello");
    ThrowingCallable call = () -> factory.getWebServer(registration).start();
    assertThatSslWithInvalidAliasCallFails(call);
}
Also used : ServletRegistrationBean(cn.taketoday.framework.web.servlet.ServletRegistrationBean) ThrowingCallable(org.assertj.core.api.ThrowableAssert.ThrowingCallable) Ssl(cn.taketoday.framework.web.server.Ssl) ExampleServlet(cn.taketoday.test.web.servlet.ExampleServlet) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) Test(org.junit.jupiter.api.Test)

Aggregations

ServletRegistrationBean (cn.taketoday.framework.web.servlet.ServletRegistrationBean)26 ExampleServlet (cn.taketoday.test.web.servlet.ExampleServlet)26 Test (org.junit.jupiter.api.Test)16 HttpComponentsClientHttpRequestFactory (cn.taketoday.http.client.HttpComponentsClientHttpRequestFactory)14 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)14 HttpClient (org.apache.http.client.HttpClient)12 SSLConnectionSocketFactory (org.apache.http.conn.ssl.SSLConnectionSocketFactory)12 SSLContextBuilder (org.apache.http.ssl.SSLContextBuilder)12 TrustSelfSignedStrategy (org.apache.http.conn.ssl.TrustSelfSignedStrategy)10 Ssl (cn.taketoday.framework.web.server.Ssl)6 ClientHttpResponse (cn.taketoday.http.client.ClientHttpResponse)4 ServletRequest (jakarta.servlet.ServletRequest)4 ServletResponse (jakarta.servlet.ServletResponse)4 HttpServletRequest (jakarta.servlet.http.HttpServletRequest)4 HttpServletResponse (jakarta.servlet.http.HttpServletResponse)4 Compression (cn.taketoday.framework.web.server.Compression)2 ErrorPage (cn.taketoday.framework.web.server.ErrorPage)2 AbstractServletWebServerFactory (cn.taketoday.framework.web.servlet.server.AbstractServletWebServerFactory)2 HttpSession (jakarta.servlet.http.HttpSession)2 File (java.io.File)2