|
|
|
@ -8919,7 +8919,44 @@ class XdsServerSecurityTest : public XdsEnd2endTest { |
|
|
|
|
std::vector<std::string> client_authenticated_identity_; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
TEST_P(XdsServerSecurityTest, TlsConfigurationWithoutRootProviderInstance) { |
|
|
|
|
TEST_P( |
|
|
|
|
XdsServerSecurityTest, |
|
|
|
|
NacksRequiringClientCertificateWithoutValidationCertificateProviderInstance) { |
|
|
|
|
Listener listener; |
|
|
|
|
listener.set_name( |
|
|
|
|
absl::StrCat("grpc/server?xds.resource.listening_address=", |
|
|
|
|
ipv6_only_ ? "[::1]:" : "127.0.0.1:", backends_[0]->port())); |
|
|
|
|
balancers_[0]->ads_service()->SetLdsResource(listener); |
|
|
|
|
auto* socket_address = listener.mutable_address()->mutable_socket_address(); |
|
|
|
|
socket_address->set_address(ipv6_only_ ? "::1" : "127.0.0.1"); |
|
|
|
|
socket_address->set_port_value(backends_[0]->port()); |
|
|
|
|
auto* filter_chain = listener.add_filter_chains(); |
|
|
|
|
filter_chain->add_filters()->mutable_typed_config()->PackFrom( |
|
|
|
|
HttpConnectionManager()); |
|
|
|
|
auto* transport_socket = filter_chain->mutable_transport_socket(); |
|
|
|
|
transport_socket->set_name("envoy.transport_sockets.tls"); |
|
|
|
|
DownstreamTlsContext downstream_tls_context; |
|
|
|
|
downstream_tls_context.mutable_common_tls_context() |
|
|
|
|
->mutable_tls_certificate_certificate_provider_instance() |
|
|
|
|
->set_instance_name("fake_plugin1"); |
|
|
|
|
downstream_tls_context.mutable_require_client_certificate()->set_value(true); |
|
|
|
|
transport_socket->mutable_typed_config()->PackFrom(downstream_tls_context); |
|
|
|
|
balancers_[0]->ads_service()->SetLdsResource(listener); |
|
|
|
|
do { |
|
|
|
|
CheckRpcSendFailure(); |
|
|
|
|
} while (balancers_[0]->ads_service()->lds_response_state().state == |
|
|
|
|
AdsServiceImpl::ResponseState::SENT); |
|
|
|
|
const auto response_state = |
|
|
|
|
balancers_[0]->ads_service()->lds_response_state(); |
|
|
|
|
EXPECT_EQ(response_state.state, AdsServiceImpl::ResponseState::NACKED); |
|
|
|
|
EXPECT_THAT(response_state.error_message, |
|
|
|
|
::testing::HasSubstr( |
|
|
|
|
"TLS configuration requires client certificates but no " |
|
|
|
|
"certificate provider instance specified for validation.")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(XdsServerSecurityTest, |
|
|
|
|
NacksTlsConfigurationWithoutIdentityProviderInstance) { |
|
|
|
|
Listener listener; |
|
|
|
|
listener.set_name( |
|
|
|
|
absl::StrCat("grpc/server?xds.resource.listening_address=", |
|
|
|
|