From 3b23c542a04ea1328e5d0b555be06d16d591b2b8 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 9 Dec 2021 12:23:32 +0000 Subject: [PATCH] Test servlet 3.1 compatibility in deployment tests Closes gh-28906 --- .../spring-boot-deployment-tests/build.gradle | 3 +- .../AbstractDeploymentIntegrationTests.java | 1 + .../Tomcat85DeploymentIntegrationTests.java | 39 +++++++++++++++++++ .../src/main/resources/application.yml | 5 +++ 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 spring-boot-tests/spring-boot-deployment-tests/src/intTest/java/sample/Tomcat85DeploymentIntegrationTests.java diff --git a/spring-boot-tests/spring-boot-deployment-tests/build.gradle b/spring-boot-tests/spring-boot-deployment-tests/build.gradle index 38353c5f5f..1befe86f3c 100644 --- a/spring-boot-tests/spring-boot-deployment-tests/build.gradle +++ b/spring-boot-tests/spring-boot-deployment-tests/build.gradle @@ -13,10 +13,11 @@ configurations { } dependencies { + implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-actuator")) + implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-security")) implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-web")) { exclude group: "org.hibernate.validator" } - implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-actuator")) intTestImplementation(enforcedPlatform(project(path: ":spring-boot-project:spring-boot-parent"))) intTestImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) diff --git a/spring-boot-tests/spring-boot-deployment-tests/src/intTest/java/sample/AbstractDeploymentIntegrationTests.java b/spring-boot-tests/spring-boot-deployment-tests/src/intTest/java/sample/AbstractDeploymentIntegrationTests.java index d731fdd805..87d1f51074 100644 --- a/spring-boot-tests/spring-boot-deployment-tests/src/intTest/java/sample/AbstractDeploymentIntegrationTests.java +++ b/spring-boot-tests/spring-boot-deployment-tests/src/intTest/java/sample/AbstractDeploymentIntegrationTests.java @@ -95,6 +95,7 @@ abstract class AbstractDeploymentIntegrationTests { TestRestTemplate rest = new TestRestTemplate(new RestTemplateBuilder() .rootUri("http://" + this.container.getHost() + ":" + this.container.getMappedPort(this.port) + "/spring-boot") + .basicAuthentication("test", "test") .requestFactory(() -> new HttpComponentsClientHttpRequestFactory(HttpClients.custom() .setRetryHandler(new StandardHttpRequestRetryHandler(10, false)).build()))); try { diff --git a/spring-boot-tests/spring-boot-deployment-tests/src/intTest/java/sample/Tomcat85DeploymentIntegrationTests.java b/spring-boot-tests/spring-boot-deployment-tests/src/intTest/java/sample/Tomcat85DeploymentIntegrationTests.java new file mode 100644 index 0000000000..f8a1671038 --- /dev/null +++ b/spring-boot-tests/spring-boot-deployment-tests/src/intTest/java/sample/Tomcat85DeploymentIntegrationTests.java @@ -0,0 +1,39 @@ +/* + * Copyright 2012-2021 the original author or authors. + * + * Licensed 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 + * + * https://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 sample; + +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +/** + * Deployment integration tests for Tomcat 8.5 (a Servlet 3.1 container). + * + * @author Andy Wilkinson + */ +@Testcontainers(disabledWithoutDocker = true) +class Tomcat85DeploymentIntegrationTests extends AbstractDeploymentIntegrationTests { + + @Container + static WarDeploymentContainer container = new WarDeploymentContainer("tomcat:8.5.73-jdk8-openjdk", + "/usr/local/tomcat/webapps", DEFAULT_PORT); + + @Override + WarDeploymentContainer getContainer() { + return container; + } + +} diff --git a/spring-boot-tests/spring-boot-deployment-tests/src/main/resources/application.yml b/spring-boot-tests/spring-boot-deployment-tests/src/main/resources/application.yml index 8099f86ce8..9b5ee87fe1 100644 --- a/spring-boot-tests/spring-boot-deployment-tests/src/main/resources/application.yml +++ b/spring-boot-tests/spring-boot-deployment-tests/src/main/resources/application.yml @@ -1 +1,6 @@ +spring: + security: + user: + name: test + password: test management.endpoints.web.exposure.include: '*'