Enable compression support via configuration
Fixes gh-361 Fixes gh-2146
This commit is contained in:
committed by
spencergibb
parent
df5e032bc9
commit
15db93cca9
@@ -15,15 +15,15 @@
|
||||
|spring.cloud.gateway.filter.remove-hop-by-hop.order | |
|
||||
|spring.cloud.gateway.filter.request-rate-limiter.deny-empty-key | true | Switch to deny requests if the Key Resolver returns an empty key, defaults to true.
|
||||
|spring.cloud.gateway.filter.request-rate-limiter.empty-key-status-code | | HttpStatus to return when denyEmptyKey is true, defaults to FORBIDDEN.
|
||||
|spring.cloud.gateway.filter.secure-headers.content-security-policy | default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src https:; style-src 'self' https: 'unsafe-inline' |
|
||||
|spring.cloud.gateway.filter.secure-headers.content-type-options | nosniff |
|
||||
|spring.cloud.gateway.filter.secure-headers.content-security-policy | default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src https:; style-src 'self' https: 'unsafe-inline' |
|
||||
|spring.cloud.gateway.filter.secure-headers.content-type-options | nosniff |
|
||||
|spring.cloud.gateway.filter.secure-headers.disable | |
|
||||
|spring.cloud.gateway.filter.secure-headers.download-options | noopen |
|
||||
|spring.cloud.gateway.filter.secure-headers.frame-options | DENY |
|
||||
|spring.cloud.gateway.filter.secure-headers.permitted-cross-domain-policies | none |
|
||||
|spring.cloud.gateway.filter.secure-headers.referrer-policy | no-referrer |
|
||||
|spring.cloud.gateway.filter.secure-headers.strict-transport-security | max-age=631138519 |
|
||||
|spring.cloud.gateway.filter.secure-headers.xss-protection-header | 1 ; mode=block |
|
||||
|spring.cloud.gateway.filter.secure-headers.download-options | noopen |
|
||||
|spring.cloud.gateway.filter.secure-headers.frame-options | DENY |
|
||||
|spring.cloud.gateway.filter.secure-headers.permitted-cross-domain-policies | none |
|
||||
|spring.cloud.gateway.filter.secure-headers.referrer-policy | no-referrer |
|
||||
|spring.cloud.gateway.filter.secure-headers.strict-transport-security | max-age=631138519 |
|
||||
|spring.cloud.gateway.filter.secure-headers.xss-protection-header | 1 ; mode=block |
|
||||
|spring.cloud.gateway.forwarded.enabled | true | Enables the ForwardedHeadersFilter.
|
||||
|spring.cloud.gateway.globalcors.add-to-simple-url-handler-mapping | false | If global CORS config should be added to the URL handler.
|
||||
|spring.cloud.gateway.globalcors.cors-configurations | |
|
||||
@@ -43,12 +43,12 @@
|
||||
|spring.cloud.gateway.httpclient.proxy.username | | Username for proxy configuration of Netty HttpClient.
|
||||
|spring.cloud.gateway.httpclient.response-timeout | | The response timeout.
|
||||
|spring.cloud.gateway.httpclient.ssl.close-notify-flush-timeout | 3000ms | SSL close_notify flush timeout. Default to 3000 ms.
|
||||
|spring.cloud.gateway.httpclient.ssl.close-notify-flush-timeout-millis | |
|
||||
|spring.cloud.gateway.httpclient.ssl.close-notify-flush-timeout-millis | |
|
||||
|spring.cloud.gateway.httpclient.ssl.close-notify-read-timeout | | SSL close_notify read timeout. Default to 0 ms.
|
||||
|spring.cloud.gateway.httpclient.ssl.close-notify-read-timeout-millis | |
|
||||
|spring.cloud.gateway.httpclient.ssl.close-notify-read-timeout-millis | |
|
||||
|spring.cloud.gateway.httpclient.ssl.default-configuration-type | | The default ssl configuration type. Defaults to TCP.
|
||||
|spring.cloud.gateway.httpclient.ssl.handshake-timeout | 10000ms | SSL handshake timeout. Default to 10000 ms
|
||||
|spring.cloud.gateway.httpclient.ssl.handshake-timeout-millis | |
|
||||
|spring.cloud.gateway.httpclient.ssl.handshake-timeout-millis | |
|
||||
|spring.cloud.gateway.httpclient.ssl.key-password | | Key password, default is same as keyStorePassword.
|
||||
|spring.cloud.gateway.httpclient.ssl.key-store | | Keystore path for Netty HttpClient.
|
||||
|spring.cloud.gateway.httpclient.ssl.key-store-password | | Keystore password.
|
||||
@@ -58,9 +58,10 @@
|
||||
|spring.cloud.gateway.httpclient.ssl.use-insecure-trust-manager | false | Installs the netty InsecureTrustManagerFactory. This is insecure and not suitable for production.
|
||||
|spring.cloud.gateway.httpclient.websocket.max-frame-payload-length | | Max frame payload length.
|
||||
|spring.cloud.gateway.httpclient.websocket.proxy-ping | true | Proxy ping frames to downstream services, defaults to true.
|
||||
|spring.cloud.gateway.httpclient.compression | `false` | Enables compression support for Netty HttpClient.
|
||||
|spring.cloud.gateway.httpclient.wiretap | false | Enables wiretap debugging for Netty HttpClient.
|
||||
|spring.cloud.gateway.httpserver.wiretap | false | Enables wiretap debugging for Netty HttpServer.
|
||||
|spring.cloud.gateway.loadbalancer.use404 | false |
|
||||
|spring.cloud.gateway.loadbalancer.use404 | false |
|
||||
|spring.cloud.gateway.metrics.enabled | true | Enables the collection of metrics data.
|
||||
|spring.cloud.gateway.metrics.tags | | Tags map that added to metrics.
|
||||
|spring.cloud.gateway.redis-rate-limiter.burst-capacity-header | X-RateLimit-Burst-Capacity | The name of the header that returns the burst capacity configuration.
|
||||
|
||||
@@ -166,6 +166,7 @@ import static org.springframework.cloud.gateway.config.HttpClientProperties.Pool
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
* @author Ziemowit Stolarczyk
|
||||
* @author Mete Alpaslan Katırcıoğlu
|
||||
*/
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMissing = true)
|
||||
@@ -761,6 +762,10 @@ public class GatewayAutoConfiguration {
|
||||
httpClient = httpClient.wiretap(true);
|
||||
}
|
||||
|
||||
if (properties.isCompression()) {
|
||||
httpClient = httpClient.compress(true);
|
||||
}
|
||||
|
||||
if (!CollectionUtils.isEmpty(customizers)) {
|
||||
customizers.sort(AnnotationAwareOrderComparator.INSTANCE);
|
||||
for (HttpClientCustomizer customizer : customizers) {
|
||||
|
||||
@@ -78,6 +78,9 @@ public class HttpClientProperties {
|
||||
/** Enables wiretap debugging for Netty HttpClient. */
|
||||
private boolean wiretap;
|
||||
|
||||
/** Enables compression for Netty HttpClient. */
|
||||
private boolean compression;
|
||||
|
||||
public Integer getConnectTimeout() {
|
||||
return connectTimeout;
|
||||
}
|
||||
@@ -152,6 +155,14 @@ public class HttpClientProperties {
|
||||
this.wiretap = wiretap;
|
||||
}
|
||||
|
||||
public boolean isCompression() {
|
||||
return compression;
|
||||
}
|
||||
|
||||
public void setCompression(boolean compression) {
|
||||
this.compression = compression;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
// @formatter:off
|
||||
@@ -165,6 +176,7 @@ public class HttpClientProperties {
|
||||
.append("ssl", ssl)
|
||||
.append("websocket", websocket)
|
||||
.append("wiretap", wiretap)
|
||||
.append("compression", compression)
|
||||
.toString();
|
||||
// @formatter:on
|
||||
|
||||
|
||||
@@ -92,6 +92,7 @@ public class GatewayAutoConfigurationTests {
|
||||
"spring.cloud.gateway.httpclient.connect-timeout=10",
|
||||
"spring.cloud.gateway.httpclient.response-timeout=10s",
|
||||
"spring.cloud.gateway.httpclient.pool.type=fixed",
|
||||
"spring.cloud.gateway.httpclient.compression=true",
|
||||
// greather than integer max value
|
||||
"spring.cloud.gateway.httpclient.max-initial-line-length=2147483647",
|
||||
"spring.cloud.gateway.httpclient.proxy.host=myhost",
|
||||
@@ -103,6 +104,7 @@ public class GatewayAutoConfigurationTests {
|
||||
.getBean(HttpClientProperties.class);
|
||||
assertThat(properties.getMaxInitialLineLength().toBytes())
|
||||
.isLessThanOrEqualTo(Integer.MAX_VALUE);
|
||||
assertThat(properties.isCompression()).isEqualTo(true);
|
||||
/*
|
||||
* FIXME: 2.1.0 HttpClientOptions options = httpClient.options();
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user