|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
/*
|
|
|
|
|
* 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");
|
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
@ -16,6 +16,10 @@
|
|
|
|
|
|
|
|
|
|
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.cloud.CloudPlatform;
|
|
|
|
|
import org.springframework.boot.context.properties.PropertyMapper;
|
|
|
|
@ -31,6 +35,7 @@ import org.springframework.util.unit.DataSize;
|
|
|
|
|
*
|
|
|
|
|
* @author Brian Clozel
|
|
|
|
|
* @author Chentao Qu
|
|
|
|
|
* @author Artsiom Yudovin
|
|
|
|
|
* @since 2.1.0
|
|
|
|
|
*/
|
|
|
|
|
public class NettyWebServerFactoryCustomizer
|
|
|
|
@ -60,6 +65,10 @@ public class NettyWebServerFactoryCustomizer
|
|
|
|
|
.asInt(DataSize::toBytes)
|
|
|
|
|
.to((maxHttpRequestHeaderSize) -> customizeMaxHttpHeaderSize(factory,
|
|
|
|
|
maxHttpRequestHeaderSize));
|
|
|
|
|
propertyMapper.from(this.serverProperties::getConnectionTimeout).whenNonNull()
|
|
|
|
|
.asInt(Duration::toMillis)
|
|
|
|
|
.to((duration) -> customizeConnectionTimeOut(factory, duration));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private boolean getOrDeduceUseForwardHeaders(ServerProperties serverProperties,
|
|
|
|
@ -78,4 +87,11 @@ public class NettyWebServerFactoryCustomizer
|
|
|
|
|
.maxHeaderSize(maxHttpHeaderSize)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void customizeConnectionTimeOut(NettyReactiveWebServerFactory factory,
|
|
|
|
|
int duration) {
|
|
|
|
|
factory.addServerCustomizers((NettyServerCustomizer) (httpServer) -> httpServer
|
|
|
|
|
.tcpConfiguration((tcpServer) -> tcpServer
|
|
|
|
|
.selectorOption(ChannelOption.CONNECT_TIMEOUT_MILLIS, duration)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|