use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpConnectionManager_unknownFilters.
@Test
public void parseHttpConnectionManager_unknownFilters() throws ResourceInvalidException {
HttpConnectionManager hcm = HttpConnectionManager.newBuilder().addHttpFilters(HttpFilter.newBuilder().setName("envoy.filter.foo").setIsOptional(true)).addHttpFilters(HttpFilter.newBuilder().setName("envoy.filter.bar").setIsOptional(true)).build();
thrown.expect(ResourceInvalidException.class);
thrown.expectMessage("The last HttpFilter must be a terminal filter: envoy.filter.bar");
ClientXdsClient.parseHttpConnectionManager(hcm, new HashSet<String>(), filterRegistry, true, /* parseHttpFilter */
true);
}
use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpFilter_faultConfigUnsupportedForServer.
@Test
public void parseHttpFilter_faultConfigUnsupportedForServer() {
filterRegistry.register(FaultFilter.INSTANCE);
HttpFilter httpFilter = HttpFilter.newBuilder().setIsOptional(false).setName("envoy.fault").setTypedConfig(Any.pack(HTTPFault.newBuilder().setDelay(FaultDelay.newBuilder().setFixedDelay(Durations.fromNanos(1234L))).setAbort(FaultAbort.newBuilder().setHttpStatus(300).setPercentage(FractionalPercent.newBuilder().setNumerator(10).setDenominator(DenominatorType.HUNDRED))).build())).build();
StructOrError<FilterConfig> config = ClientXdsClient.parseHttpFilter(httpFilter, filterRegistry, false);
assertThat(config.getErrorDetail()).isEqualTo("HttpFilter [envoy.fault](" + FaultFilter.TYPE_URL + ") is required but " + "unsupported for server");
}
use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpFilter_rbacConfigUnsupportedForClient.
@Test
public void parseHttpFilter_rbacConfigUnsupportedForClient() {
filterRegistry.register(RbacFilter.INSTANCE);
HttpFilter httpFilter = HttpFilter.newBuilder().setIsOptional(false).setName("envoy.auth").setTypedConfig(Any.pack(io.envoyproxy.envoy.extensions.filters.http.rbac.v3.RBAC.newBuilder().setRules(RBAC.newBuilder().setAction(Action.ALLOW).putPolicies("allow-all", Policy.newBuilder().addPrincipals(Principal.newBuilder().setAny(true)).addPermissions(Permission.newBuilder().setAny(true)).build()).build()).build())).build();
StructOrError<FilterConfig> config = ClientXdsClient.parseHttpFilter(httpFilter, filterRegistry, true);
assertThat(config.getErrorDetail()).isEqualTo("HttpFilter [envoy.auth](" + RbacFilter.TYPE_URL + ") is required but " + "unsupported for client");
}
use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpFilter_unsupportedAndRequired.
@Test
public void parseHttpFilter_unsupportedAndRequired() {
HttpFilter httpFilter = HttpFilter.newBuilder().setIsOptional(false).setName("unsupported.filter").setTypedConfig(Any.pack(StringValue.of("string value"))).build();
assertThat(ClientXdsClient.parseHttpFilter(httpFilter, filterRegistry, true).getErrorDetail()).isEqualTo("HttpFilter [unsupported.filter]" + "(type.googleapis.com/google.protobuf.StringValue) is required but unsupported " + "for client");
}
use of io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter in project grpc-java by grpc.
the class ClientXdsClientDataTest method parseHttpFilter_rbacConfigForServer.
@Test
public void parseHttpFilter_rbacConfigForServer() {
filterRegistry.register(RbacFilter.INSTANCE);
HttpFilter httpFilter = HttpFilter.newBuilder().setIsOptional(false).setName("envoy.auth").setTypedConfig(Any.pack(io.envoyproxy.envoy.extensions.filters.http.rbac.v3.RBAC.newBuilder().setRules(RBAC.newBuilder().setAction(Action.ALLOW).putPolicies("allow-all", Policy.newBuilder().addPrincipals(Principal.newBuilder().setAny(true)).addPermissions(Permission.newBuilder().setAny(true)).build()).build()).build())).build();
FilterConfig config = ClientXdsClient.parseHttpFilter(httpFilter, filterRegistry, false).getStruct();
assertThat(config).isInstanceOf(RbacConfig.class);
}
Aggregations