formatting

This commit is contained in:
spencergibb
2020-11-02 14:49:33 -05:00
parent fffcd23214
commit 9a5ed3522b
4 changed files with 50 additions and 26 deletions

View File

@@ -32,7 +32,8 @@ import static org.springframework.cloud.gateway.support.GatewayToStringStyler.fi
*
* @author Spencer Gibb, Thirunavukkarasu Ravichandran
*/
public class SecureHeadersGatewayFilterFactory extends AbstractGatewayFilterFactory<SecureHeadersGatewayFilterFactory.Config> {
public class SecureHeadersGatewayFilterFactory
extends AbstractGatewayFilterFactory<SecureHeadersGatewayFilterFactory.Config> {
/**
* Xss-Protection header name.
@@ -97,7 +98,8 @@ public class SecureHeadersGatewayFilterFactory extends AbstractGatewayFilterFact
}
if (isEnabled(disabled, STRICT_TRANSPORT_SECURITY_HEADER)) {
headers.add(STRICT_TRANSPORT_SECURITY_HEADER, config.getStrictTransportSecurity());
headers.add(STRICT_TRANSPORT_SECURITY_HEADER,
config.getStrictTransportSecurity());
}
if (isEnabled(disabled, X_FRAME_OPTIONS_HEADER)) {
@@ -105,7 +107,8 @@ public class SecureHeadersGatewayFilterFactory extends AbstractGatewayFilterFact
}
if (isEnabled(disabled, X_CONTENT_TYPE_OPTIONS_HEADER)) {
headers.add(X_CONTENT_TYPE_OPTIONS_HEADER, config.getContentTypeOptions());
headers.add(X_CONTENT_TYPE_OPTIONS_HEADER,
config.getContentTypeOptions());
}
if (isEnabled(disabled, REFERRER_POLICY_HEADER)) {
@@ -113,7 +116,8 @@ public class SecureHeadersGatewayFilterFactory extends AbstractGatewayFilterFact
}
if (isEnabled(disabled, CONTENT_SECURITY_POLICY_HEADER)) {
headers.add(CONTENT_SECURITY_POLICY_HEADER, config.getContentSecurityPolicy());
headers.add(CONTENT_SECURITY_POLICY_HEADER,
config.getContentSecurityPolicy());
}
if (isEnabled(disabled, X_DOWNLOAD_OPTIONS_HEADER)) {
@@ -121,7 +125,8 @@ public class SecureHeadersGatewayFilterFactory extends AbstractGatewayFilterFact
}
if (isEnabled(disabled, X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER)) {
headers.add(X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER, config.getPermittedCrossDomainPolicies());
headers.add(X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER,
config.getPermittedCrossDomainPolicies());
}
return chain.filter(exchange);
@@ -197,7 +202,8 @@ public class SecureHeadersGatewayFilterFactory extends AbstractGatewayFilterFact
}
if (config.permittedCrossDomainPolicies == null) {
config.permittedCrossDomainPolicies = properties.getPermittedCrossDomainPolicies();
config.permittedCrossDomainPolicies = properties
.getPermittedCrossDomainPolicies();
}
return config;
}
@@ -267,4 +273,5 @@ public class SecureHeadersGatewayFilterFactory extends AbstractGatewayFilterFact
}
}
}

View File

@@ -566,7 +566,8 @@ public class GatewayFilterSpec extends UriSpec {
* @return a {@link GatewayFilterSpec} that can be used to apply additional filters
*/
public GatewayFilterSpec secureHeaders() {
return filter(getBean(SecureHeadersGatewayFilterFactory.class).apply(config -> {}));
return filter(getBean(SecureHeadersGatewayFilterFactory.class).apply(config -> {
}));
}
/**
@@ -576,8 +577,10 @@ public class GatewayFilterSpec extends UriSpec {
* @param configConsumer self define headers
* @return a {@link GatewayFilterSpec} that can be used to apply additional filters
*/
public GatewayFilterSpec secureHeaders(Consumer<SecureHeadersGatewayFilterFactory.Config> configConsumer) {
return filter(getBean(SecureHeadersGatewayFilterFactory.class).apply(configConsumer));
public GatewayFilterSpec secureHeaders(
Consumer<SecureHeadersGatewayFilterFactory.Config> configConsumer) {
return filter(
getBean(SecureHeadersGatewayFilterFactory.class).apply(configConsumer));
}
/**

View File

@@ -273,9 +273,12 @@ public class ReactiveLoadBalancerClientFilterTests {
ServiceInstance serviceInstance = new DefaultServiceInstance("myservice1",
"myservice", "localhost", 8080, false);
when(clientFactory.getInstance("myservice",
ReactorServiceInstanceLoadBalancer.class)).thenReturn(
new RoundRobinLoadBalancer(ServiceInstanceListSuppliers
.toProvider("myservice", serviceInstance), "myservice", -1));
ReactorServiceInstanceLoadBalancer.class))
.thenReturn(
new RoundRobinLoadBalancer(
ServiceInstanceListSuppliers
.toProvider("myservice", serviceInstance),
"myservice", -1));
when(chain.filter(exchange)).thenReturn(Mono.empty());
filter.filter(exchange, chain).block();

View File

@@ -91,7 +91,8 @@ public class SecureHeadersGatewayFilterFactoryUnitTests {
"content-security-policy", "x-download-options",
"x-permitted-cross-domain-policies"));
SecureHeadersGatewayFilterFactory filterFactory = new SecureHeadersGatewayFilterFactory(properties);
SecureHeadersGatewayFilterFactory filterFactory = new SecureHeadersGatewayFilterFactory(
properties);
filter = filterFactory.apply(new Config());
filter.filter(exchange, filterChain);
@@ -118,26 +119,36 @@ public class SecureHeadersGatewayFilterFactoryUnitTests {
filter.filter(exchange, filterChain);
ServerHttpResponse response = captor.getValue().getResponse();
assertThat(response.getHeaders()).containsKeys(X_XSS_PROTECTION_HEADER, STRICT_TRANSPORT_SECURITY_HEADER,
X_FRAME_OPTIONS_HEADER, X_CONTENT_TYPE_OPTIONS_HEADER, REFERRER_POLICY_HEADER,
CONTENT_SECURITY_POLICY_HEADER, X_DOWNLOAD_OPTIONS_HEADER, X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER);
assertThat(response.getHeaders()).containsKeys(X_XSS_PROTECTION_HEADER,
STRICT_TRANSPORT_SECURITY_HEADER, X_FRAME_OPTIONS_HEADER,
X_CONTENT_TYPE_OPTIONS_HEADER, REFERRER_POLICY_HEADER,
CONTENT_SECURITY_POLICY_HEADER, X_DOWNLOAD_OPTIONS_HEADER,
X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER);
assertThat(response.getHeaders().get(STRICT_TRANSPORT_SECURITY_HEADER)).containsOnly("max-age=65535");
assertThat(response.getHeaders().get(REFERRER_POLICY_HEADER)).containsOnly("referrer");
assertThat(response.getHeaders().get(X_XSS_PROTECTION_HEADER)).containsOnly(properties.getXssProtectionHeader());
assertThat(response.getHeaders().get(X_FRAME_OPTIONS_HEADER)).containsOnly(properties.getFrameOptions());
assertThat(response.getHeaders().get(X_CONTENT_TYPE_OPTIONS_HEADER)).containsOnly(properties.getContentTypeOptions());
assertThat(response.getHeaders().get(CONTENT_SECURITY_POLICY_HEADER)).containsOnly(properties.getContentSecurityPolicy());
assertThat(response.getHeaders().get(X_DOWNLOAD_OPTIONS_HEADER)).containsOnly(properties.getDownloadOptions());
assertThat(response.getHeaders().get(X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER)).containsOnly(properties.getPermittedCrossDomainPolicies());
assertThat(response.getHeaders().get(STRICT_TRANSPORT_SECURITY_HEADER))
.containsOnly("max-age=65535");
assertThat(response.getHeaders().get(REFERRER_POLICY_HEADER))
.containsOnly("referrer");
assertThat(response.getHeaders().get(X_XSS_PROTECTION_HEADER))
.containsOnly(properties.getXssProtectionHeader());
assertThat(response.getHeaders().get(X_FRAME_OPTIONS_HEADER))
.containsOnly(properties.getFrameOptions());
assertThat(response.getHeaders().get(X_CONTENT_TYPE_OPTIONS_HEADER))
.containsOnly(properties.getContentTypeOptions());
assertThat(response.getHeaders().get(CONTENT_SECURITY_POLICY_HEADER))
.containsOnly(properties.getContentSecurityPolicy());
assertThat(response.getHeaders().get(X_DOWNLOAD_OPTIONS_HEADER))
.containsOnly(properties.getDownloadOptions());
assertThat(response.getHeaders().get(X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER))
.containsOnly(properties.getPermittedCrossDomainPolicies());
}
@Test
public void toStringFormat() {
GatewayFilter filter = new SecureHeadersGatewayFilterFactory(new SecureHeadersProperties()).apply(new Config());
GatewayFilter filter = new SecureHeadersGatewayFilterFactory(
new SecureHeadersProperties()).apply(new Config());
Assertions.assertThat(filter.toString()).contains("SecureHeaders");
}