Move web server auto-configure classes into spring-boot-web-server
This commit is contained in:
parent
0b18cb2405
commit
17ca3ef620
|
@ -44,7 +44,6 @@ import org.springframework.util.Assert;
|
|||
*/
|
||||
@AutoConfiguration
|
||||
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
|
||||
@EnableConfigurationProperties(ManagementServerProperties.class)
|
||||
public class ManagementContextAutoConfiguration {
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
|
@ -107,6 +106,7 @@ public class ManagementContextAutoConfiguration {
|
|||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnManagementPort(ManagementPortType.DIFFERENT)
|
||||
@EnableConfigurationProperties(ManagementServerProperties.class)
|
||||
static class DifferentManagementContextConfiguration {
|
||||
|
||||
@Bean
|
||||
|
|
|
@ -18,10 +18,10 @@ package org.springframework.boot.actuate.autoconfigure.web.server;
|
|||
|
||||
import java.net.InetAddress;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.NestedConfigurationProperty;
|
||||
import org.springframework.boot.web.server.Ssl;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,12 +23,12 @@ import java.util.List;
|
|||
import org.springframework.beans.factory.BeanFactoryUtils;
|
||||
import org.springframework.beans.factory.ListableBeanFactory;
|
||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.util.LambdaSafe;
|
||||
import org.springframework.boot.web.server.ConfigurableWebServerFactory;
|
||||
import org.springframework.boot.web.server.Ssl;
|
||||
import org.springframework.boot.web.server.WebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.core.Ordered;
|
||||
|
||||
/**
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.springframework.boot.actuate.autoconfigure.web.servlet;
|
|||
import org.springframework.beans.factory.ListableBeanFactory;
|
||||
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties;
|
||||
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementWebServerFactoryCustomizer;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.servlet.ConfigurableServletWebServerFactory;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
|
|
|
@ -24,9 +24,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.web.error.ErrorPage;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.servlet.ConfigurableServletWebServerFactory;
|
||||
import org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter;
|
||||
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletAutoConfiguration;
|
||||
|
|
|
@ -315,15 +315,8 @@ public abstract class AbstractWebMvcEndpointHandlerMapping extends RequestMappin
|
|||
ServletSecurityContext securityContext = new ServletSecurityContext(request);
|
||||
ProducibleOperationArgumentResolver producibleOperationArgumentResolver = new ProducibleOperationArgumentResolver(
|
||||
() -> headers.get("Accept"));
|
||||
OperationArgumentResolver serverNamespaceArgumentResolver = OperationArgumentResolver
|
||||
.of(WebServerNamespace.class, () -> {
|
||||
WebApplicationContext applicationContext = WebApplicationContextUtils
|
||||
.getRequiredWebApplicationContext(request.getServletContext());
|
||||
return WebServerNamespace
|
||||
.from(WebServerApplicationContext.getServerNamespace(applicationContext));
|
||||
});
|
||||
InvocationContext invocationContext = new InvocationContext(securityContext, arguments,
|
||||
serverNamespaceArgumentResolver, producibleOperationArgumentResolver);
|
||||
serverNamespaceArgumentResolver(request), producibleOperationArgumentResolver);
|
||||
return handleResult(this.operation.invoke(invocationContext), HttpMethod.valueOf(request.getMethod()));
|
||||
}
|
||||
catch (InvalidEndpointRequestException ex) {
|
||||
|
@ -331,6 +324,17 @@ public abstract class AbstractWebMvcEndpointHandlerMapping extends RequestMappin
|
|||
}
|
||||
}
|
||||
|
||||
private OperationArgumentResolver serverNamespaceArgumentResolver(HttpServletRequest request) {
|
||||
if (ClassUtils.isPresent("org.springframework.boot.web.server.context.WebServerApplicationContext", null)) {
|
||||
return OperationArgumentResolver.of(WebServerNamespace.class, () -> {
|
||||
WebApplicationContext applicationContext = WebApplicationContextUtils
|
||||
.getRequiredWebApplicationContext(request.getServletContext());
|
||||
return WebServerNamespace.from(WebServerApplicationContext.getServerNamespace(applicationContext));
|
||||
});
|
||||
}
|
||||
return OperationArgumentResolver.of(WebServerNamespace.class, () -> null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Actuator web endpoint '" + this.operation.getId() + "'";
|
||||
|
|
|
@ -22,9 +22,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBooleanProp
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.servlet.ConfigurableServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.servlet.Encoding;
|
||||
import org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter;
|
||||
|
@ -43,7 +43,7 @@ import org.springframework.web.filter.CharacterEncodingFilter;
|
|||
@AutoConfiguration
|
||||
@EnableConfigurationProperties(ServerProperties.class)
|
||||
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
|
||||
@ConditionalOnClass(CharacterEncodingFilter.class)
|
||||
@ConditionalOnClass({ CharacterEncodingFilter.class, ServerProperties.class })
|
||||
@ConditionalOnBooleanProperty(name = "server.servlet.encoding.enabled", matchIfMissing = true)
|
||||
public class HttpEncodingAutoConfiguration {
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@ import org.junit.jupiter.params.ParameterizedTest;
|
|||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.jetty.servlet.JettyServletWebServerFactory;
|
||||
import org.springframework.boot.test.util.TestPropertyValues;
|
||||
|
@ -35,6 +34,7 @@ import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
|
|||
import org.springframework.boot.tomcat.autoconfigure.servlet.TomcatServletWebServerAutoConfiguration;
|
||||
import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
|
||||
import org.springframework.boot.undertow.servlet.UndertowServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.servlet.context.AnnotationConfigServletWebServerApplicationContext;
|
||||
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletAutoConfiguration;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
|
@ -11,7 +11,6 @@ description = "Spring Boot AutoConfigure"
|
|||
|
||||
dependencies {
|
||||
api(project(":spring-boot-project:spring-boot"))
|
||||
api(project(":spring-boot-project:spring-boot-web-server"))
|
||||
|
||||
optional("org.aspectj:aspectjweaver")
|
||||
optional("jakarta.persistence:jakarta.persistence-api")
|
||||
|
@ -23,15 +22,10 @@ dependencies {
|
|||
testFixturesCompileOnly(project(":spring-boot-project:spring-boot-test"))
|
||||
testFixturesCompileOnly(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
|
||||
testFixturesCompileOnly("javax.cache:cache-api")
|
||||
testFixturesCompileOnly("jakarta.websocket:jakarta.websocket-api")
|
||||
testFixturesCompileOnly("jakarta.websocket:jakarta.websocket-client-api")
|
||||
|
||||
testFixturesImplementation(testFixtures(project(":spring-boot-project:spring-boot-web-server")))
|
||||
|
||||
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-test"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
|
||||
testImplementation(testFixtures(project(":spring-boot-project:spring-boot-web-server")))
|
||||
testImplementation("ch.qos.logback:logback-classic")
|
||||
testImplementation("com.fasterxml.jackson.core:jackson-databind")
|
||||
testImplementation("io.projectreactor:reactor-core")
|
||||
|
|
|
@ -1,303 +1,6 @@
|
|||
{
|
||||
"groups": [],
|
||||
"properties": [
|
||||
{
|
||||
"name": "server.compression.enabled",
|
||||
"description": "Whether response compression is enabled.",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "server.compression.excluded-user-agents",
|
||||
"description": "Comma-separated list of user agents for which responses should not be compressed."
|
||||
},
|
||||
{
|
||||
"name": "server.compression.mime-types",
|
||||
"description": "Comma-separated list of MIME types that should be compressed.",
|
||||
"defaultValue": [
|
||||
"text/html",
|
||||
"text/xml",
|
||||
"text/plain",
|
||||
"text/css",
|
||||
"text/javascript",
|
||||
"application/javascript",
|
||||
"application/json",
|
||||
"application/xml"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "server.compression.min-response-size",
|
||||
"description": "Minimum \"Content-Length\" value that is required for compression to be performed.",
|
||||
"defaultValue": "2KB"
|
||||
},
|
||||
{
|
||||
"name": "server.connection-timeout",
|
||||
"type": "java.time.Duration",
|
||||
"deprecation": {
|
||||
"reason": "Each server behaves differently. Use server specific properties instead.",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.http2.enabled",
|
||||
"description": "Whether to enable HTTP/2 support, if the current environment supports it.",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "server.max-http-header-size",
|
||||
"deprecation": {
|
||||
"replacement": "server.max-http-request-header-size",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.max-http-post-size",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Maximum size in bytes of the HTTP post content.",
|
||||
"defaultValue": 0,
|
||||
"deprecation": {
|
||||
"reason": "Use dedicated property for each container.",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.port",
|
||||
"defaultValue": 8080
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.domain",
|
||||
"description": "Domain for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.http-only",
|
||||
"description": "Whether to use \"HttpOnly\" cookies for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.max-age",
|
||||
"description": "Maximum age of the cookie. If a duration suffix is not specified, seconds will be used. A positive value indicates when the cookie expires relative to the current time. A value of 0 means the cookie should expire immediately. A negative value means no \"Max-Age\"."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.name",
|
||||
"description": "Name for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.partitioned",
|
||||
"description": "Whether the generated cookie carries the Partitioned attribute."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.path",
|
||||
"description": "Path of the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.same-site",
|
||||
"description": "SameSite setting for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.secure",
|
||||
"description": "Whether to always mark the cookie as secure."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.charset",
|
||||
"description": "Charset of HTTP requests and responses. Added to the \"Content-Type\" header if not set explicitly.",
|
||||
"defaultValue": "UTF-8"
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.enabled",
|
||||
"type": "java.lang.Boolean",
|
||||
"description": "Whether to enable http encoding support.",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.force",
|
||||
"description": "Whether to force the encoding to the configured charset on HTTP requests and responses."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.force-request",
|
||||
"description": "Whether to force the encoding to the configured charset on HTTP requests. Defaults to true when \"force\" has not been specified."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.force-response",
|
||||
"description": "Whether to force the encoding to the configured charset on HTTP responses."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.mapping",
|
||||
"description": "Mapping of locale to charset for response encoding."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.jsp.class-name",
|
||||
"description": "Class name of the servlet to use for JSPs. If registered is true and this class\n\t * is on the classpath then it will be registered.",
|
||||
"defaultValue": "org.apache.jasper.servlet.JspServlet"
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.jsp.init-parameters",
|
||||
"description": "Init parameters used to configure the JSP servlet."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.jsp.registered",
|
||||
"description": "Whether the JSP servlet is registered.",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.path",
|
||||
"type": "java.lang.String",
|
||||
"description": "Path of the main dispatcher servlet.",
|
||||
"defaultValue": "/",
|
||||
"deprecation": {
|
||||
"replacement": "spring.mvc.servlet.path",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.comment",
|
||||
"description": "Comment for the cookie.",
|
||||
"deprecation": {
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.domain",
|
||||
"description": "Domain for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.http-only",
|
||||
"description": "Whether to use \"HttpOnly\" cookies for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.max-age",
|
||||
"description": "Maximum age of the cookie. If a duration suffix is not specified, seconds will be used. A positive value indicates when the cookie expires relative to the current time. A value of 0 means the cookie should expire immediately. A negative value means no \"Max-Age\"."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.name",
|
||||
"description": "Name of the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.partitioned",
|
||||
"description": "Whether the generated cookie carries the Partitioned attribute."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.path",
|
||||
"description": "Path of the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.same-site",
|
||||
"description": "SameSite setting for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.secure",
|
||||
"description": "Whether to always mark the cookie as secure."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.persistent",
|
||||
"description": "Whether to persist session data between restarts.",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.store-dir",
|
||||
"description": "Directory used to store session data."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.timeout",
|
||||
"description": "Session timeout. If a duration suffix is not specified, seconds will be used.",
|
||||
"defaultValue": "30m"
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.tracking-modes",
|
||||
"description": "Session tracking modes."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.bundle",
|
||||
"description": "Name of a configured SSL bundle."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.certificate",
|
||||
"description": "Path to a PEM-encoded SSL certificate file."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.certificate-private-key",
|
||||
"description": "Path to a PEM-encoded private key file for the SSL certificate."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.ciphers",
|
||||
"description": "Supported SSL ciphers."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.client-auth",
|
||||
"description": "Client authentication mode. Requires a trust store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.enabled",
|
||||
"description": "Whether to enable SSL support.",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.enabled-protocols",
|
||||
"description": "Enabled SSL protocols."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-alias",
|
||||
"description": "Alias that identifies the key in the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-password",
|
||||
"description": "Password used to access the key in the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-store",
|
||||
"description": "Path to the key store that holds the SSL certificate (typically a jks file)."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-store-password",
|
||||
"description": "Password used to access the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-store-provider",
|
||||
"description": "Provider for the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-store-type",
|
||||
"description": "Type of the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.protocol",
|
||||
"description": "SSL protocol to use.",
|
||||
"defaultValue": "TLS"
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.server-name-bundles",
|
||||
"description": "Mapping of host names to SSL bundles for SNI configuration."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-certificate",
|
||||
"description": "Path to a PEM-encoded SSL certificate authority file."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-certificate-private-key",
|
||||
"description": "Path to a PEM-encoded private key file for the SSL certificate authority."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-store",
|
||||
"description": "Trust store that holds SSL certificates."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-store-password",
|
||||
"description": "Password used to access the trust store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-store-provider",
|
||||
"description": "Provider for the trust store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-store-type",
|
||||
"description": "Type of the trust store."
|
||||
},
|
||||
{
|
||||
"name": "server.use-forward-headers",
|
||||
"type": "java.lang.Boolean",
|
||||
"deprecation": {
|
||||
"reason": "Replaced to support additional strategies.",
|
||||
"replacement": "server.forward-headers-strategy",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "spring.aop.auto",
|
||||
"type": "java.lang.Boolean",
|
||||
|
|
|
@ -17,16 +17,12 @@
|
|||
package org.springframework.boot.autoconfigure.condition;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
import org.springframework.boot.web.server.reactive.MockReactiveWebServerFactory;
|
||||
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.server.reactive.HttpHandler;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.entry;
|
||||
|
@ -47,8 +43,7 @@ class ConditionalOnNotWebApplicationTests {
|
|||
|
||||
@Test
|
||||
void testNotWebApplicationWithReactiveContext() {
|
||||
new ReactiveWebApplicationContextRunner()
|
||||
.withUserConfiguration(ReactiveApplicationConfig.class, NotWebApplicationConfiguration.class)
|
||||
new ReactiveWebApplicationContextRunner().withUserConfiguration(NotWebApplicationConfiguration.class)
|
||||
.run((context) -> assertThat(context).doesNotHaveBean(String.class));
|
||||
}
|
||||
|
||||
|
@ -58,21 +53,6 @@ class ConditionalOnNotWebApplicationTests {
|
|||
.run((context) -> assertThat(context).getBeans(String.class).containsExactly(entry("none", "none")));
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class ReactiveApplicationConfig {
|
||||
|
||||
@Bean
|
||||
ReactiveWebServerFactory reactiveWebServerFactory() {
|
||||
return new MockReactiveWebServerFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
HttpHandler httpHandler() {
|
||||
return (request, response) -> Mono.empty();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnNotWebApplication
|
||||
static class NotWebApplicationConfiguration {
|
||||
|
|
|
@ -18,18 +18,14 @@ package org.springframework.boot.autoconfigure.condition;
|
|||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.web.context.reactive.AnnotationConfigReactiveWebApplicationContext;
|
||||
import org.springframework.boot.web.context.servlet.AnnotationConfigServletWebApplicationContext;
|
||||
import org.springframework.boot.web.server.reactive.MockReactiveWebServerFactory;
|
||||
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.server.reactive.HttpHandler;
|
||||
import org.springframework.mock.web.MockServletContext;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
@ -116,16 +112,6 @@ class ConditionalOnWebApplicationTests {
|
|||
return "reactive";
|
||||
}
|
||||
|
||||
@Bean
|
||||
ReactiveWebServerFactory reactiveWebServerFactory() {
|
||||
return new MockReactiveWebServerFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
HttpHandler httpHandler() {
|
||||
return (request, response) -> Mono.empty();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ dependencies {
|
|||
optional(project(":spring-boot-project:spring-boot-r2dbc"))
|
||||
optional(project(":spring-boot-project:spring-boot-reactor"))
|
||||
optional(project(":spring-boot-project:spring-boot-security"))
|
||||
optional(project(":spring-boot-project:spring-boot-web-server"))
|
||||
optional("io.r2dbc:r2dbc-spi")
|
||||
optional("jakarta.servlet:jakarta.servlet-api")
|
||||
optional("org.apache.derby:derbytools")
|
||||
|
|
|
@ -28,8 +28,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBooleanProp
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties.Servlet;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.devtools.remote.server.AccessManager;
|
||||
import org.springframework.boot.devtools.remote.server.Dispatcher;
|
||||
|
@ -43,6 +41,8 @@ import org.springframework.boot.devtools.restart.server.DefaultSourceDirectoryUr
|
|||
import org.springframework.boot.devtools.restart.server.HttpRestartServer;
|
||||
import org.springframework.boot.devtools.restart.server.HttpRestartServerHandler;
|
||||
import org.springframework.boot.devtools.restart.server.SourceDirectoryUrlFilter;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties.Servlet;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
@ -61,7 +61,7 @@ import org.springframework.http.server.ServerHttpRequest;
|
|||
@AutoConfiguration(afterName = "org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration")
|
||||
@ConditionalOnEnabledDevTools
|
||||
@ConditionalOnProperty("spring.devtools.remote.secret")
|
||||
@ConditionalOnClass({ Filter.class, ServerHttpRequest.class })
|
||||
@ConditionalOnClass({ Filter.class, ServerHttpRequest.class, ServerProperties.class })
|
||||
@Import(RemoteDevtoolsSecurityConfiguration.class)
|
||||
@EnableConfigurationProperties({ ServerProperties.class, DevToolsProperties.class })
|
||||
public class RemoteDevToolsAutoConfiguration {
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
package org.springframework.boot.devtools.autoconfigure;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.security.autoconfigure.SecurityProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.annotation.Order;
|
||||
|
|
|
@ -209,6 +209,7 @@ dependencies {
|
|||
configurationProperties(project(path: ":spring-boot-project:spring-boot-tx", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-undertow", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-webflux", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-web-server", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-webmvc", configuration: "configurationPropertiesMetadata"))
|
||||
configurationProperties(project(path: ":spring-boot-project:spring-boot-webservices", configuration: "configurationPropertiesMetadata"))
|
||||
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
|
||||
package org.springframework.boot.http.converter.autoconfigure;
|
||||
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.RuntimeHintsRegistrar;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
|
@ -26,16 +27,11 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;
|
||||
import org.springframework.boot.context.properties.bind.BindableRuntimeHintsRegistrar;
|
||||
import org.springframework.boot.context.properties.bind.Binder;
|
||||
import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration.HttpMessageConvertersAutoConfigurationRuntimeHints;
|
||||
import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration.NotReactiveWebApplicationCondition;
|
||||
import org.springframework.boot.web.server.servlet.Encoding;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.context.annotation.ImportRuntimeHints;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||
|
@ -61,7 +57,6 @@ import org.springframework.http.converter.StringHttpMessageConverter;
|
|||
@Conditional(NotReactiveWebApplicationCondition.class)
|
||||
@Import({ JacksonHttpMessageConvertersConfiguration.class, GsonHttpMessageConvertersConfiguration.class,
|
||||
JsonbHttpMessageConvertersConfiguration.class })
|
||||
@ImportRuntimeHints(HttpMessageConvertersAutoConfigurationRuntimeHints.class)
|
||||
public class HttpMessageConvertersAutoConfiguration {
|
||||
|
||||
static final String PREFERRED_MAPPER_PROPERTY = "spring.http.converters.preferred-json-mapper";
|
||||
|
@ -79,8 +74,9 @@ public class HttpMessageConvertersAutoConfiguration {
|
|||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public StringHttpMessageConverter stringHttpMessageConverter(Environment environment) {
|
||||
Encoding encoding = Binder.get(environment).bindOrCreate("server.servlet.encoding", Encoding.class);
|
||||
StringHttpMessageConverter converter = new StringHttpMessageConverter(encoding.getCharset());
|
||||
Charset charset = environment.getProperty("server.servlet.encoding.charset", Charset.class,
|
||||
StandardCharsets.UTF_8);
|
||||
StringHttpMessageConverter converter = new StringHttpMessageConverter(charset);
|
||||
converter.setWriteAcceptCharset(false);
|
||||
return converter;
|
||||
}
|
||||
|
@ -100,13 +96,4 @@ public class HttpMessageConvertersAutoConfiguration {
|
|||
|
||||
}
|
||||
|
||||
static class HttpMessageConvertersAutoConfigurationRuntimeHints implements RuntimeHintsRegistrar {
|
||||
|
||||
@Override
|
||||
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
|
||||
BindableRuntimeHintsRegistrar.forTypes(Encoding.class).registerHints(hints, classLoader);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,12 +24,8 @@ import jakarta.json.bind.Jsonb;
|
|||
import jakarta.json.bind.JsonbBuilder;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.predicate.RuntimeHintsPredicates;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration.HttpMessageConvertersAutoConfigurationRuntimeHints;
|
||||
import org.springframework.boot.http.converter.autoconfigure.JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration;
|
||||
import org.springframework.boot.test.context.FilteredClassLoader;
|
||||
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
|
||||
|
@ -37,7 +33,6 @@ import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
|||
import org.springframework.boot.test.context.runner.ContextConsumer;
|
||||
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
import org.springframework.boot.web.server.servlet.Encoding;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
|
@ -268,28 +263,6 @@ class HttpMessageConvertersAutoConfigurationTests {
|
|||
});
|
||||
}
|
||||
|
||||
@Test // gh-21789
|
||||
void whenAutoConfigurationIsActiveThenServerPropertiesConfigurationPropertiesAreNotEnabled() {
|
||||
new WebApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(HttpMessageConvertersAutoConfiguration.class))
|
||||
.run((context) -> {
|
||||
assertThat(context).hasSingleBean(HttpMessageConverters.class);
|
||||
assertThat(context).doesNotHaveBean(ServerProperties.class);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldRegisterHints() {
|
||||
RuntimeHints hints = new RuntimeHints();
|
||||
new HttpMessageConvertersAutoConfigurationRuntimeHints().registerHints(hints, getClass().getClassLoader());
|
||||
assertThat(RuntimeHintsPredicates.reflection().onType(Encoding.class)).accepts(hints);
|
||||
assertThat(RuntimeHintsPredicates.reflection().onMethod(Encoding.class, "getCharset").invoke()).accepts(hints);
|
||||
assertThat(RuntimeHintsPredicates.reflection().onMethod(Encoding.class, "setCharset").invoke()).accepts(hints);
|
||||
assertThat(RuntimeHintsPredicates.reflection().onMethod(Encoding.class, "isForce").invoke()).accepts(hints);
|
||||
assertThat(RuntimeHintsPredicates.reflection().onMethod(Encoding.class, "setForce").invoke()).accepts(hints);
|
||||
assertThat(RuntimeHintsPredicates.reflection().onMethod(Encoding.class, "shouldForce")).rejects(hints);
|
||||
}
|
||||
|
||||
private ApplicationContextRunner allOptionsRunner() {
|
||||
return this.contextRunner.withBean(Gson.class)
|
||||
.withBean(ObjectMapper.class)
|
||||
|
|
|
@ -19,9 +19,9 @@ package org.springframework.boot.jetty.autoconfigure;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWarDeployment;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnThreading;
|
||||
import org.springframework.boot.autoconfigure.thread.Threading;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.jetty.autoconfigure.reactive.JettyReactiveWebServerAutoConfiguration;
|
||||
import org.springframework.boot.jetty.autoconfigure.servlet.JettyServletWebServerAutoConfiguration;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.Environment;
|
||||
|
|
|
@ -32,11 +32,11 @@ import org.eclipse.jetty.server.Handler;
|
|||
import org.eclipse.jetty.server.HttpConfiguration;
|
||||
import org.eclipse.jetty.server.RequestLogWriter;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.cloud.CloudPlatform;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.jetty.ConfigurableJettyWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
|
|
@ -26,12 +26,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.web.server.reactive.ReactiveWebServerConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.jetty.JettyServerCustomizer;
|
||||
import org.springframework.boot.jetty.autoconfigure.JettyServerProperties;
|
||||
import org.springframework.boot.jetty.autoconfigure.JettyWebServerConfiguration;
|
||||
import org.springframework.boot.jetty.reactive.JettyReactiveWebServerFactory;
|
||||
import org.springframework.boot.web.server.autoconfigure.reactive.ReactiveWebServerConfiguration;
|
||||
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
@ -36,13 +36,13 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWarDeplo
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.condition.SearchStrategy;
|
||||
import org.springframework.boot.autoconfigure.web.server.servlet.ServletWebServerConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.jetty.JettyServerCustomizer;
|
||||
import org.springframework.boot.jetty.autoconfigure.JettyServerProperties;
|
||||
import org.springframework.boot.jetty.autoconfigure.JettyWebServerConfiguration;
|
||||
import org.springframework.boot.jetty.servlet.JettyServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.servlet.ServletWebServerConfiguration;
|
||||
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
@ -41,14 +41,14 @@ import org.eclipse.jetty.util.thread.ThreadPool;
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties.ForwardHeadersStrategy;
|
||||
import org.springframework.boot.context.properties.bind.Bindable;
|
||||
import org.springframework.boot.context.properties.bind.Binder;
|
||||
import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
|
||||
import org.springframework.boot.jetty.ConfigurableJettyWebServerFactory;
|
||||
import org.springframework.boot.jetty.JettyWebServer;
|
||||
import org.springframework.boot.jetty.servlet.JettyServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties.ForwardHeadersStrategy;
|
||||
import org.springframework.mock.env.MockEnvironment;
|
||||
import org.springframework.test.context.support.TestPropertySourceUtils;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
|
|
@ -22,12 +22,12 @@ import org.eclipse.jetty.server.Server;
|
|||
import org.eclipse.jetty.server.handler.StatisticsHandler;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.server.reactive.AbstractReactiveWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.jetty.JettyServerCustomizer;
|
||||
import org.springframework.boot.jetty.JettyWebServer;
|
||||
import org.springframework.boot.jetty.reactive.JettyReactiveWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServer;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.reactive.AbstractReactiveWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.web.server.reactive.context.ReactiveWebServerApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
@ -24,10 +24,10 @@ import org.eclipse.jetty.server.Server;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.boot.autoconfigure.web.server.servlet.AbstractServletWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.jetty.JettyServerCustomizer;
|
||||
import org.springframework.boot.jetty.servlet.JettyServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.servlet.AbstractServletWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.web.servlet.AbstractFilterRegistrationBean;
|
||||
import org.springframework.boot.web.servlet.ServletContextInitializer;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
|
@ -23,13 +23,13 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
|
|||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.server.reactive.ReactiveWebServerConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.reactor.netty.NettyReactiveWebServerFactory;
|
||||
import org.springframework.boot.reactor.netty.NettyRouteProvider;
|
||||
import org.springframework.boot.reactor.netty.NettyServerCustomizer;
|
||||
import org.springframework.boot.reactor.netty.autoconfigure.ReactorNettyConfigurations.ReactorResourceFactoryConfiguration;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.reactive.ReactiveWebServerConfiguration;
|
||||
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
|
|
@ -20,11 +20,11 @@ import java.time.Duration;
|
|||
|
||||
import io.netty.channel.ChannelOption;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.cloud.CloudPlatform;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.reactor.netty.NettyReactiveWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.env.Environment;
|
||||
|
||||
|
|
|
@ -19,10 +19,10 @@ package org.springframework.boot.reactor.netty.autoconfigure;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import reactor.netty.http.server.HttpServer;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.server.reactive.AbstractReactiveWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.reactor.netty.NettyReactiveWebServerFactory;
|
||||
import org.springframework.boot.reactor.netty.NettyServerCustomizer;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.reactive.AbstractReactiveWebServerAutoConfigurationTests;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
|
|
|
@ -30,10 +30,10 @@ import reactor.netty.http.Http2SettingsSpec;
|
|||
import reactor.netty.http.server.HttpRequestDecoderSpec;
|
||||
import reactor.netty.http.server.HttpServer;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
|
||||
import org.springframework.boot.reactor.netty.NettyReactiveWebServerFactory;
|
||||
import org.springframework.boot.reactor.netty.NettyServerCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.mock.env.MockEnvironment;
|
||||
import org.springframework.util.unit.DataSize;
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ dependencies {
|
|||
optional(project(":spring-boot-project:spring-boot-reactor"))
|
||||
optional(project(":spring-boot-project:spring-boot-rsocket"))
|
||||
optional(project(":spring-boot-project:spring-boot-webmvc"))
|
||||
optional(project(":spring-boot-project:spring-boot-web-server"))
|
||||
optional("jakarta.servlet:jakarta.servlet-api")
|
||||
optional("org.springframework:spring-messaging")
|
||||
optional("org.springframework:spring-webflux")
|
||||
|
|
|
@ -21,8 +21,8 @@ import java.time.Duration;
|
|||
import org.assertj.core.api.AssertDelegateTarget;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.security.autoconfigure.StaticResourceLocation;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.support.StaticApplicationContext;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
import org.springframework.http.server.reactive.ServerHttpResponse;
|
||||
|
|
|
@ -20,8 +20,8 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||
import org.assertj.core.api.AssertDelegateTarget;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.h2console.autoconfigure.H2ConsoleProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.mock.web.MockServletContext;
|
||||
import org.springframework.security.web.util.matcher.RequestMatcher;
|
||||
|
|
|
@ -14,6 +14,7 @@ dependencies {
|
|||
api(project(":spring-boot-project:spring-boot-session"))
|
||||
api("org.springframework.session:spring-session-data-mongodb")
|
||||
|
||||
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-test"))
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"))
|
||||
dockerTestImplementation(project(":spring-boot-project:spring-boot-webflux"))
|
||||
|
@ -30,6 +31,7 @@ dependencies {
|
|||
dockerTestRuntimeOnly("jakarta.servlet:jakarta.servlet-api")
|
||||
|
||||
implementation(project(":spring-boot-project:spring-boot-data-mongodb"))
|
||||
implementation(project(":spring-boot-project:spring-boot-web-server"))
|
||||
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ import org.testcontainers.junit.jupiter.Container;
|
|||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.data.mongodb.autoconfigure.MongoDataAutoConfiguration;
|
||||
import org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.AbstractSessionAutoConfigurationTests;
|
||||
|
@ -34,6 +33,7 @@ import org.springframework.boot.test.context.assertj.AssertableWebApplicationCon
|
|||
import org.springframework.boot.test.context.runner.ContextConsumer;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
import org.springframework.boot.testsupport.container.TestImage;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.session.config.SessionRepositoryCustomizer;
|
||||
|
|
|
@ -23,11 +23,11 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.SessionProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
|
|
@ -27,6 +27,7 @@ dependencies {
|
|||
dockerTestRuntimeOnly("jakarta.servlet:jakarta.servlet-api")
|
||||
|
||||
implementation(project(":spring-boot-project:spring-boot-data-redis"))
|
||||
implementation(project(":spring-boot-project:spring-boot-web-server"))
|
||||
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@ import org.testcontainers.junit.jupiter.Testcontainers;
|
|||
import reactor.core.publisher.Mono;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.data.redis.autoconfigure.RedisAutoConfiguration;
|
||||
import org.springframework.boot.data.redis.autoconfigure.RedisReactiveAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.AbstractReactiveSessionAutoConfigurationTests;
|
||||
|
@ -37,6 +36,7 @@ import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplic
|
|||
import org.springframework.boot.test.context.runner.ContextConsumer;
|
||||
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
|
||||
import org.springframework.boot.testsupport.container.TestImage;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.webflux.autoconfigure.WebSessionIdResolverAutoConfiguration;
|
||||
import org.springframework.data.redis.connection.ReactiveRedisConnection;
|
||||
import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
|
||||
|
|
|
@ -26,7 +26,6 @@ import org.testcontainers.junit.jupiter.Container;
|
|||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.source.InvalidConfigurationPropertyValueException;
|
||||
import org.springframework.boot.data.redis.autoconfigure.RedisAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.AbstractSessionAutoConfigurationTests;
|
||||
|
@ -35,6 +34,7 @@ import org.springframework.boot.test.context.assertj.AssertableWebApplicationCon
|
|||
import org.springframework.boot.test.context.runner.ContextConsumer;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
import org.springframework.boot.testsupport.container.TestImage;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.RedisConnection;
|
||||
|
|
|
@ -24,12 +24,12 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.context.properties.source.InvalidConfigurationPropertyValueException;
|
||||
import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.SessionProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
|
|
@ -14,6 +14,7 @@ dependencies {
|
|||
api("org.springframework.session:spring-session-hazelcast")
|
||||
|
||||
implementation(project(":spring-boot-project:spring-boot-hazelcast"))
|
||||
implementation(project(":spring-boot-project:spring-boot-web-server"))
|
||||
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
|
||||
|
|
|
@ -25,11 +25,11 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.SessionProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.core.Ordered;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
|
@ -24,10 +24,10 @@ import org.junit.jupiter.api.BeforeEach;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.session.autoconfigure.AbstractSessionAutoConfigurationTests;
|
||||
import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.session.FlushMode;
|
||||
|
|
|
@ -14,6 +14,7 @@ dependencies {
|
|||
api("org.springframework.session:spring-session-jdbc")
|
||||
|
||||
implementation(project(":spring-boot-project:spring-boot-jdbc"))
|
||||
implementation(project(":spring-boot-project:spring-boot-web-server"))
|
||||
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
|
||||
|
|
|
@ -26,13 +26,13 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration;
|
||||
import org.springframework.boot.session.autoconfigure.SessionProperties;
|
||||
import org.springframework.boot.sql.autoconfigure.init.OnDatabaseInitializationCondition;
|
||||
import org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
|
|
@ -26,7 +26,6 @@ import org.junit.jupiter.api.Test;
|
|||
|
||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.flyway.autoconfigure.FlywayAutoConfiguration;
|
||||
import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration;
|
||||
import org.springframework.boot.jdbc.autoconfigure.DataSourceTransactionManagerAutoConfiguration;
|
||||
|
@ -39,6 +38,7 @@ import org.springframework.boot.sql.init.DatabaseInitializationMode;
|
|||
import org.springframework.boot.sql.init.DatabaseInitializationSettings;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
import org.springframework.boot.testsupport.classpath.resources.WithResource;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
|
|
@ -12,6 +12,8 @@ description = "Spring Boot Session"
|
|||
dependencies {
|
||||
api(project(":spring-boot-project:spring-boot"))
|
||||
api("org.springframework.session:spring-session-core")
|
||||
|
||||
implementation(project(":spring-boot-project:spring-boot-web-server"))
|
||||
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
optional("jakarta.servlet:jakarta.servlet-api")
|
||||
|
|
|
@ -27,11 +27,11 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.web.server.Cookie;
|
||||
import org.springframework.boot.web.server.Cookie.SameSite;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
@ -24,9 +24,9 @@ import org.junit.jupiter.api.Test;
|
|||
import org.mockito.InOrder;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.servlet.AbstractFilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
@ -23,9 +23,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.test.autoconfigure.web.reactive.WebTestClientAutoConfiguration;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.test.client.reactive.WebTestClientBuilderCustomizer;
|
||||
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletPath;
|
||||
import org.springframework.boot.webmvc.autoconfigure.WebMvcAutoConfiguration;
|
||||
|
|
|
@ -22,9 +22,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWarDeployment;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnThreading;
|
||||
import org.springframework.boot.autoconfigure.thread.Threading;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.tomcat.autoconfigure.reactive.TomcatReactiveWebServerAutoConfiguration;
|
||||
import org.springframework.boot.tomcat.autoconfigure.servlet.TomcatServletWebServerAutoConfiguration;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.Environment;
|
||||
|
|
|
@ -34,7 +34,6 @@ import org.apache.coyote.http2.Http2Protocol;
|
|||
|
||||
import org.springframework.boot.autoconfigure.web.ErrorProperties;
|
||||
import org.springframework.boot.autoconfigure.web.ErrorProperties.IncludeAttribute;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.cloud.CloudPlatform;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.tomcat.ConfigurableTomcatWebServerFactory;
|
||||
|
@ -42,6 +41,7 @@ import org.springframework.boot.tomcat.autoconfigure.TomcatServerProperties.Acce
|
|||
import org.springframework.boot.tomcat.autoconfigure.TomcatServerProperties.Remoteip;
|
||||
import org.springframework.boot.tomcat.autoconfigure.TomcatServerProperties.UseApr;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.util.Assert;
|
||||
|
|
|
@ -24,7 +24,6 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.web.server.reactive.ReactiveWebServerConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
|
||||
import org.springframework.boot.tomcat.TomcatContextCustomizer;
|
||||
|
@ -32,6 +31,7 @@ import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
|
|||
import org.springframework.boot.tomcat.autoconfigure.TomcatServerProperties;
|
||||
import org.springframework.boot.tomcat.autoconfigure.TomcatWebServerConfiguration;
|
||||
import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
|
||||
import org.springframework.boot.web.server.autoconfigure.reactive.ReactiveWebServerConfiguration;
|
||||
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
|
|
@ -29,9 +29,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.condition.SearchStrategy;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.server.servlet.ForwardedHeaderFilterCustomizer;
|
||||
import org.springframework.boot.autoconfigure.web.server.servlet.ServletWebServerConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
|
||||
import org.springframework.boot.tomcat.TomcatContextCustomizer;
|
||||
|
@ -39,6 +36,9 @@ import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
|
|||
import org.springframework.boot.tomcat.autoconfigure.TomcatServerProperties;
|
||||
import org.springframework.boot.tomcat.autoconfigure.TomcatWebServerConfiguration;
|
||||
import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.servlet.ForwardedHeaderFilterCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.servlet.ServletWebServerConfiguration;
|
||||
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
|
|
@ -32,14 +32,14 @@ import org.apache.coyote.http2.Http2Protocol;
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties.ForwardHeadersStrategy;
|
||||
import org.springframework.boot.context.properties.bind.Bindable;
|
||||
import org.springframework.boot.context.properties.bind.Binder;
|
||||
import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
|
||||
import org.springframework.boot.tomcat.TomcatWebServer;
|
||||
import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties.ForwardHeadersStrategy;
|
||||
import org.springframework.mock.env.MockEnvironment;
|
||||
import org.springframework.test.context.support.TestPropertySourceUtils;
|
||||
import org.springframework.util.unit.DataSize;
|
||||
|
|
|
@ -24,7 +24,6 @@ import org.apache.catalina.connector.Connector;
|
|||
import org.apache.catalina.startup.Tomcat;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.server.reactive.AbstractReactiveWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
|
||||
import org.springframework.boot.tomcat.TomcatContextCustomizer;
|
||||
import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
|
||||
|
@ -32,6 +31,7 @@ import org.springframework.boot.tomcat.TomcatWebServer;
|
|||
import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServer;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.reactive.AbstractReactiveWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.web.server.reactive.context.ReactiveWebServerApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
@ -21,12 +21,12 @@ import org.apache.catalina.Context;
|
|||
import org.apache.catalina.connector.Connector;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.server.servlet.AbstractServletWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
|
||||
import org.springframework.boot.tomcat.TomcatContextCustomizer;
|
||||
import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
|
||||
import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.servlet.AbstractServletWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
@ -19,8 +19,8 @@ package org.springframework.boot.undertow.autoconfigure;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWarDeployment;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnThreading;
|
||||
import org.springframework.boot.autoconfigure.thread.Threading;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.undertow.servlet.UndertowDeploymentInfoCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.Environment;
|
||||
|
|
|
@ -29,12 +29,12 @@ import io.undertow.UndertowOptions;
|
|||
import org.xnio.Option;
|
||||
import org.xnio.Options;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.cloud.CloudPlatform;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.undertow.ConfigurableUndertowWebServerFactory;
|
||||
import org.springframework.boot.undertow.autoconfigure.UndertowServerProperties.Accesslog;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.util.Assert;
|
||||
|
|
|
@ -24,12 +24,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.web.server.reactive.ReactiveWebServerConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.undertow.UndertowBuilderCustomizer;
|
||||
import org.springframework.boot.undertow.autoconfigure.UndertowServerProperties;
|
||||
import org.springframework.boot.undertow.autoconfigure.UndertowWebServerConfiguration;
|
||||
import org.springframework.boot.undertow.reactive.UndertowReactiveWebServerFactory;
|
||||
import org.springframework.boot.web.server.autoconfigure.reactive.ReactiveWebServerConfiguration;
|
||||
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
|
|
@ -29,13 +29,13 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.condition.SearchStrategy;
|
||||
import org.springframework.boot.autoconfigure.web.server.servlet.ServletWebServerConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.undertow.UndertowBuilderCustomizer;
|
||||
import org.springframework.boot.undertow.autoconfigure.UndertowServerProperties;
|
||||
import org.springframework.boot.undertow.autoconfigure.UndertowWebServerConfiguration;
|
||||
import org.springframework.boot.undertow.servlet.UndertowDeploymentInfoCustomizer;
|
||||
import org.springframework.boot.undertow.servlet.UndertowServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.autoconfigure.servlet.ServletWebServerConfiguration;
|
||||
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
|
||||
package org.springframework.boot.undertow.autoconfigure.servlet;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.undertow.autoconfigure.UndertowServerProperties;
|
||||
import org.springframework.boot.undertow.servlet.UndertowServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
|
||||
/**
|
||||
* {@link WebServerFactoryCustomizer} to apply {@link ServerProperties} to Undertow
|
||||
|
|
|
@ -29,12 +29,12 @@ import org.xnio.Option;
|
|||
import org.xnio.OptionMap;
|
||||
import org.xnio.Options;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.bind.Bindable;
|
||||
import org.springframework.boot.context.properties.bind.Binder;
|
||||
import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
|
||||
import org.springframework.boot.undertow.ConfigurableUndertowWebServerFactory;
|
||||
import org.springframework.boot.undertow.UndertowBuilderCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.mock.env.MockEnvironment;
|
||||
import org.springframework.test.context.support.TestPropertySourceUtils;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
|
|
@ -19,11 +19,11 @@ package org.springframework.boot.undertow.autoconfigure.reactive;
|
|||
import io.undertow.Undertow.Builder;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.server.reactive.AbstractReactiveWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.undertow.UndertowBuilderCustomizer;
|
||||
import org.springframework.boot.undertow.reactive.UndertowReactiveWebServerFactory;
|
||||
import org.springframework.boot.undertow.servlet.UndertowDeploymentInfoCustomizer;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.reactive.AbstractReactiveWebServerAutoConfigurationTests;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
|
|
|
@ -21,11 +21,11 @@ import io.undertow.servlet.api.DeploymentInfo;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.web.server.servlet.AbstractServletWebServerAutoConfigurationTests;
|
||||
import org.springframework.boot.undertow.UndertowBuilderCustomizer;
|
||||
import org.springframework.boot.undertow.servlet.UndertowDeploymentInfoCustomizer;
|
||||
import org.springframework.boot.undertow.servlet.UndertowServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.servlet.AbstractServletWebServerAutoConfigurationTests;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
plugins {
|
||||
id "java-library"
|
||||
id "java-test-fixtures"
|
||||
id "org.springframework.boot.configuration-properties"
|
||||
id "org.springframework.boot.deployed"
|
||||
id "org.springframework.boot.optional-dependencies"
|
||||
}
|
||||
|
@ -11,10 +12,12 @@ dependencies {
|
|||
api(project(":spring-boot-project:spring-boot"))
|
||||
api("org.springframework:spring-web")
|
||||
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
optional("io.projectreactor:reactor-core")
|
||||
optional("jakarta.servlet:jakarta.servlet-api")
|
||||
optional("org.springframework:spring-test")
|
||||
|
||||
testFixturesCompileOnly(project(":spring-boot-project:spring-boot-test"))
|
||||
testFixturesCompileOnly(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
|
||||
testFixturesCompileOnly("io.projectreactor:reactor-test")
|
||||
testFixturesCompileOnly("io.projectreactor.netty:reactor-netty-http")
|
||||
|
@ -23,10 +26,13 @@ dependencies {
|
|||
testFixturesCompileOnly("org.eclipse.jetty.http2:jetty-http2-client")
|
||||
testFixturesCompileOnly("org.eclipse.jetty.http2:jetty-http2-client-transport")
|
||||
testFixturesCompileOnly("jakarta.servlet:jakarta.servlet-api")
|
||||
testFixturesCompileOnly("jakarta.websocket:jakarta.websocket-api")
|
||||
testFixturesCompileOnly("jakarta.websocket:jakarta.websocket-client-api")
|
||||
testFixturesCompileOnly("org.mockito:mockito-core")
|
||||
testFixturesCompileOnly("org.springframework:spring-tx")
|
||||
testFixturesCompileOnly("org.springframework:spring-webflux")
|
||||
|
||||
testImplementation(project(":spring-boot-project:spring-boot-test"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
|
||||
testImplementation(testFixtures(project(":spring-boot-project:spring-boot")))
|
||||
testImplementation("org.apache.tomcat.embed:tomcat-embed-core")
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web;
|
||||
package org.springframework.boot.web.server.autoconfigure;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.time.Duration;
|
||||
|
@ -22,6 +22,7 @@ import java.time.temporal.ChronoUnit;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ErrorProperties;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.NestedConfigurationProperty;
|
||||
import org.springframework.boot.convert.DurationUnit;
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* Copyright 2012-2025 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Classes related to the auto-configuration of a web server.
|
||||
*/
|
||||
package org.springframework.boot.web.server.autoconfigure;
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.reactive;
|
||||
package org.springframework.boot.web.server.autoconfigure.reactive;
|
||||
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
|
@ -25,10 +25,10 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
|||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizerBeanPostProcessor;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
|
@ -14,12 +14,12 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.reactive;
|
||||
package org.springframework.boot.web.server.autoconfigure.reactive;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.reactive.ConfigurableReactiveWebServerFactory;
|
||||
import org.springframework.core.Ordered;
|
||||
|
|
@ -17,4 +17,4 @@
|
|||
/**
|
||||
* Classes related to the auto-configuration of a reactive web server.
|
||||
*/
|
||||
package org.springframework.boot.autoconfigure.web.server.reactive;
|
||||
package org.springframework.boot.web.server.autoconfigure.reactive;
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.servlet;
|
||||
package org.springframework.boot.web.server.autoconfigure.servlet;
|
||||
|
||||
import org.springframework.web.filter.ForwardedHeaderFilter;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.servlet;
|
||||
package org.springframework.boot.web.server.autoconfigure.servlet;
|
||||
|
||||
import jakarta.servlet.DispatcherType;
|
||||
|
||||
|
@ -27,11 +27,11 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
|||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingFilterBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.boot.web.error.ErrorPageRegistrarBeanPostProcessor;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizerBeanPostProcessor;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.servlet.CookieSameSiteSupplier;
|
||||
import org.springframework.boot.web.server.servlet.WebListenerRegistrar;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
|
@ -14,15 +14,15 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.servlet;
|
||||
package org.springframework.boot.web.server.autoconfigure.servlet;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.servlet.ConfigurableServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.servlet.CookieSameSiteSupplier;
|
||||
import org.springframework.boot.web.server.servlet.WebListenerRegistrar;
|
|
@ -17,4 +17,4 @@
|
|||
/**
|
||||
* Classes related to the auto-configuration of a servlet web server.
|
||||
*/
|
||||
package org.springframework.boot.autoconfigure.web.server.servlet;
|
||||
package org.springframework.boot.web.server.autoconfigure.servlet;
|
|
@ -0,0 +1,336 @@
|
|||
{
|
||||
"properties": [
|
||||
{
|
||||
"name": "server.compression.enabled",
|
||||
"description": "Whether response compression is enabled.",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "server.compression.excluded-user-agents",
|
||||
"description": "Comma-separated list of user agents for which responses should not be compressed."
|
||||
},
|
||||
{
|
||||
"name": "server.compression.mime-types",
|
||||
"description": "Comma-separated list of MIME types that should be compressed.",
|
||||
"defaultValue": [
|
||||
"text/html",
|
||||
"text/xml",
|
||||
"text/plain",
|
||||
"text/css",
|
||||
"text/javascript",
|
||||
"application/javascript",
|
||||
"application/json",
|
||||
"application/xml"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "server.compression.min-response-size",
|
||||
"description": "Minimum \"Content-Length\" value that is required for compression to be performed.",
|
||||
"defaultValue": "2KB"
|
||||
},
|
||||
{
|
||||
"name": "server.connection-timeout",
|
||||
"type": "java.time.Duration",
|
||||
"deprecation": {
|
||||
"reason": "Each server behaves differently. Use server specific properties instead.",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.error.include-binding-errors",
|
||||
"description": "When to include \"errors\" attribute.",
|
||||
"defaultValue": "never"
|
||||
},
|
||||
{
|
||||
"name": "server.error.include-exception",
|
||||
"description": "Include the \"exception\" attribute.",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "server.error.include-message",
|
||||
"description": "When to include the \"message\" attribute.",
|
||||
"defaultValue": "never"
|
||||
},
|
||||
{
|
||||
"name": "server.error.include-path",
|
||||
"description": "When to include the \"path\" attribute.",
|
||||
"defaultValue": "always"
|
||||
},
|
||||
{
|
||||
"name": "server.error.include-stacktrace",
|
||||
"description": "When to include the \"trace\" attribute.",
|
||||
"defaultValue": "never"
|
||||
},
|
||||
{
|
||||
"name": "server.error.path",
|
||||
"description": "Path of the error controller",
|
||||
"defaultValue": "/error"
|
||||
},
|
||||
{
|
||||
"name": "server.error.whitelabel.enabled",
|
||||
"description": "Whether to enable the default error page displayed in browsers in case of a server error.",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"name": "server.http2.enabled",
|
||||
"description": "Whether to enable HTTP/2 support, if the current environment supports it.",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "server.max-http-header-size",
|
||||
"deprecation": {
|
||||
"replacement": "server.max-http-request-header-size",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.max-http-post-size",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Maximum size in bytes of the HTTP post content.",
|
||||
"defaultValue": 0,
|
||||
"deprecation": {
|
||||
"reason": "Use dedicated property for each container.",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.port",
|
||||
"defaultValue": 8080
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.domain",
|
||||
"description": "Domain for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.http-only",
|
||||
"description": "Whether to use \"HttpOnly\" cookies for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.max-age",
|
||||
"description": "Maximum age of the cookie. If a duration suffix is not specified, seconds will be used. A positive value indicates when the cookie expires relative to the current time. A value of 0 means the cookie should expire immediately. A negative value means no \"Max-Age\"."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.name",
|
||||
"description": "Name for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.partitioned",
|
||||
"description": "Whether the generated cookie carries the Partitioned attribute."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.path",
|
||||
"description": "Path of the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.same-site",
|
||||
"description": "SameSite setting for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.reactive.session.cookie.secure",
|
||||
"description": "Whether to always mark the cookie as secure."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.charset",
|
||||
"description": "Charset of HTTP requests and responses. Added to the \"Content-Type\" header if not set explicitly.",
|
||||
"defaultValue": "UTF-8"
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.enabled",
|
||||
"type": "java.lang.Boolean",
|
||||
"description": "Whether to enable http encoding support.",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.force",
|
||||
"description": "Whether to force the encoding to the configured charset on HTTP requests and responses."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.force-request",
|
||||
"description": "Whether to force the encoding to the configured charset on HTTP requests. Defaults to true when \"force\" has not been specified."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.force-response",
|
||||
"description": "Whether to force the encoding to the configured charset on HTTP responses."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.encoding.mapping",
|
||||
"description": "Mapping of locale to charset for response encoding."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.jsp.class-name",
|
||||
"description": "Class name of the servlet to use for JSPs. If registered is true and this class\n\t * is on the classpath then it will be registered.",
|
||||
"defaultValue": "org.apache.jasper.servlet.JspServlet"
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.jsp.init-parameters",
|
||||
"description": "Init parameters used to configure the JSP servlet."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.jsp.registered",
|
||||
"description": "Whether the JSP servlet is registered.",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.path",
|
||||
"type": "java.lang.String",
|
||||
"description": "Path of the main dispatcher servlet.",
|
||||
"defaultValue": "/",
|
||||
"deprecation": {
|
||||
"replacement": "spring.mvc.servlet.path",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.comment",
|
||||
"description": "Comment for the cookie.",
|
||||
"deprecation": {
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.domain",
|
||||
"description": "Domain for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.http-only",
|
||||
"description": "Whether to use \"HttpOnly\" cookies for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.max-age",
|
||||
"description": "Maximum age of the cookie. If a duration suffix is not specified, seconds will be used. A positive value indicates when the cookie expires relative to the current time. A value of 0 means the cookie should expire immediately. A negative value means no \"Max-Age\"."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.name",
|
||||
"description": "Name of the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.partitioned",
|
||||
"description": "Whether the generated cookie carries the Partitioned attribute."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.path",
|
||||
"description": "Path of the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.same-site",
|
||||
"description": "SameSite setting for the cookie."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.cookie.secure",
|
||||
"description": "Whether to always mark the cookie as secure."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.persistent",
|
||||
"description": "Whether to persist session data between restarts.",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.store-dir",
|
||||
"description": "Directory used to store session data."
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.timeout",
|
||||
"description": "Session timeout. If a duration suffix is not specified, seconds will be used.",
|
||||
"defaultValue": "30m"
|
||||
},
|
||||
{
|
||||
"name": "server.servlet.session.tracking-modes",
|
||||
"description": "Session tracking modes."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.bundle",
|
||||
"description": "Name of a configured SSL bundle."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.certificate",
|
||||
"description": "Path to a PEM-encoded SSL certificate file."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.certificate-private-key",
|
||||
"description": "Path to a PEM-encoded private key file for the SSL certificate."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.ciphers",
|
||||
"description": "Supported SSL ciphers."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.client-auth",
|
||||
"description": "Client authentication mode. Requires a trust store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.enabled",
|
||||
"description": "Whether to enable SSL support.",
|
||||
"defaultValue": true
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.enabled-protocols",
|
||||
"description": "Enabled SSL protocols."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-alias",
|
||||
"description": "Alias that identifies the key in the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-password",
|
||||
"description": "Password used to access the key in the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-store",
|
||||
"description": "Path to the key store that holds the SSL certificate (typically a jks file)."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-store-password",
|
||||
"description": "Password used to access the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-store-provider",
|
||||
"description": "Provider for the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.key-store-type",
|
||||
"description": "Type of the key store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.protocol",
|
||||
"description": "SSL protocol to use.",
|
||||
"defaultValue": "TLS"
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.server-name-bundles",
|
||||
"description": "Mapping of host names to SSL bundles for SNI configuration."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-certificate",
|
||||
"description": "Path to a PEM-encoded SSL certificate authority file."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-certificate-private-key",
|
||||
"description": "Path to a PEM-encoded private key file for the SSL certificate authority."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-store",
|
||||
"description": "Trust store that holds SSL certificates."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-store-password",
|
||||
"description": "Password used to access the trust store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-store-provider",
|
||||
"description": "Provider for the trust store."
|
||||
},
|
||||
{
|
||||
"name": "server.ssl.trust-store-type",
|
||||
"description": "Type of the trust store."
|
||||
},
|
||||
{
|
||||
"name": "server.use-forward-headers",
|
||||
"type": "java.lang.Boolean",
|
||||
"deprecation": {
|
||||
"reason": "Replaced to support additional strategies.",
|
||||
"replacement": "server.forward-headers-strategy",
|
||||
"level": "error"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -26,9 +26,9 @@ import org.springframework.boot.context.properties.bind.Bindable;
|
|||
import org.springframework.boot.context.properties.bind.Binder;
|
||||
import org.springframework.boot.context.properties.source.ConfigurationPropertySource;
|
||||
import org.springframework.boot.context.properties.source.MapConfigurationPropertySource;
|
||||
import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
|
||||
import org.springframework.boot.web.server.MimeMappings;
|
||||
import org.springframework.boot.web.server.MimeMappings.Mapping;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.util.unit.DataSize;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
@ -51,7 +51,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
* @author Lasse Wulff
|
||||
* @author Moritz Halbritter
|
||||
*/
|
||||
@DirtiesUrlFactories
|
||||
class ServerPropertiesTests {
|
||||
|
||||
private final ServerProperties properties = new ServerProperties();
|
|
@ -14,18 +14,18 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.reactive;
|
||||
package org.springframework.boot.web.server.autoconfigure.reactive;
|
||||
|
||||
import java.net.InetAddress;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.ssl.DefaultSslBundleRegistry;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.boot.web.server.Shutdown;
|
||||
import org.springframework.boot.web.server.Ssl;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.reactive.ConfigurableReactiveWebServerFactory;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.servlet;
|
||||
package org.springframework.boot.web.server.autoconfigure.servlet;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
|
@ -24,7 +24,6 @@ import org.junit.jupiter.api.BeforeEach;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.bind.Bindable;
|
||||
import org.springframework.boot.context.properties.bind.Binder;
|
||||
import org.springframework.boot.context.properties.source.ConfigurationPropertySource;
|
||||
|
@ -33,6 +32,7 @@ import org.springframework.boot.web.server.Cookie;
|
|||
import org.springframework.boot.web.server.MimeMappings;
|
||||
import org.springframework.boot.web.server.Shutdown;
|
||||
import org.springframework.boot.web.server.Ssl;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.servlet.ConfigurableServletWebServerFactory;
|
||||
import org.springframework.boot.web.server.servlet.Jsp;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.reactive;
|
||||
package org.springframework.boot.web.server.autoconfigure.reactive;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.autoconfigure.web.server.servlet;
|
||||
package org.springframework.boot.web.server.autoconfigure.servlet;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -36,7 +36,6 @@ import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguratio
|
|||
import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProviders;
|
||||
import org.springframework.boot.autoconfigure.thread.Threading;
|
||||
import org.springframework.boot.autoconfigure.web.ConditionalOnEnabledResourceChain;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.WebProperties;
|
||||
import org.springframework.boot.autoconfigure.web.WebProperties.Resources;
|
||||
import org.springframework.boot.autoconfigure.web.WebResourcesRuntimeHints;
|
||||
|
@ -46,6 +45,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
|
|||
import org.springframework.boot.convert.ApplicationConversionService;
|
||||
import org.springframework.boot.http.codec.CodecCustomizer;
|
||||
import org.springframework.boot.validation.autoconfigure.ValidatorAdapter;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.webflux.autoconfigure.WebFluxProperties.Format;
|
||||
import org.springframework.boot.webflux.filter.OrderedHiddenHttpMethodFilter;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
|
|
@ -23,11 +23,11 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.web.server.Cookie;
|
||||
import org.springframework.boot.web.server.Cookie.SameSite;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.http.ResponseCookie.ResponseCookieBuilder;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
|
|
@ -23,9 +23,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.condition.SearchStrategy;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.WebProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration;
|
||||
import org.springframework.boot.webflux.error.DefaultErrorAttributes;
|
||||
import org.springframework.boot.webflux.error.ErrorAttributes;
|
||||
|
|
|
@ -47,7 +47,6 @@ import org.junit.jupiter.params.provider.ValueSource;
|
|||
import org.springframework.aop.support.AopUtils;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.http.codec.CodecCustomizer;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.boot.test.context.runner.ContextConsumer;
|
||||
|
@ -56,6 +55,7 @@ import org.springframework.boot.testsupport.classpath.resources.WithResource;
|
|||
import org.springframework.boot.validation.autoconfigure.ValidationAutoConfiguration;
|
||||
import org.springframework.boot.validation.autoconfigure.ValidatorAdapter;
|
||||
import org.springframework.boot.web.context.reactive.ReactiveWebApplicationContext;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.reactive.MockReactiveWebServerFactory;
|
||||
import org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration.WebFluxConfig;
|
||||
import org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfigurationTests.OrderedControllerAdviceBeansConfiguration.HighestOrderedControllerAdvice;
|
||||
|
|
|
@ -32,7 +32,6 @@ import reactor.core.scheduler.Schedulers;
|
|||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.WebProperties;
|
||||
import org.springframework.boot.mustache.autoconfigure.MustacheAutoConfiguration;
|
||||
import org.springframework.boot.reactor.netty.autoconfigure.NettyReactiveWebServerAutoConfiguration;
|
||||
|
@ -43,6 +42,7 @@ import org.springframework.boot.test.system.OutputCaptureExtension;
|
|||
import org.springframework.boot.testsupport.classpath.resources.WithResource;
|
||||
import org.springframework.boot.web.error.ErrorAttributeOptions;
|
||||
import org.springframework.boot.web.error.ErrorAttributeOptions.Include;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.webflux.autoconfigure.HttpHandlerAutoConfiguration;
|
||||
import org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration;
|
||||
import org.springframework.boot.webflux.error.DefaultErrorAttributes;
|
||||
|
|
|
@ -19,6 +19,7 @@ dependencies {
|
|||
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
optional(project(":spring-boot-project:spring-boot-validation"))
|
||||
optional(project(":spring-boot-project:spring-boot-web-server"))
|
||||
|
||||
testImplementation(project(":spring-boot-project:spring-boot-freemarker"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-test"))
|
||||
|
|
|
@ -44,13 +44,13 @@ import org.springframework.boot.autoconfigure.condition.SearchStrategy;
|
|||
import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
|
||||
import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider;
|
||||
import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProviders;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.autoconfigure.web.WebProperties;
|
||||
import org.springframework.boot.autoconfigure.web.WebProperties.Resources;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.web.error.ErrorPage;
|
||||
import org.springframework.boot.web.error.ErrorPageRegistrar;
|
||||
import org.springframework.boot.web.error.ErrorPageRegistry;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletPath;
|
||||
import org.springframework.boot.webmvc.autoconfigure.WebMvcAutoConfiguration;
|
||||
import org.springframework.boot.webmvc.autoconfigure.WebMvcProperties;
|
||||
|
@ -84,7 +84,7 @@ import org.springframework.web.util.HtmlUtils;
|
|||
// Load before the main WebMvcAutoConfiguration so that the error View is available
|
||||
@AutoConfiguration(before = WebMvcAutoConfiguration.class)
|
||||
@ConditionalOnWebApplication(type = Type.SERVLET)
|
||||
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class })
|
||||
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, ServerProperties.class })
|
||||
@EnableConfigurationProperties({ ServerProperties.class, WebMvcProperties.class })
|
||||
public class ErrorMvcAutoConfiguration {
|
||||
|
||||
|
|
|
@ -39,13 +39,13 @@ import org.springframework.beans.factory.ObjectProvider;
|
|||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.freemarker.autoconfigure.FreeMarkerAutoConfiguration;
|
||||
import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration;
|
||||
import org.springframework.boot.testsupport.classpath.resources.WithResource;
|
||||
import org.springframework.boot.tomcat.autoconfigure.servlet.TomcatServletWebServerAutoConfiguration;
|
||||
import org.springframework.boot.web.error.ErrorAttributeOptions;
|
||||
import org.springframework.boot.web.error.ErrorAttributeOptions.Include;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.boot.web.server.test.client.TestRestTemplate;
|
||||
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletAutoConfiguration;
|
||||
import org.springframework.boot.webmvc.autoconfigure.WebMvcAutoConfiguration;
|
||||
|
|
|
@ -10,4 +10,5 @@ dependencies {
|
|||
implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter"))
|
||||
|
||||
testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-web-server"))
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
|
@ -20,9 +20,9 @@ import org.junit.jupiter.api.AfterEach;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.BeanCreationException;
|
||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
||||
import org.springframework.boot.context.properties.bind.validation.BindValidationException;
|
||||
import org.springframework.boot.test.util.TestPropertyValues;
|
||||
import org.springframework.boot.web.server.autoconfigure.ServerProperties;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
|
|
@ -120,6 +120,13 @@
|
|||
<allow pkg="org.springframework.boot.web.error" />
|
||||
<allow pkg="org.springframework.boot.web.server" />
|
||||
<disallow pkg="org.springframework.context" />
|
||||
<subpackage name="autoconfigure">
|
||||
<allow pkg="org.springframework.context" />
|
||||
<subpackage name="servlet">
|
||||
<allow pkg="jakarta.servlet" />
|
||||
<allow pkg="org.springframework.boot.web.servlet" />
|
||||
</subpackage>
|
||||
</subpackage>
|
||||
<subpackage name="context">
|
||||
<allow pkg="org.springframework.context" />
|
||||
</subpackage>
|
||||
|
|
Loading…
Reference in New Issue