Commit a83d9635 authored by Brian Clozel's avatar Brian Clozel

Merge branch '2.1.x'

parents ead9b51c 6200a319
/* /*
* Copyright 2012-2018 the original author or authors. * Copyright 2012-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -16,6 +16,10 @@ ...@@ -16,6 +16,10 @@
package org.springframework.boot.autoconfigure.web.embedded; package org.springframework.boot.autoconfigure.web.embedded;
import java.time.Duration;
import io.netty.channel.ChannelOption;
import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.boot.cloud.CloudPlatform; import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.properties.PropertyMapper; import org.springframework.boot.context.properties.PropertyMapper;
...@@ -31,6 +35,7 @@ import org.springframework.util.unit.DataSize; ...@@ -31,6 +35,7 @@ import org.springframework.util.unit.DataSize;
* *
* @author Brian Clozel * @author Brian Clozel
* @author Chentao Qu * @author Chentao Qu
* @author Artsiom Yudovin
* @since 2.1.0 * @since 2.1.0
*/ */
public class NettyWebServerFactoryCustomizer public class NettyWebServerFactoryCustomizer
...@@ -60,6 +65,10 @@ public class NettyWebServerFactoryCustomizer ...@@ -60,6 +65,10 @@ public class NettyWebServerFactoryCustomizer
.asInt(DataSize::toBytes) .asInt(DataSize::toBytes)
.to((maxHttpRequestHeaderSize) -> customizeMaxHttpHeaderSize(factory, .to((maxHttpRequestHeaderSize) -> customizeMaxHttpHeaderSize(factory,
maxHttpRequestHeaderSize)); maxHttpRequestHeaderSize));
propertyMapper.from(this.serverProperties::getConnectionTimeout).whenNonNull()
.asInt(Duration::toMillis)
.to((duration) -> customizeConnectionTimeOut(factory, duration));
} }
private boolean getOrDeduceUseForwardHeaders(ServerProperties serverProperties, private boolean getOrDeduceUseForwardHeaders(ServerProperties serverProperties,
...@@ -78,4 +87,11 @@ public class NettyWebServerFactoryCustomizer ...@@ -78,4 +87,11 @@ public class NettyWebServerFactoryCustomizer
.maxHeaderSize(maxHttpHeaderSize))); .maxHeaderSize(maxHttpHeaderSize)));
} }
private void customizeConnectionTimeOut(NettyReactiveWebServerFactory factory,
int duration) {
factory.addServerCustomizers((NettyServerCustomizer) (httpServer) -> httpServer
.tcpConfiguration((tcpServer) -> tcpServer
.selectorOption(ChannelOption.CONNECT_TIMEOUT_MILLIS, duration)));
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment