From cad3fa0f4754fa18d2c62419e6733642924a628f Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Mon, 12 Jul 2021 06:15:25 +0000 Subject: [PATCH 01/16] Add ssl info interface to SocketAddressProvider Signed-off-by: He Jie Xu --- envoy/network/BUILD | 1 + envoy/network/socket.h | 25 +++++++++++++++++++++++++ source/common/http/filter_manager.h | 6 ++++++ source/common/network/socket_impl.h | 16 ++++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/envoy/network/BUILD b/envoy/network/BUILD index a76a4a4dfe544..e7a4ca99abb3b 100644 --- a/envoy/network/BUILD +++ b/envoy/network/BUILD @@ -117,6 +117,7 @@ envoy_cc_library( ":address_interface", ":io_handle_interface", "@envoy_api//envoy/config/core/v3:pkg_cc_proto", + "//envoy/ssl:connection_interface", ], ) diff --git a/envoy/network/socket.h b/envoy/network/socket.h index 79940b26f9226..413d0e603add8 100644 --- a/envoy/network/socket.h +++ b/envoy/network/socket.h @@ -9,6 +9,7 @@ #include "envoy/config/core/v3/base.pb.h" #include "envoy/network/address.h" #include "envoy/network/io_handle.h" +#include "envoy/ssl/connection.h" #include "absl/strings/string_view.h" #include "absl/types/optional.h" @@ -92,6 +93,18 @@ class SocketAddressProvider { * @param indent_level the level of indentation. */ virtual void dumpState(std::ostream& os, int indent_level) const PURE; + + /** + * @return the upstream SSL connection. This will be nullptr if the upstream + * connection does not use SSL. + */ + virtual Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const PURE; + + /** + * @return the downstream SSL connection. This will be nullptr if the downstream + * connection does not use SSL. + */ + virtual Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const PURE; }; class SocketAddressSetter : public SocketAddressProvider { @@ -131,6 +144,18 @@ class SocketAddressSetter : public SocketAddressProvider { * @param id Connection ID of the downstream connection. **/ virtual void setConnectionID(uint64_t id) PURE; + + /** + * @param connection_info sets the downstream ssl connection. + */ + virtual void + setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; + + /** + * @param connection_info sets the upstream ssl connection. + */ + virtual void + setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; }; using SocketAddressSetterSharedPtr = std::shared_ptr; diff --git a/source/common/http/filter_manager.h b/source/common/http/filter_manager.h index 7c16f0edd1e24..0ee1390b7f714 100644 --- a/source/common/http/filter_manager.h +++ b/source/common/http/filter_manager.h @@ -626,6 +626,12 @@ class OverridableRemoteSocketAddressSetterStreamInfo : public StreamInfo::Stream absl::optional connectionID() const override { return StreamInfoImpl::downstreamAddressProvider().connectionID(); } + Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { + return StreamInfoImpl::downstreamSslConnection();; + } + Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { + return StreamInfoImpl::upstreamSslConnection(); + } void dumpState(std::ostream& os, int indent_level) const override { StreamInfoImpl::dumpState(os, indent_level); diff --git a/source/common/network/socket_impl.h b/source/common/network/socket_impl.h index e04fae266b411..60b2e58380295 100644 --- a/source/common/network/socket_impl.h +++ b/source/common/network/socket_impl.h @@ -51,6 +51,20 @@ class SocketAddressSetterImpl : public SocketAddressSetter { } absl::optional connectionID() const override { return connection_id_; } void setConnectionID(uint64_t id) override { connection_id_ = id; } + Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { + return downstream_ssl_info_; + } + void + setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { + downstream_ssl_info_ = ssl_connection_info; + } + Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { + return upstream_ssl_info_; + } + void + setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { + upstream_ssl_info_ = ssl_connection_info; + } private: Address::InstanceConstSharedPtr local_address_; @@ -59,6 +73,8 @@ class SocketAddressSetterImpl : public SocketAddressSetter { Address::InstanceConstSharedPtr direct_remote_address_; std::string server_name_; absl::optional connection_id_; + Ssl::ConnectionInfoConstSharedPtr downstream_ssl_info_; + Ssl::ConnectionInfoConstSharedPtr upstream_ssl_info_; }; class SocketImpl : public virtual Socket { From 288b40a8f816eefc45a514a9022845ca5e2722f3 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Mon, 12 Jul 2021 08:47:41 +0000 Subject: [PATCH 02/16] Setting the downstream ssl connection inside the ConnectionImpl Signed-off-by: He Jie Xu --- envoy/stream_info/stream_info.h | 12 -- .../formatter/substitution_formatter.cc | 12 +- source/common/http/codec_client.cc | 1 - source/common/http/conn_manager_impl.cc | 3 - source/common/http/filter_manager.h | 2 +- source/common/network/connection_impl.cc | 1 + source/common/router/config_impl.cc | 8 +- source/common/router/header_formatter.cc | 4 +- source/common/router/router.cc | 2 +- source/common/router/upstream_request.cc | 4 +- source/common/stream_info/stream_info_impl.h | 10 -- source/common/tcp/conn_pool.cc | 1 - source/common/tcp/original_conn_pool.cc | 1 - source/common/tcp_proxy/upstream.cc | 6 +- .../grpc/grpc_access_log_utils.cc | 4 +- .../extensions/filters/common/expr/context.cc | 6 +- .../extensions/filters/http/lua/wrappers.cc | 2 +- source/server/active_tcp_listener.cc | 1 - .../formatter/substitution_formatter_test.cc | 105 +++++++++--------- test/common/http/codec_client_test.cc | 11 -- test/common/http/conn_manager_impl_test.cc | 4 +- .../http/conn_manager_impl_test_base.cc | 2 + test/common/router/config_impl_test.cc | 18 +-- test/common/router/header_formatter_test.cc | 92 +++++++-------- test/common/router/router_test.cc | 2 +- test/common/stream_info/test_util.h | 8 -- test/common/tcp/conn_pool_test.cc | 8 +- test/common/tcp_proxy/tcp_proxy_test.cc | 10 +- .../grpc/http_grpc_access_log_impl_test.cc | 10 +- .../filters/common/expr/context_test.cc | 2 +- .../filters/http/lua/lua_filter_test.cc | 6 +- test/fuzz/utility.h | 2 +- test/mocks/stream_info/mocks.cc | 6 - test/mocks/stream_info/mocks.h | 2 - 34 files changed, 157 insertions(+), 211 deletions(-) diff --git a/envoy/stream_info/stream_info.h b/envoy/stream_info/stream_info.h index 7a67ff946f180..36311103d6f50 100644 --- a/envoy/stream_info/stream_info.h +++ b/envoy/stream_info/stream_info.h @@ -467,18 +467,6 @@ class StreamInfo { */ virtual const Network::SocketAddressProvider& downstreamAddressProvider() const PURE; - /** - * @param connection_info sets the downstream ssl connection. - */ - virtual void - setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; - - /** - * @return the downstream SSL connection. This will be nullptr if the downstream - * connection does not use SSL. - */ - virtual Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const PURE; - /** * @param connection_info sets the upstream ssl connection. */ diff --git a/source/common/formatter/substitution_formatter.cc b/source/common/formatter/substitution_formatter.cc index e1001871f038f..3702b11bb94f7 100644 --- a/source/common/formatter/substitution_formatter.cc +++ b/source/common/formatter/substitution_formatter.cc @@ -655,11 +655,11 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi StreamInfoSslConnectionInfoFieldExtractor(FieldExtractor f) : field_extractor_(f) {} absl::optional extract(const StreamInfo::StreamInfo& stream_info) const override { - if (stream_info.downstreamSslConnection() == nullptr) { + if (stream_info.downstreamAddressProvider().downstreamSslConnection() == nullptr) { return absl::nullopt; } - const auto value = field_extractor_(*stream_info.downstreamSslConnection()); + const auto value = field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); if (value && value->empty()) { return absl::nullopt; } @@ -668,11 +668,11 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi } ProtobufWkt::Value extractValue(const StreamInfo::StreamInfo& stream_info) const override { - if (stream_info.downstreamSslConnection() == nullptr) { + if (stream_info.downstreamAddressProvider().downstreamSslConnection() == nullptr) { return unspecifiedValue(); } - const auto value = field_extractor_(*stream_info.downstreamSslConnection()); + const auto value = field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); if (value && value->empty()) { return unspecifiedValue(); } @@ -1335,7 +1335,7 @@ DownstreamPeerCertVStartFormatter::DownstreamPeerCertVStartFormatter(const std:: parseFormat(token, sizeof("DOWNSTREAM_PEER_CERT_V_START(") - 1), std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { - const auto connection_info = stream_info.downstreamSslConnection(); + const auto connection_info = stream_info.downstreamAddressProvider().downstreamSslConnection(); return connection_info != nullptr ? connection_info->validFromPeerCertificate() : absl::optional(); })) {} @@ -1347,7 +1347,7 @@ DownstreamPeerCertVEndFormatter::DownstreamPeerCertVEndFormatter(const std::stri parseFormat(token, sizeof("DOWNSTREAM_PEER_CERT_V_END(") - 1), std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { - const auto connection_info = stream_info.downstreamSslConnection(); + const auto connection_info = stream_info.downstreamAddressProvider().downstreamSslConnection(); return connection_info != nullptr ? connection_info->expirationPeerCertificate() : absl::optional(); })) {} diff --git a/source/common/http/codec_client.cc b/source/common/http/codec_client.cc index 899dde6f9eff0..29aa601384a44 100644 --- a/source/common/http/codec_client.cc +++ b/source/common/http/codec_client.cc @@ -86,7 +86,6 @@ RequestEncoder& CodecClient::newStream(ResponseDecoder& response_decoder) { void CodecClient::onEvent(Network::ConnectionEvent event) { if (event == Network::ConnectionEvent::Connected) { ENVOY_CONN_LOG(debug, "connected", *connection_); - connection_->streamInfo().setDownstreamSslConnection(connection_->ssl()); connected_ = true; } diff --git a/source/common/http/conn_manager_impl.cc b/source/common/http/conn_manager_impl.cc index e70d5f0c91089..9f012be7ee7ba 100644 --- a/source/common/http/conn_manager_impl.cc +++ b/source/common/http/conn_manager_impl.cc @@ -648,9 +648,6 @@ ConnectionManagerImpl::ActiveStream::ActiveStream(ConnectionManagerImpl& connect connection_manager_.stats_.named_.downstream_rq_http1_total_.inc(); } - filter_manager_.streamInfo().setDownstreamSslConnection( - connection_manager_.read_callbacks_->connection().ssl()); - if (connection_manager_.config_.streamIdleTimeout().count()) { idle_timeout_ms_ = connection_manager_.config_.streamIdleTimeout(); stream_idle_timer_ = diff --git a/source/common/http/filter_manager.h b/source/common/http/filter_manager.h index 0ee1390b7f714..f74763f8e15e1 100644 --- a/source/common/http/filter_manager.h +++ b/source/common/http/filter_manager.h @@ -627,7 +627,7 @@ class OverridableRemoteSocketAddressSetterStreamInfo : public StreamInfo::Stream return StreamInfoImpl::downstreamAddressProvider().connectionID(); } Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { - return StreamInfoImpl::downstreamSslConnection();; + return StreamInfoImpl::downstreamAddressProvider().downstreamSslConnection(); } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { return StreamInfoImpl::upstreamSslConnection(); diff --git a/source/common/network/connection_impl.cc b/source/common/network/connection_impl.cc index 765df00afa73a..bd3ca135d5b7e 100644 --- a/source/common/network/connection_impl.cc +++ b/source/common/network/connection_impl.cc @@ -99,6 +99,7 @@ ConnectionImpl::ConnectionImpl(Event::Dispatcher& dispatcher, ConnectionSocketPt // TODO(soulxu): generate the connection id inside the addressProvider directly, // then we don't need a setter or any of the optional stuff. socket_->addressProvider().setConnectionID(id()); + socket_->addressProvider().setDownstreamSslConnection(transport_socket_->ssl()); } ConnectionImpl::~ConnectionImpl() { diff --git a/source/common/router/config_impl.cc b/source/common/router/config_impl.cc index b1432fa02bbf7..e73caaf66fbf6 100644 --- a/source/common/router/config_impl.cc +++ b/source/common/router/config_impl.cc @@ -502,14 +502,14 @@ bool RouteEntryImplBase::evaluateTlsContextMatch(const StreamInfo::StreamInfo& s const TlsContextMatchCriteria& criteria = *tlsContextMatchCriteria(); if (criteria.presented().has_value()) { - const bool peer_presented = stream_info.downstreamSslConnection() && - stream_info.downstreamSslConnection()->peerCertificatePresented(); + const bool peer_presented = stream_info.downstreamAddressProvider().downstreamSslConnection() && + stream_info.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented(); matches &= criteria.presented().value() == peer_presented; } if (criteria.validated().has_value()) { - const bool peer_validated = stream_info.downstreamSslConnection() && - stream_info.downstreamSslConnection()->peerCertificateValidated(); + const bool peer_validated = stream_info.downstreamAddressProvider().downstreamSslConnection() && + stream_info.downstreamAddressProvider().downstreamSslConnection()->peerCertificateValidated(); matches &= criteria.validated().value() == peer_validated; } diff --git a/source/common/router/header_formatter.cc b/source/common/router/header_formatter.cc index 80482fc17b3bb..415d662d32e70 100644 --- a/source/common/router/header_formatter.cc +++ b/source/common/router/header_formatter.cc @@ -224,11 +224,11 @@ parseRequestHeader(absl::string_view param) { StreamInfoHeaderFormatter::FieldExtractor sslConnectionInfoStringHeaderExtractor( std::function string_extractor) { return [string_extractor](const StreamInfo::StreamInfo& stream_info) { - if (stream_info.downstreamSslConnection() == nullptr) { + if (stream_info.downstreamAddressProvider().downstreamSslConnection() == nullptr) { return std::string(); } - return string_extractor(*stream_info.downstreamSslConnection()); + return string_extractor(*stream_info.downstreamAddressProvider().downstreamSslConnection()); }; } diff --git a/source/common/router/router.cc b/source/common/router/router.cc index 79ea7b165065e..4dd5859318403 100644 --- a/source/common/router/router.cc +++ b/source/common/router/router.cc @@ -605,7 +605,7 @@ Http::FilterHeadersStatus Filter::decodeHeaders(Http::RequestHeaderMap& headers, route_entry_->finalizeRequestHeaders(headers, callbacks_->streamInfo(), !config_.suppress_envoy_headers_); FilterUtility::setUpstreamScheme(headers, - callbacks_->streamInfo().downstreamSslConnection() != nullptr, + callbacks_->streamInfo().downstreamAddressProvider().downstreamSslConnection() != nullptr, host->transportSocketFactory().implementsSecureTransport()); // Ensure an http transport scheme is selected before continuing with decoding. diff --git a/source/common/router/upstream_request.cc b/source/common/router/upstream_request.cc index 3dd9cf0394129..cdca807c7050a 100644 --- a/source/common/router/upstream_request.cc +++ b/source/common/router/upstream_request.cc @@ -412,8 +412,8 @@ void UpstreamRequest::onPoolReady( stream_info_.setUpstreamLocalAddress(upstream_local_address); parent_.callbacks()->streamInfo().setUpstreamLocalAddress(upstream_local_address); - stream_info_.setUpstreamSslConnection(info.downstreamSslConnection()); - parent_.callbacks()->streamInfo().setUpstreamSslConnection(info.downstreamSslConnection()); + stream_info_.setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); + parent_.callbacks()->streamInfo().setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); if (parent_.downstreamEndStream()) { setupPerTryTimeout(); diff --git a/source/common/stream_info/stream_info_impl.h b/source/common/stream_info/stream_info_impl.h index 53d4351749c10..d96d41ae9108c 100644 --- a/source/common/stream_info/stream_info_impl.h +++ b/source/common/stream_info/stream_info_impl.h @@ -197,15 +197,6 @@ struct StreamInfoImpl : public StreamInfo { return *downstream_address_provider_; } - void - setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { - downstream_ssl_info_ = connection_info; - } - - Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { - return downstream_ssl_info_; - } - void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { upstream_ssl_info_ = connection_info; } @@ -324,7 +315,6 @@ struct StreamInfoImpl : public StreamInfo { uint64_t bytes_sent_{}; Network::Address::InstanceConstSharedPtr upstream_local_address_; const Network::SocketAddressProviderSharedPtr downstream_address_provider_; - Ssl::ConnectionInfoConstSharedPtr downstream_ssl_info_; Ssl::ConnectionInfoConstSharedPtr upstream_ssl_info_; std::string requested_server_name_; const Http::RequestHeaderMap* request_headers_{}; diff --git a/source/common/tcp/conn_pool.cc b/source/common/tcp/conn_pool.cc index 38456bf4a5110..9cfa340eff0d0 100644 --- a/source/common/tcp/conn_pool.cc +++ b/source/common/tcp/conn_pool.cc @@ -64,7 +64,6 @@ void ActiveTcpClient::onEvent(Network::ConnectionEvent event) { // This is also necessary for prefetch to be used with such protocols. if (event == Network::ConnectionEvent::Connected) { connection_->readDisable(true); - connection_->streamInfo().setDownstreamSslConnection(connection_->ssl()); } Envoy::ConnectionPool::ActiveClient::onEvent(event); if (callbacks_) { diff --git a/source/common/tcp/original_conn_pool.cc b/source/common/tcp/original_conn_pool.cc index cb4bf71b6735e..325c424aa61c6 100644 --- a/source/common/tcp/original_conn_pool.cc +++ b/source/common/tcp/original_conn_pool.cc @@ -225,7 +225,6 @@ void OriginalConnPoolImpl::onConnectionEvent(ActiveConn& conn, Network::Connecti // whether the connection is in the ready list (connected) or the pending list (failed to // connect). if (event == Network::ConnectionEvent::Connected) { - conn.conn_->streamInfo().setDownstreamSslConnection(conn.conn_->ssl()); conn_connect_ms_->complete(); processIdleConnection(conn, true, false); } diff --git a/source/common/tcp_proxy/upstream.cc b/source/common/tcp_proxy/upstream.cc index c20d818b36323..2224ad5245603 100644 --- a/source/common/tcp_proxy/upstream.cc +++ b/source/common/tcp_proxy/upstream.cc @@ -187,7 +187,7 @@ void TcpConnPool::onPoolReady(Tcp::ConnectionPool::ConnectionDataPtr&& conn_data auto upstream = std::make_unique(std::move(conn_data), upstream_callbacks_); callbacks_->onGenericPoolReady(&connection.streamInfo(), std::move(upstream), host, latched_data->connection().addressProvider().localAddress(), - latched_data->connection().streamInfo().downstreamSslConnection()); + latched_data->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection()); } HttpConnPool::HttpConnPool(Upstream::ThreadLocalCluster& thread_local_cluster, @@ -238,11 +238,11 @@ void HttpConnPool::onPoolReady(Http::RequestEncoder& request_encoder, if (Runtime::runtimeFeatureEnabled( "envoy.reloadable_features.http_upstream_wait_connect_response")) { upstream_->setConnPoolCallbacks( - std::make_unique(*this, host, info.downstreamSslConnection())); + std::make_unique(*this, host, info.downstreamAddressProvider().downstreamSslConnection())); } else { callbacks_->onGenericPoolReady(nullptr, std::move(upstream_), host, latched_encoder->getStream().connectionLocalAddress(), - info.downstreamSslConnection()); + info.downstreamAddressProvider().downstreamSslConnection()); } } diff --git a/source/extensions/access_loggers/grpc/grpc_access_log_utils.cc b/source/extensions/access_loggers/grpc/grpc_access_log_utils.cc index 64e9923aaf450..15c65ec79e507 100644 --- a/source/extensions/access_loggers/grpc/grpc_access_log_utils.cc +++ b/source/extensions/access_loggers/grpc/grpc_access_log_utils.cc @@ -166,10 +166,10 @@ void Utility::extractCommonAccessLogProperties( *stream_info.downstreamAddressProvider().localAddress(), *common_access_log.mutable_downstream_local_address()); } - if (stream_info.downstreamSslConnection() != nullptr) { + if (stream_info.downstreamAddressProvider().downstreamSslConnection() != nullptr) { auto* tls_properties = common_access_log.mutable_tls_properties(); const Ssl::ConnectionInfoConstSharedPtr downstream_ssl_connection = - stream_info.downstreamSslConnection(); + stream_info.downstreamAddressProvider().downstreamSslConnection(); tls_properties->set_tls_sni_hostname( std::string(stream_info.downstreamAddressProvider().requestedServerName())); diff --git a/source/extensions/filters/common/expr/context.cc b/source/extensions/filters/common/expr/context.cc index 934f78728bcd4..dbc611d7f1495 100644 --- a/source/extensions/filters/common/expr/context.cc +++ b/source/extensions/filters/common/expr/context.cc @@ -181,8 +181,8 @@ absl::optional ConnectionWrapper::operator[](CelValue key) const { } auto value = key.StringOrDie().value(); if (value == MTLS) { - return CelValue::CreateBool(info_.downstreamSslConnection() != nullptr && - info_.downstreamSslConnection()->peerCertificatePresented()); + return CelValue::CreateBool(info_.downstreamAddressProvider().downstreamSslConnection() != nullptr && + info_.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented()); } else if (value == RequestedServerName) { return CelValue::CreateStringView(info_.downstreamAddressProvider().requestedServerName()); } else if (value == ID) { @@ -198,7 +198,7 @@ absl::optional ConnectionWrapper::operator[](CelValue key) const { return {}; } - auto ssl_info = info_.downstreamSslConnection(); + auto ssl_info = info_.downstreamAddressProvider().downstreamSslConnection(); if (ssl_info != nullptr) { return extractSslInfo(*ssl_info, value); } diff --git a/source/extensions/filters/http/lua/wrappers.cc b/source/extensions/filters/http/lua/wrappers.cc index bf70a111e2180..76a0da2fae9bc 100644 --- a/source/extensions/filters/http/lua/wrappers.cc +++ b/source/extensions/filters/http/lua/wrappers.cc @@ -114,7 +114,7 @@ int StreamInfoWrapper::luaDynamicMetadata(lua_State* state) { } int StreamInfoWrapper::luaDownstreamSslConnection(lua_State* state) { - const auto& ssl = stream_info_.downstreamSslConnection(); + const auto& ssl = stream_info_.downstreamAddressProvider().downstreamSslConnection(); if (ssl != nullptr) { if (downstream_ssl_connection_.get() != nullptr) { downstream_ssl_connection_.pushStack(); diff --git a/source/server/active_tcp_listener.cc b/source/server/active_tcp_listener.cc index d48ae15f26244..f80bc19e6f11c 100644 --- a/source/server/active_tcp_listener.cc +++ b/source/server/active_tcp_listener.cc @@ -302,7 +302,6 @@ void ActiveTcpListener::newConnection(Network::ConnectionSocketPtr&& socket, stream_info->setFilterChainName(filter_chain->name()); auto transport_socket = filter_chain->transportSocketFactory().createTransportSocket(nullptr); - stream_info->setDownstreamSslConnection(transport_socket->ssl()); auto& active_connections = getOrCreateActiveConnections(*filter_chain); auto server_conn_ptr = parent_.dispatcher().createServerConnection( std::move(socket), std::move(transport_socket), *stream_info); diff --git a/test/common/formatter/substitution_formatter_test.cc b/test/common/formatter/substitution_formatter_test.cc index 00d0ce6a3a4d5..03ccf12d5c9a4 100644 --- a/test/common/formatter/substitution_formatter_test.cc +++ b/test/common/formatter/substitution_formatter_test.cc @@ -698,7 +698,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::vector sans{"san"}; EXPECT_CALL(*connection_info, uriSanPeerCertificate()).WillRepeatedly(Return(sans)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("san", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -711,7 +711,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::vector sans{"san1", "san2"}; EXPECT_CALL(*connection_info, uriSanPeerCertificate()).WillRepeatedly(Return(sans)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("san1,san2", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); } @@ -720,7 +720,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, uriSanPeerCertificate()) .WillRepeatedly(Return(std::vector())); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -728,7 +728,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_URI_SAN"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -741,7 +741,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::vector sans{"san"}; EXPECT_CALL(*connection_info, uriSanLocalCertificate()).WillRepeatedly(Return(sans)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("san", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -753,7 +753,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::vector sans{"san1", "san2"}; EXPECT_CALL(*connection_info, uriSanLocalCertificate()).WillRepeatedly(Return(sans)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("san1,san2", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); } @@ -762,7 +762,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, uriSanLocalCertificate()) .WillRepeatedly(Return(std::vector())); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -770,7 +770,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_LOCAL_URI_SAN"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -784,7 +784,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { const std::string subject_local = "subject"; EXPECT_CALL(*connection_info, subjectLocalCertificate()) .WillRepeatedly(ReturnRef(subject_local)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("subject", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -796,7 +796,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, subjectLocalCertificate()) .WillRepeatedly(ReturnRef(EMPTY_STRING)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -804,7 +804,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_LOCAL_SUBJECT"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -817,7 +817,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::string subject_peer = "subject"; EXPECT_CALL(*connection_info, subjectPeerCertificate()).WillRepeatedly(ReturnRef(subject_peer)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("subject", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -828,7 +828,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SUBJECT"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, subjectPeerCertificate()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -836,7 +836,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SUBJECT"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -849,7 +849,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::string session_id = "deadbeef"; EXPECT_CALL(*connection_info, sessionId()).WillRepeatedly(ReturnRef(session_id)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("deadbeef", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -860,7 +860,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_SESSION_ID"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, sessionId()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -868,7 +868,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_SESSION_ID"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -881,7 +881,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, ciphersuiteString()) .WillRepeatedly(Return("TLS_DHE_RSA_WITH_AES_256_GCM_SHA384")); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -890,7 +890,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_CIPHER"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, ciphersuiteString()).WillRepeatedly(Return("")); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -898,7 +898,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_CIPHER"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -911,7 +911,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); std::string tlsVersion = "TLSv1.2"; EXPECT_CALL(*connection_info, tlsVersion()).WillRepeatedly(ReturnRef(tlsVersion)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("TLSv1.2", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -922,7 +922,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_VERSION"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, tlsVersion()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -930,7 +930,8 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_VERSION"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -944,7 +945,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_sha = "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"; EXPECT_CALL(*connection_info, sha256PeerCertificateDigest()) .WillRepeatedly(ReturnRef(expected_sha)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(expected_sha, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -957,7 +958,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_sha; EXPECT_CALL(*connection_info, sha256PeerCertificateDigest()) .WillRepeatedly(ReturnRef(expected_sha)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -965,7 +966,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_FINGERPRINT_256"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -979,7 +980,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_sha = "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"; EXPECT_CALL(*connection_info, sha1PeerCertificateDigest()) .WillRepeatedly(ReturnRef(expected_sha)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(expected_sha, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -992,7 +993,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_sha; EXPECT_CALL(*connection_info, sha1PeerCertificateDigest()) .WillRepeatedly(ReturnRef(expected_sha)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1000,7 +1001,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_FINGERPRINT_1"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1014,7 +1015,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { const std::string serial_number = "b8b5ecc898f2124a"; EXPECT_CALL(*connection_info, serialNumberPeerCertificate()) .WillRepeatedly(ReturnRef(serial_number)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("b8b5ecc898f2124a", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1026,7 +1027,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, serialNumberPeerCertificate()) .WillRepeatedly(ReturnRef(EMPTY_STRING)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1034,7 +1035,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SERIAL"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1048,7 +1049,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { const std::string issuer_peer = "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"; EXPECT_CALL(*connection_info, issuerPeerCertificate()).WillRepeatedly(ReturnRef(issuer_peer)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1057,7 +1058,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_ISSUER"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, issuerPeerCertificate()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1065,7 +1066,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_ISSUER"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1079,7 +1080,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { const std::string subject_peer = "CN=Test Server,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"; EXPECT_CALL(*connection_info, subjectPeerCertificate()).WillRepeatedly(ReturnRef(subject_peer)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("CN=Test Server,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1088,7 +1089,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SUBJECT"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, subjectPeerCertificate()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1096,7 +1097,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SUBJECT"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1110,7 +1111,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_cert = ""; EXPECT_CALL(*connection_info, urlEncodedPemEncodedPeerCertificate()) .WillRepeatedly(ReturnRef(expected_cert)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(expected_cert, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1123,7 +1124,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_cert = ""; EXPECT_CALL(*connection_info, urlEncodedPemEncodedPeerCertificate()) .WillRepeatedly(ReturnRef(expected_cert)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1131,7 +1132,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_CERT"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1616,7 +1617,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVStartFormatter) { // No downstreamSslConnection { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); DownstreamPeerCertVStartFormatter cert_start_formart("DOWNSTREAM_PEER_CERT_V_START(%Y/%m/%d)"); EXPECT_EQ(absl::nullopt, cert_start_formart.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1629,7 +1630,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVStartFormatter) { DownstreamPeerCertVStartFormatter cert_start_formart("DOWNSTREAM_PEER_CERT_V_START(%Y/%m/%d)"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, validFromPeerCertificate()).WillRepeatedly(Return(absl::nullopt)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, cert_start_formart.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(cert_start_formart.formatValue(request_headers, response_headers, response_trailers, @@ -1643,7 +1644,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVStartFormatter) { time_t test_epoch = 1522280158; SystemTime time = std::chrono::system_clock::from_time_t(test_epoch); EXPECT_CALL(*connection_info, validFromPeerCertificate()).WillRepeatedly(Return(time)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(AccessLogDateTimeFormatter::fromTime(time), cert_start_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1656,7 +1657,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVStartFormatter) { time_t test_epoch = 1522280158; SystemTime time = std::chrono::system_clock::from_time_t(test_epoch); EXPECT_CALL(*connection_info, validFromPeerCertificate()).WillRepeatedly(Return(time)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("Mar 28 23:35:58 2018 UTC", cert_start_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1672,7 +1673,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVEndFormatter) { // No downstreamSslConnection { - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); DownstreamPeerCertVEndFormatter cert_end_format("DOWNSTREAM_PEER_CERT_V_END(%Y/%m/%d)"); EXPECT_EQ(absl::nullopt, cert_end_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1686,7 +1687,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVEndFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, expirationPeerCertificate()) .WillRepeatedly(Return(absl::nullopt)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(absl::nullopt, cert_end_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(cert_end_format.formatValue(request_headers, response_headers, response_trailers, @@ -1700,7 +1701,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVEndFormatter) { time_t test_epoch = 1522280158; SystemTime time = std::chrono::system_clock::from_time_t(test_epoch); EXPECT_CALL(*connection_info, expirationPeerCertificate()).WillRepeatedly(Return(time)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ(AccessLogDateTimeFormatter::fromTime(time), cert_end_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1713,7 +1714,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVEndFormatter) { time_t test_epoch = 1522280158; SystemTime time = std::chrono::system_clock::from_time_t(test_epoch); EXPECT_CALL(*connection_info, expirationPeerCertificate()).WillRepeatedly(Return(time)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_EQ("Mar 28 23:35:58 2018 UTC", cert_end_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -2610,7 +2611,7 @@ TEST(SubstitutionFormatterTest, JsonFormatterTest) { } TEST(SubstitutionFormatterTest, CompositeFormatterSuccess) { - StreamInfo::MockStreamInfo stream_info; + NiceMock stream_info; Http::TestRequestHeaderMapImpl request_header{{"first", "GET"}, {":path", "/"}}; Http::TestResponseHeaderMapImpl response_header{{"second", "PUT"}, {"test", "test"}}; Http::TestResponseTrailerMapImpl response_trailer{{"third", "POST"}, {"test-2", "test-2"}}; @@ -2708,7 +2709,7 @@ TEST(SubstitutionFormatterTest, CompositeFormatterSuccess) { auto connection_info = std::make_shared(); SystemTime time = std::chrono::system_clock::from_time_t(expected_time_in_epoch); EXPECT_CALL(*connection_info, validFromPeerCertificate()).WillRepeatedly(Return(time)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); FormatterImpl formatter(format, false); EXPECT_EQ( @@ -2728,7 +2729,7 @@ TEST(SubstitutionFormatterTest, CompositeFormatterSuccess) { auto connection_info = std::make_shared(); SystemTime time = std::chrono::system_clock::from_time_t(expected_time_in_epoch); EXPECT_CALL(*connection_info, expirationPeerCertificate()).WillRepeatedly(Return(time)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); FormatterImpl formatter(format, false); EXPECT_EQ( diff --git a/test/common/http/codec_client_test.cc b/test/common/http/codec_client_test.cc index 25a854defb3bc..a72213244bca6 100644 --- a/test/common/http/codec_client_test.cc +++ b/test/common/http/codec_client_test.cc @@ -280,17 +280,6 @@ TEST_F(CodecClientTest, WatermarkPassthrough) { connection_cb_->onBelowWriteBufferLowWatermark(); } -TEST_F(CodecClientTest, SSLConnectionInfo) { - initialize(); - std::string session_id = "D62A523A65695219D46FE1FFE285A4C371425ACE421B110B5B8D11D3EB4D5F0B"; - auto connection_info = std::make_shared>(); - ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(session_id)); - EXPECT_CALL(*connection_, ssl()).WillRepeatedly(Return(connection_info)); - connection_cb_->onEvent(Network::ConnectionEvent::Connected); - EXPECT_NE(nullptr, stream_info_.downstreamSslConnection()); - EXPECT_EQ(session_id, stream_info_.downstreamSslConnection()->sessionId()); -} - // Test the codec getting input from a real TCP connection. class CodecNetworkTest : public Event::TestUsingSimulatedTime, public testing::TestWithParam { diff --git a/test/common/http/conn_manager_impl_test.cc b/test/common/http/conn_manager_impl_test.cc index 69894daf187aa..70357618c6a5f 100644 --- a/test/common/http/conn_manager_impl_test.cc +++ b/test/common/http/conn_manager_impl_test.cc @@ -301,7 +301,7 @@ TEST_F(HttpConnectionManagerImplTest, PopulateStreamInfo) { decoder_ = &conn_manager_->newStream(response_encoder_); EXPECT_EQ(requestIDExtension().get(), decoder_->streamInfo().getRequestIDProvider()); - EXPECT_EQ(ssl_connection_, decoder_->streamInfo().downstreamSslConnection()); + EXPECT_EQ(ssl_connection_, decoder_->streamInfo().downstreamAddressProvider().downstreamSslConnection()); EXPECT_EQ(filter_callbacks_.connection_.id_, decoder_->streamInfo().downstreamAddressProvider().connectionID()); EXPECT_EQ(server_name_, decoder_->streamInfo().downstreamAddressProvider().requestedServerName()); @@ -2251,7 +2251,7 @@ TEST_F(HttpConnectionManagerImplTest, TestAccessLogSsl) { EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().localAddress()); EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().remoteAddress()); EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().directRemoteAddress()); - EXPECT_NE(nullptr, stream_info.downstreamSslConnection()); + EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().downstreamSslConnection()); EXPECT_NE(nullptr, stream_info.routeEntry()); })); diff --git a/test/common/http/conn_manager_impl_test_base.cc b/test/common/http/conn_manager_impl_test_base.cc index 9f7b81bb97ae1..bcd17acb86942 100644 --- a/test/common/http/conn_manager_impl_test_base.cc +++ b/test/common/http/conn_manager_impl_test_base.cc @@ -72,6 +72,8 @@ void HttpConnectionManagerImplTest::setup(bool ssl, const std::string& server_na ->setDirectRemoteAddressForTest(std::make_shared("0.0.0.0")); filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setRequestedServerName( server_name_); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( + ssl_connection_); conn_manager_ = std::make_unique( *this, drain_close_, random_, http_context_, runtime_, local_info_, cluster_manager_, overload_manager_, test_time_.timeSystem()); diff --git a/test/common/router/config_impl_test.cc b/test/common/router/config_impl_test.cc index a403b857474a6..09d9b9c6f51d3 100644 --- a/test/common/router/config_impl_test.cc +++ b/test/common/router/config_impl_test.cc @@ -6920,7 +6920,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-test", "GET"); EXPECT_EQ("server_peer-cert-presented", @@ -6932,7 +6932,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(false)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-test", "GET"); EXPECT_EQ("server_peer-cert-not-presented", @@ -6944,7 +6944,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(false)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); @@ -6957,7 +6957,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); @@ -6970,7 +6970,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-validated-cert-test", "GET"); @@ -6983,7 +6983,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(false)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-validated-cert-test", "GET"); @@ -6996,7 +6996,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(false)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); @@ -7009,7 +7009,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); @@ -7020,7 +7020,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { { NiceMock stream_info; std::shared_ptr connection_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); diff --git a/test/common/router/header_formatter_test.cc b/test/common/router/header_formatter_test.cc index f9ec6d274c757..f7f0c136743f4 100644 --- a/test/common/router/header_formatter_test.cc +++ b/test/common/router/header_formatter_test.cc @@ -147,7 +147,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerUriSanVariable auto connection_info = std::make_shared>(); const std::vector sans{"san"}; ON_CALL(*connection_info, uriSanPeerCertificate()).WillByDefault(Return(sans)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_URI_SAN", "san"); } @@ -156,7 +156,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerUriSanVariable auto connection_info = std::make_shared>(); const std::vector sans{"san1", "san2"}; ON_CALL(*connection_info, uriSanPeerCertificate()).WillByDefault(Return(sans)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_URI_SAN", "san1,san2"); } @@ -165,13 +165,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerUriSanEmpty) { auto connection_info = std::make_shared>(); ON_CALL(*connection_info, uriSanPeerCertificate()) .WillByDefault(Return(std::vector())); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_URI_SAN", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_URI_SAN", EMPTY_STRING); } @@ -180,7 +180,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalUriSanVariabl auto connection_info = std::make_shared>(); const std::vector sans{"san"}; ON_CALL(*connection_info, uriSanLocalCertificate()).WillByDefault(Return(sans)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_URI_SAN", "san"); } @@ -189,7 +189,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalUriSanVariabl auto connection_info = std::make_shared>(); const std::vector sans{"san1", "san2"}; ON_CALL(*connection_info, uriSanLocalCertificate()).WillByDefault(Return(sans)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_URI_SAN", "san1,san2"); } @@ -198,13 +198,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalUriSanVariabl auto connection_info = std::make_shared>(); ON_CALL(*connection_info, uriSanLocalCertificate()) .WillByDefault(Return(std::vector())); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_URI_SAN", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalUriSanNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_LOCAL_URI_SAN", EMPTY_STRING); } @@ -213,7 +213,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalSubject) { auto connection_info = std::make_shared>(); std::string subject = "subject"; ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(subject)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_SUBJECT", "subject"); } @@ -222,13 +222,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalSubjectEmpty) auto connection_info = std::make_shared>(); std::string subject; ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(subject)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_SUBJECT", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalSubjectNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_LOCAL_SUBJECT", EMPTY_STRING); } @@ -237,7 +237,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsSessionId) { auto connection_info = std::make_shared>(); std::string session_id = "deadbeef"; ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(session_id)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_SESSION_ID", "deadbeef"); } @@ -246,13 +246,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsSessionIdEmpty) auto connection_info = std::make_shared>(); std::string session_id; ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(session_id)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_SESSION_ID", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsSessionIdNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_TLS_SESSION_ID", EMPTY_STRING); } @@ -261,7 +261,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsCipher) { auto connection_info = std::make_shared>(); ON_CALL(*connection_info, ciphersuiteString()) .WillByDefault(Return("TLS_DHE_RSA_WITH_AES_256_GCM_SHA384")); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_CIPHER", "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"); } @@ -269,13 +269,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsCipherEmpty) { NiceMock stream_info; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, ciphersuiteString()).WillByDefault(Return("")); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_CIPHER", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsCipherNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_TLS_CIPHER", EMPTY_STRING); } @@ -284,7 +284,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsVersion) { auto connection_info = std::make_shared>(); std::string tls_version = "TLSv1.2"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tls_version)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_VERSION", "TLSv1.2"); } @@ -292,13 +292,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsVersionEmpty) { NiceMock stream_info; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(EMPTY_STRING)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_VERSION", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsVersionNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_TLS_VERSION", EMPTY_STRING); } @@ -307,7 +307,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha256Fingerpr auto connection_info = std::make_shared>(); std::string expected_sha = "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"; ON_CALL(*connection_info, sha256PeerCertificateDigest()).WillByDefault(ReturnRef(expected_sha)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_256", "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"); } @@ -317,13 +317,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha256Fingerpr auto connection_info = std::make_shared>(); std::string expected_sha; ON_CALL(*connection_info, sha256PeerCertificateDigest()).WillByDefault(ReturnRef(expected_sha)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_256", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha256FingerprintNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_256", EMPTY_STRING); } @@ -332,7 +332,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha1Fingerprin auto connection_info = std::make_shared>(); std::string expected_sha = "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"; ON_CALL(*connection_info, sha1PeerCertificateDigest()).WillByDefault(ReturnRef(expected_sha)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_1", "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"); } @@ -342,13 +342,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha1Fingerprin auto connection_info = std::make_shared>(); std::string expected_sha; ON_CALL(*connection_info, sha1PeerCertificateDigest()).WillByDefault(ReturnRef(expected_sha)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_1", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha1FingerprintNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_1", EMPTY_STRING); } @@ -357,7 +357,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSerial) { auto connection_info = std::make_shared>(); const std::string serial_number = "b8b5ecc898f2124a"; ON_CALL(*connection_info, serialNumberPeerCertificate()).WillByDefault(ReturnRef(serial_number)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_SERIAL", "b8b5ecc898f2124a"); } @@ -366,13 +366,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSerialEmpty) { auto connection_info = std::make_shared>(); const std::string serial_number; ON_CALL(*connection_info, serialNumberPeerCertificate()).WillByDefault(ReturnRef(serial_number)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_SERIAL", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSerialNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_SERIAL", EMPTY_STRING); } @@ -382,7 +382,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerIssuer) { const std::string issuer_peer = "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"; ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(issuer_peer)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_ISSUER", "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"); } @@ -392,13 +392,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerIssuerEmpty) { auto connection_info = std::make_shared>(); const std::string issuer_peer; ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(issuer_peer)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_ISSUER", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerIssuerNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_ISSUER", EMPTY_STRING); } @@ -408,7 +408,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSubject) { const std::string subject_peer = "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"; ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(subject_peer)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_SUBJECT", "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"); } @@ -418,13 +418,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSubjectEmpty) auto connection_info = std::make_shared>(); const std::string subject_peer; ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(subject_peer)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_SUBJECT", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSubjectNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_SUBJECT", EMPTY_STRING); } @@ -434,7 +434,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCert) { std::string expected_cert = ""; ON_CALL(*connection_info, urlEncodedPemEncodedPeerCertificate()) .WillByDefault(ReturnRef(expected_cert)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT", expected_cert); } @@ -444,13 +444,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertEmpty) { std::string expected_cert; ON_CALL(*connection_info, urlEncodedPemEncodedPeerCertificate()) .WillByDefault(ReturnRef(expected_cert)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT", EMPTY_STRING); } @@ -461,7 +461,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVStart) { TestUtility::parseTime("Dec 18 01:50:34 2018 GMT", "%b %e %H:%M:%S %Y GMT"); SystemTime startTime = absl::ToChronoTime(abslStartTime); ON_CALL(*connection_info, validFromPeerCertificate()).WillByDefault(Return(startTime)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_START", "2018-12-18T01:50:34.000Z"); } @@ -472,7 +472,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVStartCust TestUtility::parseTime("Dec 18 01:50:34 2018 GMT", "%b %e %H:%M:%S %Y GMT"); SystemTime startTime = absl::ToChronoTime(abslStartTime); ON_CALL(*connection_info, validFromPeerCertificate()).WillByDefault(Return(startTime)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_START(%b %e %H:%M:%S %Y %Z)", "Dec 18 01:50:34 2018 UTC"); } @@ -481,13 +481,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVStartEmpt NiceMock stream_info; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, validFromPeerCertificate()).WillByDefault(Return(absl::nullopt)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_START", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVStartNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_START", EMPTY_STRING); } @@ -498,7 +498,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVEnd) { TestUtility::parseTime("Dec 17 01:50:34 2020 GMT", "%b %e %H:%M:%S %Y GMT"); SystemTime startTime = absl::ToChronoTime(abslStartTime); ON_CALL(*connection_info, expirationPeerCertificate()).WillByDefault(Return(startTime)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_END", "2020-12-17T01:50:34.000Z"); } @@ -509,7 +509,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVEndCustom TestUtility::parseTime("Dec 17 01:50:34 2020 GMT", "%b %e %H:%M:%S %Y GMT"); SystemTime startTime = absl::ToChronoTime(abslStartTime); ON_CALL(*connection_info, expirationPeerCertificate()).WillByDefault(Return(startTime)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_END(%b %e %H:%M:%S %Y %Z)", "Dec 17 01:50:34 2020 UTC"); } @@ -518,13 +518,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVEndEmpty) NiceMock stream_info; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, expirationPeerCertificate()).WillByDefault(Return(absl::nullopt)); - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_END", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVEndNoTls) { NiceMock stream_info; - EXPECT_CALL(stream_info, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_END", EMPTY_STRING); } diff --git a/test/common/router/router_test.cc b/test/common/router/router_test.cc index 1f4bc9d6b64b8..eece26796bbc7 100644 --- a/test/common/router/router_test.cc +++ b/test/common/router/router_test.cc @@ -4843,7 +4843,7 @@ TEST_F(RouterTest, UpstreamSSLConnection) { std::string session_id = "D62A523A65695219D46FE1FFE285A4C371425ACE421B110B5B8D11D3EB4D5F0B"; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(session_id)); - upstream_stream_info_.setDownstreamSslConnection(connection_info); + upstream_stream_info_.downstream_address_provider_->setDownstreamSslConnection(connection_info); expectResponseTimerCreate(); EXPECT_CALL(cm_.thread_local_cluster_.conn_pool_, newStream(_, _)) diff --git a/test/common/stream_info/test_util.h b/test/common/stream_info/test_util.h index a4ab278e8db3e..6991a429ce2d4 100644 --- a/test/common/stream_info/test_util.h +++ b/test/common/stream_info/test_util.h @@ -78,14 +78,6 @@ class TestStreamInfo : public StreamInfo::StreamInfo { const Network::SocketAddressSetter& downstreamAddressProvider() const override { return *downstream_address_provider_; } - void - setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { - downstream_connection_info_ = connection_info; - } - - Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { - return downstream_connection_info_; - } void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { upstream_connection_info_ = connection_info; diff --git a/test/common/tcp/conn_pool_test.cc b/test/common/tcp/conn_pool_test.cc index 8657f444a4834..5ea2829d99f70 100644 --- a/test/common/tcp/conn_pool_test.cc +++ b/test/common/tcp/conn_pool_test.cc @@ -57,7 +57,7 @@ struct ConnPoolCallbacks : public Tcp::ConnectionPool::Callbacks { conn_data_ = std::move(conn); conn_data_->addUpstreamCallbacks(callbacks_); host_ = host; - ssl_ = conn_data_->connection().streamInfo().downstreamSslConnection(); + ssl_ = conn_data_->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(); pool_ready_.ready(); } @@ -327,7 +327,7 @@ class TcpConnPoolImplDestructorTest : public Event::TestUsingSimulatedTime, EXPECT_CALL(*connection_, connect()); EXPECT_CALL(*connection_, setConnectionStats(_)); EXPECT_CALL(*connection_, noDelay(true)); - EXPECT_CALL(*connection_, streamInfo()).Times(3); + EXPECT_CALL(*connection_, streamInfo()); EXPECT_CALL(*connection_, id()).Times(AnyNumber()); EXPECT_CALL(*connection_, readDisable(_)).Times(AnyNumber()); @@ -341,10 +341,8 @@ class TcpConnPoolImplDestructorTest : public Event::TestUsingSimulatedTime, EXPECT_CALL(*connect_timer_, disableTimer()); EXPECT_CALL(callbacks_->pool_ready_, ready()); - EXPECT_CALL(*connection_, ssl()).WillOnce(Return(ssl_)); connection_->raiseEvent(Network::ConnectionEvent::Connected); - EXPECT_EQ(connection_->streamInfo().downstreamSslConnection(), ssl_); - EXPECT_EQ(callbacks_->ssl_, ssl_); + connection_->stream_info_.downstream_address_provider_->setDownstreamSslConnection(ssl_); } bool test_new_connection_pool_; diff --git a/test/common/tcp_proxy/tcp_proxy_test.cc b/test/common/tcp_proxy/tcp_proxy_test.cc index 3fd3d169f2904..ab4b86d28bd1a 100644 --- a/test/common/tcp_proxy/tcp_proxy_test.cc +++ b/test/common/tcp_proxy/tcp_proxy_test.cc @@ -122,7 +122,7 @@ class TcpProxyTest : public TcpProxyTestBase { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.streamInfo().setDownstreamSslConnection( + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( filter_callbacks_.connection_.ssl()); } @@ -225,7 +225,7 @@ TEST_F(TcpProxyTest, BadFactory) { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.streamInfo().setDownstreamSslConnection( + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( filter_callbacks_.connection_.ssl()); EXPECT_EQ(Network::FilterStatus::StopIteration, filter_->onNewConnection()); } @@ -936,7 +936,7 @@ TEST_F(TcpProxyTest, AccessLogUpstreamSSLConnection) { const std::string session_id = "D62A523A65695219D46FE1FFE285A4C371425ACE421B110B5B8D11D3EB4D5F0B"; auto ssl_info = std::make_shared(); EXPECT_CALL(*ssl_info, sessionId()).WillRepeatedly(ReturnRef(session_id)); - stream_info.setDownstreamSslConnection(ssl_info); + stream_info.downstream_address_provider_->setDownstreamSslConnection(ssl_info); EXPECT_CALL(*upstream_connections_.at(0), streamInfo()).WillRepeatedly(ReturnRef(stream_info)); raiseEventUpstreamConnected(0); @@ -1096,12 +1096,12 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { setup(1); raiseEventUpstreamConnected(0); - EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamSslConnection(), + EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(), filter_callbacks_.connection().ssl()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamLocalAddress(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().localAddress()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamSslConnection(), - upstream_connections_.at(0)->streamInfo().downstreamSslConnection()); + upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().downstreamSslConnection()); } } // namespace } // namespace TcpProxy diff --git a/test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc b/test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc index 54e012875513c..fd39533cc9d40 100644 --- a/test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc +++ b/test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc @@ -388,7 +388,7 @@ response: {} const std::string tlsVersion = "TLSv1.3"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2CC0)); - stream_info.setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ @@ -448,7 +448,7 @@ response: {} const std::string tlsVersion = "TLSv1.2"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2F)); - stream_info.setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ @@ -498,7 +498,7 @@ response: {} const std::string tlsVersion = "TLSv1.1"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2F)); - stream_info.setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ @@ -548,7 +548,7 @@ response: {} const std::string tlsVersion = "TLSv1"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2F)); - stream_info.setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ @@ -598,7 +598,7 @@ response: {} const std::string tlsVersion = "TLSv1.4"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2F)); - stream_info.setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ diff --git a/test/extensions/filters/common/expr/context_test.cc b/test/extensions/filters/common/expr/context_test.cc index f7b1931195e46..42025b681052c 100644 --- a/test/extensions/filters/common/expr/context_test.cc +++ b/test/extensions/filters/common/expr/context_test.cc @@ -441,7 +441,7 @@ TEST(Context, ConnectionAttributes) { info.downstream_address_provider_->setLocalAddress(local); info.downstream_address_provider_->setRemoteAddress(remote); info.downstream_address_provider_->setRequestedServerName(sni_name); - EXPECT_CALL(info, downstreamSslConnection()).WillRepeatedly(Return(downstream_ssl_info)); + info.downstream_address_provider_->setDownstreamSslConnection(downstream_ssl_info); EXPECT_CALL(info, upstreamSslConnection()).WillRepeatedly(Return(upstream_ssl_info)); EXPECT_CALL(info, upstreamHost()).WillRepeatedly(Return(upstream_host)); EXPECT_CALL(info, upstreamLocalAddress()).WillRepeatedly(ReturnRef(upstream_local_address)); diff --git a/test/extensions/filters/http/lua/lua_filter_test.cc b/test/extensions/filters/http/lua/lua_filter_test.cc index 82d1623ff02cd..e51f90eb8cf8d 100644 --- a/test/extensions/filters/http/lua/lua_filter_test.cc +++ b/test/extensions/filters/http/lua/lua_filter_test.cc @@ -1913,7 +1913,7 @@ TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnection) { const auto connection_info = std::make_shared(); EXPECT_CALL(decoder_callbacks_, streamInfo()).WillRepeatedly(ReturnRef(stream_info_)); - EXPECT_CALL(stream_info_, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info_.downstream_address_provider_->setDownstreamSslConnection(connection_info); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillOnce(Return(true)); EXPECT_CALL(*filter_, scriptLog(spdlog::level::trace, StrEq("peerCertificatePresented"))); @@ -2011,7 +2011,7 @@ TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnectionOnPlainConnecti setup(SCRIPT); EXPECT_CALL(decoder_callbacks_, streamInfo()).WillRepeatedly(ReturnRef(stream_info_)); - EXPECT_CALL(stream_info_, downstreamSslConnection()).WillRepeatedly(Return(nullptr)); + stream_info_.downstream_address_provider_->setDownstreamSslConnection(nullptr); EXPECT_CALL(*filter_, scriptLog(spdlog::level::trace, StrEq("downstreamSslConnection is nil"))); @@ -2034,7 +2034,7 @@ TEST_F(LuaHttpFilterTest, SurviveMultipleDownstreamSslConnectionCalls) { const auto connection_info = std::make_shared(); EXPECT_CALL(decoder_callbacks_, streamInfo()).WillRepeatedly(ReturnRef(stream_info_)); - EXPECT_CALL(stream_info_, downstreamSslConnection()).WillRepeatedly(Return(connection_info)); + stream_info_.downstream_address_provider_->setDownstreamSslConnection(connection_info); for (uint64_t i = 0; i < 200; i++) { EXPECT_CALL(*filter_, diff --git a/test/fuzz/utility.h b/test/fuzz/utility.h index b478b9eab1faf..ce671039484db 100644 --- a/test/fuzz/utility.h +++ b/test/fuzz/utility.h @@ -172,7 +172,7 @@ inline std::unique_ptr fromStreamInfo(const test::fuzz::StreamIn auto connection_info = std::make_shared>(); ON_CALL(*connection_info, subjectPeerCertificate()) .WillByDefault(testing::ReturnRef(TestSubjectPeer)); - test_stream_info->setDownstreamSslConnection(connection_info); + test_stream_info->downstream_address_provider_->setDownstreamSslConnection(connection_info); return test_stream_info; } diff --git a/test/mocks/stream_info/mocks.cc b/test/mocks/stream_info/mocks.cc index 28194ab7ab700..3a97b7932d355 100644 --- a/test/mocks/stream_info/mocks.cc +++ b/test/mocks/stream_info/mocks.cc @@ -64,15 +64,9 @@ MockStreamInfo::MockStreamInfo() ON_CALL(*this, upstreamLocalAddress()).WillByDefault(ReturnRef(upstream_local_address_)); ON_CALL(*this, downstreamAddressProvider()) .WillByDefault(ReturnPointee(downstream_address_provider_)); - ON_CALL(*this, setDownstreamSslConnection(_)) - .WillByDefault(Invoke( - [this](const auto& connection_info) { downstream_connection_info_ = connection_info; })); ON_CALL(*this, setUpstreamSslConnection(_)) .WillByDefault(Invoke( [this](const auto& connection_info) { upstream_connection_info_ = connection_info; })); - ON_CALL(*this, downstreamSslConnection()).WillByDefault(Invoke([this]() { - return downstream_connection_info_; - })); ON_CALL(*this, upstreamSslConnection()).WillByDefault(Invoke([this]() { return upstream_connection_info_; })); diff --git a/test/mocks/stream_info/mocks.h b/test/mocks/stream_info/mocks.h index dbc2fec6c5bd4..777bf729a2d92 100644 --- a/test/mocks/stream_info/mocks.h +++ b/test/mocks/stream_info/mocks.h @@ -66,8 +66,6 @@ class MockStreamInfo : public StreamInfo { MOCK_METHOD(bool, healthCheck, (), (const)); MOCK_METHOD(void, healthCheck, (bool is_health_check)); MOCK_METHOD(const Network::SocketAddressProvider&, downstreamAddressProvider, (), (const)); - MOCK_METHOD(void, setDownstreamSslConnection, (const Ssl::ConnectionInfoConstSharedPtr&)); - MOCK_METHOD(Ssl::ConnectionInfoConstSharedPtr, downstreamSslConnection, (), (const)); MOCK_METHOD(void, setUpstreamSslConnection, (const Ssl::ConnectionInfoConstSharedPtr&)); MOCK_METHOD(Ssl::ConnectionInfoConstSharedPtr, upstreamSslConnection, (), (const)); MOCK_METHOD(const Router::RouteEntry*, routeEntry, (), (const)); From 2dffc9f4895714f8c7d9dc649d79ee3e03030790 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Tue, 13 Jul 2021 13:24:22 +0000 Subject: [PATCH 03/16] Setting the upstream ssl connection through socketaddressprovider Signed-off-by: He Jie Xu --- envoy/network/connection.h | 2 +- envoy/network/socket.h | 2 +- source/common/network/connection_impl.h | 2 +- source/common/network/socket_impl.h | 2 +- .../quic/quic_filter_manager_connection_impl.h | 2 +- source/common/stream_info/stream_info_impl.h | 16 ++++++++-------- source/common/upstream/health_checker_impl.h | 2 +- source/server/api_listener_impl.h | 2 +- test/mocks/network/connection.h | 2 +- test/mocks/network/mocks.h | 4 ++-- test/mocks/network/socket.h | 2 +- 11 files changed, 19 insertions(+), 19 deletions(-) diff --git a/envoy/network/connection.h b/envoy/network/connection.h index 620a5b2e1ec31..37c443b470e75 100644 --- a/envoy/network/connection.h +++ b/envoy/network/connection.h @@ -195,7 +195,7 @@ class Connection : public Event::DeferredDeletable, * @return the address provider backing this connection. */ virtual const SocketAddressProvider& addressProvider() const PURE; - virtual SocketAddressProviderSharedPtr addressProviderSharedPtr() const PURE; + virtual SocketAddressSetterSharedPtr addressProviderSharedPtr() const PURE; /** * Credentials of the peer of a socket as decided by SO_PEERCRED. diff --git a/envoy/network/socket.h b/envoy/network/socket.h index 413d0e603add8..6afa496242f71 100644 --- a/envoy/network/socket.h +++ b/envoy/network/socket.h @@ -178,7 +178,7 @@ class Socket { */ virtual SocketAddressSetter& addressProvider() PURE; virtual const SocketAddressProvider& addressProvider() const PURE; - virtual SocketAddressProviderSharedPtr addressProviderSharedPtr() const PURE; + virtual SocketAddressSetterSharedPtr addressProviderSharedPtr() const PURE; /** * @return IoHandle for the underlying connection diff --git a/source/common/network/connection_impl.h b/source/common/network/connection_impl.h index 4e9f0044924c1..5d990bb719afb 100644 --- a/source/common/network/connection_impl.h +++ b/source/common/network/connection_impl.h @@ -73,7 +73,7 @@ class ConnectionImpl : public ConnectionImplBase, public TransportSocketCallback const SocketAddressProvider& addressProvider() const override { return socket_->addressProvider(); } - SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { + SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { return socket_->addressProviderSharedPtr(); } absl::optional unixSocketPeerCredentials() const override; diff --git a/source/common/network/socket_impl.h b/source/common/network/socket_impl.h index 60b2e58380295..e27e558dc0278 100644 --- a/source/common/network/socket_impl.h +++ b/source/common/network/socket_impl.h @@ -85,7 +85,7 @@ class SocketImpl : public virtual Socket { // Network::Socket SocketAddressSetter& addressProvider() override { return *address_provider_; } const SocketAddressProvider& addressProvider() const override { return *address_provider_; } - SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { + SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { return address_provider_; } SocketPtr duplicate() override { diff --git a/source/common/quic/quic_filter_manager_connection_impl.h b/source/common/quic/quic_filter_manager_connection_impl.h index e1a96ea42b90a..45fc08e09e986 100644 --- a/source/common/quic/quic_filter_manager_connection_impl.h +++ b/source/common/quic/quic_filter_manager_connection_impl.h @@ -73,7 +73,7 @@ class QuicFilterManagerConnectionImpl : public Network::ConnectionImplBase, const Network::SocketAddressSetter& addressProvider() const override { return network_connection_->connectionSocket()->addressProvider(); } - Network::SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { + Network::SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { return network_connection_->connectionSocket()->addressProviderSharedPtr(); } absl::optional diff --git a/source/common/stream_info/stream_info_impl.h b/source/common/stream_info/stream_info_impl.h index d96d41ae9108c..654b42f05bf3e 100644 --- a/source/common/stream_info/stream_info_impl.h +++ b/source/common/stream_info/stream_info_impl.h @@ -36,18 +36,18 @@ const ReplacementMap& emptySpaceReplacement() { struct StreamInfoImpl : public StreamInfo { StreamInfoImpl(TimeSource& time_source, - const Network::SocketAddressProviderSharedPtr& downstream_address_provider, + const Network::SocketAddressSetterSharedPtr& downstream_address_provider, FilterState::LifeSpan life_span = FilterState::LifeSpan::FilterChain) : StreamInfoImpl(absl::nullopt, time_source, downstream_address_provider, std::make_shared(life_span)) {} StreamInfoImpl(Http::Protocol protocol, TimeSource& time_source, - const Network::SocketAddressProviderSharedPtr& downstream_address_provider) + const Network::SocketAddressSetterSharedPtr& downstream_address_provider) : StreamInfoImpl(protocol, time_source, downstream_address_provider, std::make_shared(FilterState::LifeSpan::FilterChain)) {} StreamInfoImpl(Http::Protocol protocol, TimeSource& time_source, - const Network::SocketAddressProviderSharedPtr& downstream_address_provider, + const Network::SocketAddressSetterSharedPtr& downstream_address_provider, FilterStateSharedPtr parent_filter_state, FilterState::LifeSpan life_span) : StreamInfoImpl( protocol, time_source, downstream_address_provider, @@ -198,7 +198,7 @@ struct StreamInfoImpl : public StreamInfo { } void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { - upstream_ssl_info_ = connection_info; + downstream_address_provider_->setDownstreamSslConnection(connection_info); } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { @@ -294,14 +294,14 @@ struct StreamInfoImpl : public StreamInfo { std::string route_name_; private: - static Network::SocketAddressProviderSharedPtr emptyDownstreamAddressProvider() { + static Network::SocketAddressSetterSharedPtr emptyDownstreamAddressProvider() { MUTABLE_CONSTRUCT_ON_FIRST_USE( - Network::SocketAddressProviderSharedPtr, + Network::SocketAddressSetterSharedPtr, std::make_shared(nullptr, nullptr)); } StreamInfoImpl(absl::optional protocol, TimeSource& time_source, - const Network::SocketAddressProviderSharedPtr& downstream_address_provider, + const Network::SocketAddressSetterSharedPtr& downstream_address_provider, FilterStateSharedPtr filter_state) : time_source_(time_source), start_time_(time_source.systemTime()), start_time_monotonic_(time_source.monotonicTime()), protocol_(protocol), @@ -314,7 +314,7 @@ struct StreamInfoImpl : public StreamInfo { uint64_t bytes_received_{}; uint64_t bytes_sent_{}; Network::Address::InstanceConstSharedPtr upstream_local_address_; - const Network::SocketAddressProviderSharedPtr downstream_address_provider_; + const Network::SocketAddressSetterSharedPtr downstream_address_provider_; Ssl::ConnectionInfoConstSharedPtr upstream_ssl_info_; std::string requested_server_name_; const Http::RequestHeaderMap* request_headers_{}; diff --git a/source/common/upstream/health_checker_impl.h b/source/common/upstream/health_checker_impl.h index ec3b615ea5abe..409486a04188a 100644 --- a/source/common/upstream/health_checker_impl.h +++ b/source/common/upstream/health_checker_impl.h @@ -141,7 +141,7 @@ class HttpHealthCheckerImpl : public HealthCheckerImplBase { Http::ResponseHeaderMapPtr response_headers_; const std::string& hostname_; const Http::Protocol protocol_; - Network::SocketAddressProviderSharedPtr local_address_provider_; + Network::SocketAddressSetterSharedPtr local_address_provider_; bool expect_reset_{}; bool reuse_connection_ = false; bool request_in_flight_ = false; diff --git a/source/server/api_listener_impl.h b/source/server/api_listener_impl.h index fdb8498ad1f0f..50916c3b7dc0c 100644 --- a/source/server/api_listener_impl.h +++ b/source/server/api_listener_impl.h @@ -123,7 +123,7 @@ class ApiListenerImplBase : public ApiListener, const Network::SocketAddressSetter& addressProvider() const override { return *address_provider_; } - Network::SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { + Network::SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { return address_provider_; } absl::optional diff --git a/test/mocks/network/connection.h b/test/mocks/network/connection.h index 3ec78cb5d47b1..8d7c4154ee689 100644 --- a/test/mocks/network/connection.h +++ b/test/mocks/network/connection.h @@ -66,7 +66,7 @@ class MockConnectionBase { MOCK_METHOD(void, detectEarlyCloseWhenReadDisabled, (bool)); \ MOCK_METHOD(bool, readEnabled, (), (const)); \ MOCK_METHOD(const SocketAddressProvider&, addressProvider, (), (const)); \ - MOCK_METHOD(SocketAddressProviderSharedPtr, addressProviderSharedPtr, (), (const)); \ + MOCK_METHOD(SocketAddressSetterSharedPtr, addressProviderSharedPtr, (), (const)); \ MOCK_METHOD(absl::optional, \ unixSocketPeerCredentials, (), (const)); \ MOCK_METHOD(void, setConnectionStats, (const ConnectionStats& stats)); \ diff --git a/test/mocks/network/mocks.h b/test/mocks/network/mocks.h index f9943d9f44158..2d1ff20f5fe19 100644 --- a/test/mocks/network/mocks.h +++ b/test/mocks/network/mocks.h @@ -235,7 +235,7 @@ class MockListenSocket : public Socket { SocketAddressSetter& addressProvider() override { return *address_provider_; } const SocketAddressProvider& addressProvider() const override { return *address_provider_; } - SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { + SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { return address_provider_; } MOCK_METHOD(IoHandle&, ioHandle, ()); @@ -289,7 +289,7 @@ class MockConnectionSocket : public ConnectionSocket { SocketAddressSetter& addressProvider() override { return *address_provider_; } const SocketAddressProvider& addressProvider() const override { return *address_provider_; } - SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { + SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { return address_provider_; } MOCK_METHOD(void, setDetectedTransportProtocol, (absl::string_view)); diff --git a/test/mocks/network/socket.h b/test/mocks/network/socket.h index b4f3ac4e6b43b..9b6029caa43e7 100644 --- a/test/mocks/network/socket.h +++ b/test/mocks/network/socket.h @@ -16,7 +16,7 @@ class MockSocket : public Socket { SocketAddressSetter& addressProvider() override { return *address_provider_; } const SocketAddressProvider& addressProvider() const override { return *address_provider_; } - SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { + SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { return address_provider_; } IoHandle& ioHandle() override; From f9881a3b3584ec7d7b98f07f3ecaa5e8aa46bd06 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Wed, 14 Jul 2021 07:48:09 +0000 Subject: [PATCH 04/16] remove the StreamInfo::upstreamSslConnection Signed-off-by: He Jie Xu --- envoy/stream_info/stream_info.h | 6 ------ source/common/http/filter_manager.h | 2 +- source/common/stream_info/stream_info_impl.h | 6 +----- source/extensions/filters/common/expr/context.cc | 2 +- test/common/router/router_test.cc | 4 ++-- test/common/stream_info/stream_info_impl_test.cc | 4 ++-- test/common/stream_info/test_util.h | 5 +---- test/common/tcp_proxy/tcp_proxy_test.cc | 6 +++--- test/extensions/filters/common/expr/context_test.cc | 2 +- test/mocks/stream_info/mocks.cc | 5 +---- test/mocks/stream_info/mocks.h | 2 -- test/server/filter_chain_benchmark_test.cc | 2 +- 12 files changed, 14 insertions(+), 32 deletions(-) diff --git a/envoy/stream_info/stream_info.h b/envoy/stream_info/stream_info.h index 36311103d6f50..04afffd7fbbfa 100644 --- a/envoy/stream_info/stream_info.h +++ b/envoy/stream_info/stream_info.h @@ -473,12 +473,6 @@ class StreamInfo { virtual void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; - /** - * @return the upstream SSL connection. This will be nullptr if the upstream - * connection does not use SSL. - */ - virtual Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const PURE; - /** * @return const Router::RouteEntry* Get the route entry selected for this request. Note: this * will be nullptr if no route was selected. diff --git a/source/common/http/filter_manager.h b/source/common/http/filter_manager.h index f74763f8e15e1..d8af23f15f4d6 100644 --- a/source/common/http/filter_manager.h +++ b/source/common/http/filter_manager.h @@ -630,7 +630,7 @@ class OverridableRemoteSocketAddressSetterStreamInfo : public StreamInfo::Stream return StreamInfoImpl::downstreamAddressProvider().downstreamSslConnection(); } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { - return StreamInfoImpl::upstreamSslConnection(); + return StreamInfoImpl::downstreamAddressProvider().upstreamSslConnection(); } void dumpState(std::ostream& os, int indent_level) const override { StreamInfoImpl::dumpState(os, indent_level); diff --git a/source/common/stream_info/stream_info_impl.h b/source/common/stream_info/stream_info_impl.h index 654b42f05bf3e..3ebe44b7cd020 100644 --- a/source/common/stream_info/stream_info_impl.h +++ b/source/common/stream_info/stream_info_impl.h @@ -198,11 +198,7 @@ struct StreamInfoImpl : public StreamInfo { } void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { - downstream_address_provider_->setDownstreamSslConnection(connection_info); - } - - Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { - return upstream_ssl_info_; + downstream_address_provider_->setUpstreamSslConnection(connection_info); } const Router::RouteEntry* routeEntry() const override { return route_entry_; } diff --git a/source/extensions/filters/common/expr/context.cc b/source/extensions/filters/common/expr/context.cc index dbc611d7f1495..5a600a84d111f 100644 --- a/source/extensions/filters/common/expr/context.cc +++ b/source/extensions/filters/common/expr/context.cc @@ -231,7 +231,7 @@ absl::optional UpstreamWrapper::operator[](CelValue key) const { return CelValue::CreateStringView(info_.upstreamTransportFailureReason()); } - auto ssl_info = info_.upstreamSslConnection(); + auto ssl_info = info_.downstreamAddressProvider().upstreamSslConnection(); if (ssl_info != nullptr) { return extractSslInfo(*ssl_info, value); } diff --git a/test/common/router/router_test.cc b/test/common/router/router_test.cc index eece26796bbc7..170e5532e7707 100644 --- a/test/common/router/router_test.cc +++ b/test/common/router/router_test.cc @@ -4867,8 +4867,8 @@ TEST_F(RouterTest, UpstreamSSLConnection) { response_decoder->decodeHeaders(std::move(response_headers), true); EXPECT_TRUE(verifyHostUpstreamStats(1, 0)); - ASSERT_NE(nullptr, callbacks_.streamInfo().upstreamSslConnection()); - EXPECT_EQ(session_id, callbacks_.streamInfo().upstreamSslConnection()->sessionId()); + ASSERT_NE(nullptr, callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()); + EXPECT_EQ(session_id, callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); } // Verify that upstream timing information is set into the StreamInfo after the upstream diff --git a/test/common/stream_info/stream_info_impl_test.cc b/test/common/stream_info/stream_info_impl_test.cc index 6ff19887f4fc7..0ba55f71e79f7 100644 --- a/test/common/stream_info/stream_info_impl_test.cc +++ b/test/common/stream_info/stream_info_impl_test.cc @@ -135,7 +135,7 @@ TEST_F(StreamInfoImplTest, ResponseFlagTest) { TEST_F(StreamInfoImplTest, MiscSettersAndGetters) { { - StreamInfoImpl stream_info(Http::Protocol::Http2, test_time_.timeSystem(), nullptr); + StreamInfoImpl stream_info(Http::Protocol::Http2, test_time_.timeSystem(), std::make_shared(nullptr, nullptr)); EXPECT_EQ(Http::Protocol::Http2, stream_info.protocol().value()); @@ -191,7 +191,7 @@ TEST_F(StreamInfoImplTest, MiscSettersAndGetters) { auto ssl_info = std::make_shared(); EXPECT_CALL(*ssl_info, sessionId()).WillRepeatedly(testing::ReturnRef(session_id)); stream_info.setUpstreamSslConnection(ssl_info); - EXPECT_EQ(session_id, stream_info.upstreamSslConnection()->sessionId()); + EXPECT_EQ(session_id, stream_info.downstreamAddressProvider().upstreamSslConnection()->sessionId()); } } diff --git a/test/common/stream_info/test_util.h b/test/common/stream_info/test_util.h index 6991a429ce2d4..5bd7090ab37e2 100644 --- a/test/common/stream_info/test_util.h +++ b/test/common/stream_info/test_util.h @@ -80,12 +80,9 @@ class TestStreamInfo : public StreamInfo::StreamInfo { } void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { - upstream_connection_info_ = connection_info; + downstream_address_provider_->setUpstreamSslConnection(connection_info); } - Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { - return upstream_connection_info_; - } void setRouteName(absl::string_view route_name) override { route_name_ = std::string(route_name); } diff --git a/test/common/tcp_proxy/tcp_proxy_test.cc b/test/common/tcp_proxy/tcp_proxy_test.cc index ab4b86d28bd1a..455407a121b18 100644 --- a/test/common/tcp_proxy/tcp_proxy_test.cc +++ b/test/common/tcp_proxy/tcp_proxy_test.cc @@ -940,8 +940,8 @@ TEST_F(TcpProxyTest, AccessLogUpstreamSSLConnection) { EXPECT_CALL(*upstream_connections_.at(0), streamInfo()).WillRepeatedly(ReturnRef(stream_info)); raiseEventUpstreamConnected(0); - ASSERT_NE(nullptr, filter_->getStreamInfo().upstreamSslConnection()); - EXPECT_EQ(session_id, filter_->getStreamInfo().upstreamSslConnection()->sessionId()); + ASSERT_NE(nullptr, filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()); + EXPECT_EQ(session_id, filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); } // Tests that upstream flush works properly with no idle timeout configured. @@ -1100,7 +1100,7 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { filter_callbacks_.connection().ssl()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamLocalAddress(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().localAddress()); - EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamSslConnection(), + EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().upstreamSslConnection(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().downstreamSslConnection()); } } // namespace diff --git a/test/extensions/filters/common/expr/context_test.cc b/test/extensions/filters/common/expr/context_test.cc index 42025b681052c..f36cbac3576b3 100644 --- a/test/extensions/filters/common/expr/context_test.cc +++ b/test/extensions/filters/common/expr/context_test.cc @@ -442,7 +442,7 @@ TEST(Context, ConnectionAttributes) { info.downstream_address_provider_->setRemoteAddress(remote); info.downstream_address_provider_->setRequestedServerName(sni_name); info.downstream_address_provider_->setDownstreamSslConnection(downstream_ssl_info); - EXPECT_CALL(info, upstreamSslConnection()).WillRepeatedly(Return(upstream_ssl_info)); + info.downstream_address_provider_->setUpstreamSslConnection(upstream_ssl_info); EXPECT_CALL(info, upstreamHost()).WillRepeatedly(Return(upstream_host)); EXPECT_CALL(info, upstreamLocalAddress()).WillRepeatedly(ReturnRef(upstream_local_address)); const std::string upstream_transport_failure_reason = "ConnectionTermination"; diff --git a/test/mocks/stream_info/mocks.cc b/test/mocks/stream_info/mocks.cc index 3a97b7932d355..6cc84f25fe6eb 100644 --- a/test/mocks/stream_info/mocks.cc +++ b/test/mocks/stream_info/mocks.cc @@ -66,10 +66,7 @@ MockStreamInfo::MockStreamInfo() .WillByDefault(ReturnPointee(downstream_address_provider_)); ON_CALL(*this, setUpstreamSslConnection(_)) .WillByDefault(Invoke( - [this](const auto& connection_info) { upstream_connection_info_ = connection_info; })); - ON_CALL(*this, upstreamSslConnection()).WillByDefault(Invoke([this]() { - return upstream_connection_info_; - })); + [this](const auto& connection_info) { downstream_address_provider_->setUpstreamSslConnection(connection_info); })); ON_CALL(*this, protocol()).WillByDefault(ReturnPointee(&protocol_)); ON_CALL(*this, responseCode()).WillByDefault(ReturnPointee(&response_code_)); ON_CALL(*this, responseCodeDetails()).WillByDefault(ReturnPointee(&response_code_details_)); diff --git a/test/mocks/stream_info/mocks.h b/test/mocks/stream_info/mocks.h index 777bf729a2d92..6da3de799ece4 100644 --- a/test/mocks/stream_info/mocks.h +++ b/test/mocks/stream_info/mocks.h @@ -121,8 +121,6 @@ class MockStreamInfo : public StreamInfo { uint64_t bytes_sent_{}; Network::Address::InstanceConstSharedPtr upstream_local_address_; std::shared_ptr downstream_address_provider_; - Ssl::ConnectionInfoConstSharedPtr downstream_connection_info_; - Ssl::ConnectionInfoConstSharedPtr upstream_connection_info_; std::string route_name_; std::string upstream_transport_failure_reason_; std::string filter_chain_name_; diff --git a/test/server/filter_chain_benchmark_test.cc b/test/server/filter_chain_benchmark_test.cc index 89569264633b0..93837c4a01c81 100644 --- a/test/server/filter_chain_benchmark_test.cc +++ b/test/server/filter_chain_benchmark_test.cc @@ -79,7 +79,7 @@ class MockConnectionSocket : public Network::ConnectionSocket { const Network::SocketAddressSetter& addressProvider() const override { return *address_provider_; } - Network::SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { + Network::SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { return address_provider_; } From 3b5691178ea504b0abcd5e60e860dfccd733c175 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Wed, 14 Jul 2021 07:52:24 +0000 Subject: [PATCH 05/16] fix format Signed-off-by: He Jie Xu --- envoy/network/BUILD | 2 +- .../formatter/substitution_formatter.cc | 12 ++++++--- source/common/network/socket_impl.h | 4 +-- source/common/router/config_impl.cc | 8 ++++-- source/common/router/router.cc | 7 ++--- source/common/router/upstream_request.cc | 3 ++- source/common/tcp_proxy/upstream.cc | 9 ++++--- .../extensions/filters/common/expr/context.cc | 5 ++-- test/common/http/conn_manager_impl_test.cc | 3 ++- .../http/conn_manager_impl_test_base.cc | 4 +-- test/common/router/router_test.cc | 4 ++- .../stream_info/stream_info_impl_test.cc | 7 +++-- test/common/tcp/conn_pool_test.cc | 3 ++- test/common/tcp_proxy/tcp_proxy_test.cc | 27 +++++++++++++------ test/mocks/network/connection.h | 2 +- test/mocks/stream_info/mocks.cc | 5 ++-- 16 files changed, 69 insertions(+), 36 deletions(-) diff --git a/envoy/network/BUILD b/envoy/network/BUILD index e7a4ca99abb3b..3caab27a2aaa9 100644 --- a/envoy/network/BUILD +++ b/envoy/network/BUILD @@ -116,8 +116,8 @@ envoy_cc_library( deps = [ ":address_interface", ":io_handle_interface", - "@envoy_api//envoy/config/core/v3:pkg_cc_proto", "//envoy/ssl:connection_interface", + "@envoy_api//envoy/config/core/v3:pkg_cc_proto", ], ) diff --git a/source/common/formatter/substitution_formatter.cc b/source/common/formatter/substitution_formatter.cc index 3702b11bb94f7..6894d514aa647 100644 --- a/source/common/formatter/substitution_formatter.cc +++ b/source/common/formatter/substitution_formatter.cc @@ -659,7 +659,8 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi return absl::nullopt; } - const auto value = field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + const auto value = + field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); if (value && value->empty()) { return absl::nullopt; } @@ -672,7 +673,8 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi return unspecifiedValue(); } - const auto value = field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + const auto value = + field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); if (value && value->empty()) { return unspecifiedValue(); } @@ -1335,7 +1337,8 @@ DownstreamPeerCertVStartFormatter::DownstreamPeerCertVStartFormatter(const std:: parseFormat(token, sizeof("DOWNSTREAM_PEER_CERT_V_START(") - 1), std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { - const auto connection_info = stream_info.downstreamAddressProvider().downstreamSslConnection(); + const auto connection_info = + stream_info.downstreamAddressProvider().downstreamSslConnection(); return connection_info != nullptr ? connection_info->validFromPeerCertificate() : absl::optional(); })) {} @@ -1347,7 +1350,8 @@ DownstreamPeerCertVEndFormatter::DownstreamPeerCertVEndFormatter(const std::stri parseFormat(token, sizeof("DOWNSTREAM_PEER_CERT_V_END(") - 1), std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { - const auto connection_info = stream_info.downstreamAddressProvider().downstreamSslConnection(); + const auto connection_info = + stream_info.downstreamAddressProvider().downstreamSslConnection(); return connection_info != nullptr ? connection_info->expirationPeerCertificate() : absl::optional(); })) {} diff --git a/source/common/network/socket_impl.h b/source/common/network/socket_impl.h index e27e558dc0278..5993280eb34e0 100644 --- a/source/common/network/socket_impl.h +++ b/source/common/network/socket_impl.h @@ -54,8 +54,8 @@ class SocketAddressSetterImpl : public SocketAddressSetter { Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { return downstream_ssl_info_; } - void - setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { + void setDownstreamSslConnection( + const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { downstream_ssl_info_ = ssl_connection_info; } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { diff --git a/source/common/router/config_impl.cc b/source/common/router/config_impl.cc index e73caaf66fbf6..3c0356555e4df 100644 --- a/source/common/router/config_impl.cc +++ b/source/common/router/config_impl.cc @@ -503,13 +503,17 @@ bool RouteEntryImplBase::evaluateTlsContextMatch(const StreamInfo::StreamInfo& s if (criteria.presented().has_value()) { const bool peer_presented = stream_info.downstreamAddressProvider().downstreamSslConnection() && - stream_info.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented(); + stream_info.downstreamAddressProvider() + .downstreamSslConnection() + ->peerCertificatePresented(); matches &= criteria.presented().value() == peer_presented; } if (criteria.validated().has_value()) { const bool peer_validated = stream_info.downstreamAddressProvider().downstreamSslConnection() && - stream_info.downstreamAddressProvider().downstreamSslConnection()->peerCertificateValidated(); + stream_info.downstreamAddressProvider() + .downstreamSslConnection() + ->peerCertificateValidated(); matches &= criteria.validated().value() == peer_validated; } diff --git a/source/common/router/router.cc b/source/common/router/router.cc index 4dd5859318403..54be35ef13fe5 100644 --- a/source/common/router/router.cc +++ b/source/common/router/router.cc @@ -604,9 +604,10 @@ Http::FilterHeadersStatus Filter::decodeHeaders(Http::RequestHeaderMap& headers, route_entry_->finalizeRequestHeaders(headers, callbacks_->streamInfo(), !config_.suppress_envoy_headers_); - FilterUtility::setUpstreamScheme(headers, - callbacks_->streamInfo().downstreamAddressProvider().downstreamSslConnection() != nullptr, - host->transportSocketFactory().implementsSecureTransport()); + FilterUtility::setUpstreamScheme( + headers, + callbacks_->streamInfo().downstreamAddressProvider().downstreamSslConnection() != nullptr, + host->transportSocketFactory().implementsSecureTransport()); // Ensure an http transport scheme is selected before continuing with decoding. ASSERT(headers.Scheme()); diff --git a/source/common/router/upstream_request.cc b/source/common/router/upstream_request.cc index cdca807c7050a..6c0852ff9f5bf 100644 --- a/source/common/router/upstream_request.cc +++ b/source/common/router/upstream_request.cc @@ -413,7 +413,8 @@ void UpstreamRequest::onPoolReady( parent_.callbacks()->streamInfo().setUpstreamLocalAddress(upstream_local_address); stream_info_.setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); - parent_.callbacks()->streamInfo().setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); + parent_.callbacks()->streamInfo().setUpstreamSslConnection( + info.downstreamAddressProvider().downstreamSslConnection()); if (parent_.downstreamEndStream()) { setupPerTryTimeout(); diff --git a/source/common/tcp_proxy/upstream.cc b/source/common/tcp_proxy/upstream.cc index 2224ad5245603..90dafa24446be 100644 --- a/source/common/tcp_proxy/upstream.cc +++ b/source/common/tcp_proxy/upstream.cc @@ -187,7 +187,10 @@ void TcpConnPool::onPoolReady(Tcp::ConnectionPool::ConnectionDataPtr&& conn_data auto upstream = std::make_unique(std::move(conn_data), upstream_callbacks_); callbacks_->onGenericPoolReady(&connection.streamInfo(), std::move(upstream), host, latched_data->connection().addressProvider().localAddress(), - latched_data->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection()); + latched_data->connection() + .streamInfo() + .downstreamAddressProvider() + .downstreamSslConnection()); } HttpConnPool::HttpConnPool(Upstream::ThreadLocalCluster& thread_local_cluster, @@ -237,8 +240,8 @@ void HttpConnPool::onPoolReady(Http::RequestEncoder& request_encoder, if (Runtime::runtimeFeatureEnabled( "envoy.reloadable_features.http_upstream_wait_connect_response")) { - upstream_->setConnPoolCallbacks( - std::make_unique(*this, host, info.downstreamAddressProvider().downstreamSslConnection())); + upstream_->setConnPoolCallbacks(std::make_unique( + *this, host, info.downstreamAddressProvider().downstreamSslConnection())); } else { callbacks_->onGenericPoolReady(nullptr, std::move(upstream_), host, latched_encoder->getStream().connectionLocalAddress(), diff --git a/source/extensions/filters/common/expr/context.cc b/source/extensions/filters/common/expr/context.cc index 5a600a84d111f..4de176965890b 100644 --- a/source/extensions/filters/common/expr/context.cc +++ b/source/extensions/filters/common/expr/context.cc @@ -181,8 +181,9 @@ absl::optional ConnectionWrapper::operator[](CelValue key) const { } auto value = key.StringOrDie().value(); if (value == MTLS) { - return CelValue::CreateBool(info_.downstreamAddressProvider().downstreamSslConnection() != nullptr && - info_.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented()); + return CelValue::CreateBool( + info_.downstreamAddressProvider().downstreamSslConnection() != nullptr && + info_.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented()); } else if (value == RequestedServerName) { return CelValue::CreateStringView(info_.downstreamAddressProvider().requestedServerName()); } else if (value == ID) { diff --git a/test/common/http/conn_manager_impl_test.cc b/test/common/http/conn_manager_impl_test.cc index 70357618c6a5f..48ff7ef55f7b3 100644 --- a/test/common/http/conn_manager_impl_test.cc +++ b/test/common/http/conn_manager_impl_test.cc @@ -301,7 +301,8 @@ TEST_F(HttpConnectionManagerImplTest, PopulateStreamInfo) { decoder_ = &conn_manager_->newStream(response_encoder_); EXPECT_EQ(requestIDExtension().get(), decoder_->streamInfo().getRequestIDProvider()); - EXPECT_EQ(ssl_connection_, decoder_->streamInfo().downstreamAddressProvider().downstreamSslConnection()); + EXPECT_EQ(ssl_connection_, + decoder_->streamInfo().downstreamAddressProvider().downstreamSslConnection()); EXPECT_EQ(filter_callbacks_.connection_.id_, decoder_->streamInfo().downstreamAddressProvider().connectionID()); EXPECT_EQ(server_name_, decoder_->streamInfo().downstreamAddressProvider().requestedServerName()); diff --git a/test/common/http/conn_manager_impl_test_base.cc b/test/common/http/conn_manager_impl_test_base.cc index bcd17acb86942..6edd6b6d4c590 100644 --- a/test/common/http/conn_manager_impl_test_base.cc +++ b/test/common/http/conn_manager_impl_test_base.cc @@ -72,8 +72,8 @@ void HttpConnectionManagerImplTest::setup(bool ssl, const std::string& server_na ->setDirectRemoteAddressForTest(std::make_shared("0.0.0.0")); filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setRequestedServerName( server_name_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( - ssl_connection_); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_ + ->setDownstreamSslConnection(ssl_connection_); conn_manager_ = std::make_unique( *this, drain_close_, random_, http_context_, runtime_, local_info_, cluster_manager_, overload_manager_, test_time_.timeSystem()); diff --git a/test/common/router/router_test.cc b/test/common/router/router_test.cc index 170e5532e7707..a5a6f77ec6427 100644 --- a/test/common/router/router_test.cc +++ b/test/common/router/router_test.cc @@ -4868,7 +4868,9 @@ TEST_F(RouterTest, UpstreamSSLConnection) { EXPECT_TRUE(verifyHostUpstreamStats(1, 0)); ASSERT_NE(nullptr, callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()); - EXPECT_EQ(session_id, callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); + EXPECT_EQ( + session_id, + callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); } // Verify that upstream timing information is set into the StreamInfo after the upstream diff --git a/test/common/stream_info/stream_info_impl_test.cc b/test/common/stream_info/stream_info_impl_test.cc index 0ba55f71e79f7..26270fd7ea939 100644 --- a/test/common/stream_info/stream_info_impl_test.cc +++ b/test/common/stream_info/stream_info_impl_test.cc @@ -135,7 +135,9 @@ TEST_F(StreamInfoImplTest, ResponseFlagTest) { TEST_F(StreamInfoImplTest, MiscSettersAndGetters) { { - StreamInfoImpl stream_info(Http::Protocol::Http2, test_time_.timeSystem(), std::make_shared(nullptr, nullptr)); + StreamInfoImpl stream_info( + Http::Protocol::Http2, test_time_.timeSystem(), + std::make_shared(nullptr, nullptr)); EXPECT_EQ(Http::Protocol::Http2, stream_info.protocol().value()); @@ -191,7 +193,8 @@ TEST_F(StreamInfoImplTest, MiscSettersAndGetters) { auto ssl_info = std::make_shared(); EXPECT_CALL(*ssl_info, sessionId()).WillRepeatedly(testing::ReturnRef(session_id)); stream_info.setUpstreamSslConnection(ssl_info); - EXPECT_EQ(session_id, stream_info.downstreamAddressProvider().upstreamSslConnection()->sessionId()); + EXPECT_EQ(session_id, + stream_info.downstreamAddressProvider().upstreamSslConnection()->sessionId()); } } diff --git a/test/common/tcp/conn_pool_test.cc b/test/common/tcp/conn_pool_test.cc index 5ea2829d99f70..37b138bdad947 100644 --- a/test/common/tcp/conn_pool_test.cc +++ b/test/common/tcp/conn_pool_test.cc @@ -57,7 +57,8 @@ struct ConnPoolCallbacks : public Tcp::ConnectionPool::Callbacks { conn_data_ = std::move(conn); conn_data_->addUpstreamCallbacks(callbacks_); host_ = host; - ssl_ = conn_data_->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(); + ssl_ = + conn_data_->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(); pool_ready_.ready(); } diff --git a/test/common/tcp_proxy/tcp_proxy_test.cc b/test/common/tcp_proxy/tcp_proxy_test.cc index 455407a121b18..c4b5dc9339163 100644 --- a/test/common/tcp_proxy/tcp_proxy_test.cc +++ b/test/common/tcp_proxy/tcp_proxy_test.cc @@ -122,8 +122,8 @@ class TcpProxyTest : public TcpProxyTestBase { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( - filter_callbacks_.connection_.ssl()); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_ + ->setDownstreamSslConnection(filter_callbacks_.connection_.ssl()); } if (connections > 0) { @@ -225,8 +225,8 @@ TEST_F(TcpProxyTest, BadFactory) { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( - filter_callbacks_.connection_.ssl()); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_ + ->setDownstreamSslConnection(filter_callbacks_.connection_.ssl()); EXPECT_EQ(Network::FilterStatus::StopIteration, filter_->onNewConnection()); } @@ -941,7 +941,9 @@ TEST_F(TcpProxyTest, AccessLogUpstreamSSLConnection) { raiseEventUpstreamConnected(0); ASSERT_NE(nullptr, filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()); - EXPECT_EQ(session_id, filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); + EXPECT_EQ( + session_id, + filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); } // Tests that upstream flush works properly with no idle timeout configured. @@ -1096,12 +1098,21 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { setup(1); raiseEventUpstreamConnected(0); - EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(), + EXPECT_EQ(filter_callbacks_.connection() + .streamInfo() + .downstreamAddressProvider() + .downstreamSslConnection(), filter_callbacks_.connection().ssl()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamLocalAddress(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().localAddress()); - EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().upstreamSslConnection(), - upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().downstreamSslConnection()); + EXPECT_EQ(filter_callbacks_.connection() + .streamInfo() + .downstreamAddressProvider() + .upstreamSslConnection(), + upstream_connections_.at(0) + ->streamInfo() + .downstreamAddressProvider() + .downstreamSslConnection()); } } // namespace } // namespace TcpProxy diff --git a/test/mocks/network/connection.h b/test/mocks/network/connection.h index 8d7c4154ee689..64a9df6663dae 100644 --- a/test/mocks/network/connection.h +++ b/test/mocks/network/connection.h @@ -66,7 +66,7 @@ class MockConnectionBase { MOCK_METHOD(void, detectEarlyCloseWhenReadDisabled, (bool)); \ MOCK_METHOD(bool, readEnabled, (), (const)); \ MOCK_METHOD(const SocketAddressProvider&, addressProvider, (), (const)); \ - MOCK_METHOD(SocketAddressSetterSharedPtr, addressProviderSharedPtr, (), (const)); \ + MOCK_METHOD(SocketAddressSetterSharedPtr, addressProviderSharedPtr, (), (const)); \ MOCK_METHOD(absl::optional, \ unixSocketPeerCredentials, (), (const)); \ MOCK_METHOD(void, setConnectionStats, (const ConnectionStats& stats)); \ diff --git a/test/mocks/stream_info/mocks.cc b/test/mocks/stream_info/mocks.cc index 6cc84f25fe6eb..339db1303e329 100644 --- a/test/mocks/stream_info/mocks.cc +++ b/test/mocks/stream_info/mocks.cc @@ -65,8 +65,9 @@ MockStreamInfo::MockStreamInfo() ON_CALL(*this, downstreamAddressProvider()) .WillByDefault(ReturnPointee(downstream_address_provider_)); ON_CALL(*this, setUpstreamSslConnection(_)) - .WillByDefault(Invoke( - [this](const auto& connection_info) { downstream_address_provider_->setUpstreamSslConnection(connection_info); })); + .WillByDefault(Invoke([this](const auto& connection_info) { + downstream_address_provider_->setUpstreamSslConnection(connection_info); + })); ON_CALL(*this, protocol()).WillByDefault(ReturnPointee(&protocol_)); ON_CALL(*this, responseCode()).WillByDefault(ReturnPointee(&response_code_)); ON_CALL(*this, responseCodeDetails()).WillByDefault(ReturnPointee(&response_code_details_)); From d04acbd78d91c9ed0ef9fe66f339586a6a82b2d2 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Thu, 15 Jul 2021 05:37:33 +0000 Subject: [PATCH 06/16] silence the null pointer warning Signed-off-by: He Jie Xu --- test/common/router/router_test.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/test/common/router/router_test.cc b/test/common/router/router_test.cc index a5a6f77ec6427..4641e00e19888 100644 --- a/test/common/router/router_test.cc +++ b/test/common/router/router_test.cc @@ -4864,6 +4864,7 @@ TEST_F(RouterTest, UpstreamSSLConnection) { Http::ResponseHeaderMapPtr response_headers( new Http::TestResponseHeaderMapImpl{{":status", "200"}}); + // NOLINTNEXTLINE: Silence null pointer access warning response_decoder->decodeHeaders(std::move(response_headers), true); EXPECT_TRUE(verifyHostUpstreamStats(1, 0)); From 2df315ab7029b4783add74a47af377493e92ec49 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Thu, 15 Jul 2021 13:57:47 +0000 Subject: [PATCH 07/16] fix format Signed-off-by: He Jie Xu --- source/common/tcp_proxy/upstream.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/common/tcp_proxy/upstream.cc b/source/common/tcp_proxy/upstream.cc index 5ecd085e191ae..983e01d9ff735 100644 --- a/source/common/tcp_proxy/upstream.cc +++ b/source/common/tcp_proxy/upstream.cc @@ -236,8 +236,8 @@ void HttpConnPool::onPoolReady(Http::RequestEncoder& request_encoder, upstream_handle_ = nullptr; upstream_->setRequestEncoder(request_encoder, host->transportSocketFactory().implementsSecureTransport()); - upstream_->setConnPoolCallbacks( - std::make_unique(*this, host, info.downstreamAddressProvider().downstreamSslConnection())); + upstream_->setConnPoolCallbacks(std::make_unique( + *this, host, info.downstreamAddressProvider().downstreamSslConnection())); } void HttpConnPool::onGenericPoolReady(Upstream::HostDescriptionConstSharedPtr& host, From f4f5746372fc3623ea094fdc81928717f5a2f868 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sat, 24 Jul 2021 12:18:14 +0000 Subject: [PATCH 08/16] Revert "fix format" This reverts commit 2df315ab7029b4783add74a47af377493e92ec49. Signed-off-by: He Jie Xu --- source/common/tcp_proxy/upstream.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/common/tcp_proxy/upstream.cc b/source/common/tcp_proxy/upstream.cc index 983e01d9ff735..5ecd085e191ae 100644 --- a/source/common/tcp_proxy/upstream.cc +++ b/source/common/tcp_proxy/upstream.cc @@ -236,8 +236,8 @@ void HttpConnPool::onPoolReady(Http::RequestEncoder& request_encoder, upstream_handle_ = nullptr; upstream_->setRequestEncoder(request_encoder, host->transportSocketFactory().implementsSecureTransport()); - upstream_->setConnPoolCallbacks(std::make_unique( - *this, host, info.downstreamAddressProvider().downstreamSslConnection())); + upstream_->setConnPoolCallbacks( + std::make_unique(*this, host, info.downstreamAddressProvider().downstreamSslConnection())); } void HttpConnPool::onGenericPoolReady(Upstream::HostDescriptionConstSharedPtr& host, From e4c648d8a2af26e67169a702522f86ad890ba590 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sat, 24 Jul 2021 12:18:27 +0000 Subject: [PATCH 09/16] Revert "silence the null pointer warning" This reverts commit d04acbd78d91c9ed0ef9fe66f339586a6a82b2d2. Signed-off-by: He Jie Xu --- test/common/router/router_test.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/test/common/router/router_test.cc b/test/common/router/router_test.cc index 4641e00e19888..a5a6f77ec6427 100644 --- a/test/common/router/router_test.cc +++ b/test/common/router/router_test.cc @@ -4864,7 +4864,6 @@ TEST_F(RouterTest, UpstreamSSLConnection) { Http::ResponseHeaderMapPtr response_headers( new Http::TestResponseHeaderMapImpl{{":status", "200"}}); - // NOLINTNEXTLINE: Silence null pointer access warning response_decoder->decodeHeaders(std::move(response_headers), true); EXPECT_TRUE(verifyHostUpstreamStats(1, 0)); From 4801259505c300d03b2d75b5cfe58e1ce0930696 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sat, 24 Jul 2021 12:19:39 +0000 Subject: [PATCH 10/16] Revert "fix format" This reverts commit 3b5691178ea504b0abcd5e60e860dfccd733c175. Signed-off-by: He Jie Xu --- envoy/network/BUILD | 2 +- .../formatter/substitution_formatter.cc | 12 +++------ source/common/network/socket_impl.h | 4 +-- source/common/router/config_impl.cc | 8 ++---- source/common/router/router.cc | 7 +++-- source/common/router/upstream_request.cc | 3 +-- source/common/tcp_proxy/upstream.cc | 5 +--- .../extensions/filters/common/expr/context.cc | 5 ++-- test/common/http/conn_manager_impl_test.cc | 3 +-- .../http/conn_manager_impl_test_base.cc | 4 +-- test/common/router/router_test.cc | 4 +-- .../stream_info/stream_info_impl_test.cc | 7 ++--- test/common/tcp/conn_pool_test.cc | 3 +-- test/common/tcp_proxy/tcp_proxy_test.cc | 27 ++++++------------- test/mocks/network/connection.h | 2 +- test/mocks/stream_info/mocks.cc | 5 ++-- 16 files changed, 34 insertions(+), 67 deletions(-) diff --git a/envoy/network/BUILD b/envoy/network/BUILD index 3caab27a2aaa9..e7a4ca99abb3b 100644 --- a/envoy/network/BUILD +++ b/envoy/network/BUILD @@ -116,8 +116,8 @@ envoy_cc_library( deps = [ ":address_interface", ":io_handle_interface", - "//envoy/ssl:connection_interface", "@envoy_api//envoy/config/core/v3:pkg_cc_proto", + "//envoy/ssl:connection_interface", ], ) diff --git a/source/common/formatter/substitution_formatter.cc b/source/common/formatter/substitution_formatter.cc index 6894d514aa647..3702b11bb94f7 100644 --- a/source/common/formatter/substitution_formatter.cc +++ b/source/common/formatter/substitution_formatter.cc @@ -659,8 +659,7 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi return absl::nullopt; } - const auto value = - field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + const auto value = field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); if (value && value->empty()) { return absl::nullopt; } @@ -673,8 +672,7 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi return unspecifiedValue(); } - const auto value = - field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + const auto value = field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); if (value && value->empty()) { return unspecifiedValue(); } @@ -1337,8 +1335,7 @@ DownstreamPeerCertVStartFormatter::DownstreamPeerCertVStartFormatter(const std:: parseFormat(token, sizeof("DOWNSTREAM_PEER_CERT_V_START(") - 1), std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { - const auto connection_info = - stream_info.downstreamAddressProvider().downstreamSslConnection(); + const auto connection_info = stream_info.downstreamAddressProvider().downstreamSslConnection(); return connection_info != nullptr ? connection_info->validFromPeerCertificate() : absl::optional(); })) {} @@ -1350,8 +1347,7 @@ DownstreamPeerCertVEndFormatter::DownstreamPeerCertVEndFormatter(const std::stri parseFormat(token, sizeof("DOWNSTREAM_PEER_CERT_V_END(") - 1), std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { - const auto connection_info = - stream_info.downstreamAddressProvider().downstreamSslConnection(); + const auto connection_info = stream_info.downstreamAddressProvider().downstreamSslConnection(); return connection_info != nullptr ? connection_info->expirationPeerCertificate() : absl::optional(); })) {} diff --git a/source/common/network/socket_impl.h b/source/common/network/socket_impl.h index 5993280eb34e0..e27e558dc0278 100644 --- a/source/common/network/socket_impl.h +++ b/source/common/network/socket_impl.h @@ -54,8 +54,8 @@ class SocketAddressSetterImpl : public SocketAddressSetter { Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { return downstream_ssl_info_; } - void setDownstreamSslConnection( - const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { + void + setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { downstream_ssl_info_ = ssl_connection_info; } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { diff --git a/source/common/router/config_impl.cc b/source/common/router/config_impl.cc index 3c0356555e4df..e73caaf66fbf6 100644 --- a/source/common/router/config_impl.cc +++ b/source/common/router/config_impl.cc @@ -503,17 +503,13 @@ bool RouteEntryImplBase::evaluateTlsContextMatch(const StreamInfo::StreamInfo& s if (criteria.presented().has_value()) { const bool peer_presented = stream_info.downstreamAddressProvider().downstreamSslConnection() && - stream_info.downstreamAddressProvider() - .downstreamSslConnection() - ->peerCertificatePresented(); + stream_info.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented(); matches &= criteria.presented().value() == peer_presented; } if (criteria.validated().has_value()) { const bool peer_validated = stream_info.downstreamAddressProvider().downstreamSslConnection() && - stream_info.downstreamAddressProvider() - .downstreamSslConnection() - ->peerCertificateValidated(); + stream_info.downstreamAddressProvider().downstreamSslConnection()->peerCertificateValidated(); matches &= criteria.validated().value() == peer_validated; } diff --git a/source/common/router/router.cc b/source/common/router/router.cc index 54be35ef13fe5..4dd5859318403 100644 --- a/source/common/router/router.cc +++ b/source/common/router/router.cc @@ -604,10 +604,9 @@ Http::FilterHeadersStatus Filter::decodeHeaders(Http::RequestHeaderMap& headers, route_entry_->finalizeRequestHeaders(headers, callbacks_->streamInfo(), !config_.suppress_envoy_headers_); - FilterUtility::setUpstreamScheme( - headers, - callbacks_->streamInfo().downstreamAddressProvider().downstreamSslConnection() != nullptr, - host->transportSocketFactory().implementsSecureTransport()); + FilterUtility::setUpstreamScheme(headers, + callbacks_->streamInfo().downstreamAddressProvider().downstreamSslConnection() != nullptr, + host->transportSocketFactory().implementsSecureTransport()); // Ensure an http transport scheme is selected before continuing with decoding. ASSERT(headers.Scheme()); diff --git a/source/common/router/upstream_request.cc b/source/common/router/upstream_request.cc index 6c0852ff9f5bf..cdca807c7050a 100644 --- a/source/common/router/upstream_request.cc +++ b/source/common/router/upstream_request.cc @@ -413,8 +413,7 @@ void UpstreamRequest::onPoolReady( parent_.callbacks()->streamInfo().setUpstreamLocalAddress(upstream_local_address); stream_info_.setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); - parent_.callbacks()->streamInfo().setUpstreamSslConnection( - info.downstreamAddressProvider().downstreamSslConnection()); + parent_.callbacks()->streamInfo().setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); if (parent_.downstreamEndStream()) { setupPerTryTimeout(); diff --git a/source/common/tcp_proxy/upstream.cc b/source/common/tcp_proxy/upstream.cc index 5ecd085e191ae..410ed7c8be3dd 100644 --- a/source/common/tcp_proxy/upstream.cc +++ b/source/common/tcp_proxy/upstream.cc @@ -187,10 +187,7 @@ void TcpConnPool::onPoolReady(Tcp::ConnectionPool::ConnectionDataPtr&& conn_data auto upstream = std::make_unique(std::move(conn_data), upstream_callbacks_); callbacks_->onGenericPoolReady(&connection.streamInfo(), std::move(upstream), host, latched_data->connection().addressProvider().localAddress(), - latched_data->connection() - .streamInfo() - .downstreamAddressProvider() - .downstreamSslConnection()); + latched_data->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection()); } HttpConnPool::HttpConnPool(Upstream::ThreadLocalCluster& thread_local_cluster, diff --git a/source/extensions/filters/common/expr/context.cc b/source/extensions/filters/common/expr/context.cc index 4de176965890b..5a600a84d111f 100644 --- a/source/extensions/filters/common/expr/context.cc +++ b/source/extensions/filters/common/expr/context.cc @@ -181,9 +181,8 @@ absl::optional ConnectionWrapper::operator[](CelValue key) const { } auto value = key.StringOrDie().value(); if (value == MTLS) { - return CelValue::CreateBool( - info_.downstreamAddressProvider().downstreamSslConnection() != nullptr && - info_.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented()); + return CelValue::CreateBool(info_.downstreamAddressProvider().downstreamSslConnection() != nullptr && + info_.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented()); } else if (value == RequestedServerName) { return CelValue::CreateStringView(info_.downstreamAddressProvider().requestedServerName()); } else if (value == ID) { diff --git a/test/common/http/conn_manager_impl_test.cc b/test/common/http/conn_manager_impl_test.cc index 48ff7ef55f7b3..70357618c6a5f 100644 --- a/test/common/http/conn_manager_impl_test.cc +++ b/test/common/http/conn_manager_impl_test.cc @@ -301,8 +301,7 @@ TEST_F(HttpConnectionManagerImplTest, PopulateStreamInfo) { decoder_ = &conn_manager_->newStream(response_encoder_); EXPECT_EQ(requestIDExtension().get(), decoder_->streamInfo().getRequestIDProvider()); - EXPECT_EQ(ssl_connection_, - decoder_->streamInfo().downstreamAddressProvider().downstreamSslConnection()); + EXPECT_EQ(ssl_connection_, decoder_->streamInfo().downstreamAddressProvider().downstreamSslConnection()); EXPECT_EQ(filter_callbacks_.connection_.id_, decoder_->streamInfo().downstreamAddressProvider().connectionID()); EXPECT_EQ(server_name_, decoder_->streamInfo().downstreamAddressProvider().requestedServerName()); diff --git a/test/common/http/conn_manager_impl_test_base.cc b/test/common/http/conn_manager_impl_test_base.cc index 6edd6b6d4c590..bcd17acb86942 100644 --- a/test/common/http/conn_manager_impl_test_base.cc +++ b/test/common/http/conn_manager_impl_test_base.cc @@ -72,8 +72,8 @@ void HttpConnectionManagerImplTest::setup(bool ssl, const std::string& server_na ->setDirectRemoteAddressForTest(std::make_shared("0.0.0.0")); filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setRequestedServerName( server_name_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setDownstreamSslConnection(ssl_connection_); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( + ssl_connection_); conn_manager_ = std::make_unique( *this, drain_close_, random_, http_context_, runtime_, local_info_, cluster_manager_, overload_manager_, test_time_.timeSystem()); diff --git a/test/common/router/router_test.cc b/test/common/router/router_test.cc index a5a6f77ec6427..170e5532e7707 100644 --- a/test/common/router/router_test.cc +++ b/test/common/router/router_test.cc @@ -4868,9 +4868,7 @@ TEST_F(RouterTest, UpstreamSSLConnection) { EXPECT_TRUE(verifyHostUpstreamStats(1, 0)); ASSERT_NE(nullptr, callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()); - EXPECT_EQ( - session_id, - callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); + EXPECT_EQ(session_id, callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); } // Verify that upstream timing information is set into the StreamInfo after the upstream diff --git a/test/common/stream_info/stream_info_impl_test.cc b/test/common/stream_info/stream_info_impl_test.cc index 26270fd7ea939..0ba55f71e79f7 100644 --- a/test/common/stream_info/stream_info_impl_test.cc +++ b/test/common/stream_info/stream_info_impl_test.cc @@ -135,9 +135,7 @@ TEST_F(StreamInfoImplTest, ResponseFlagTest) { TEST_F(StreamInfoImplTest, MiscSettersAndGetters) { { - StreamInfoImpl stream_info( - Http::Protocol::Http2, test_time_.timeSystem(), - std::make_shared(nullptr, nullptr)); + StreamInfoImpl stream_info(Http::Protocol::Http2, test_time_.timeSystem(), std::make_shared(nullptr, nullptr)); EXPECT_EQ(Http::Protocol::Http2, stream_info.protocol().value()); @@ -193,8 +191,7 @@ TEST_F(StreamInfoImplTest, MiscSettersAndGetters) { auto ssl_info = std::make_shared(); EXPECT_CALL(*ssl_info, sessionId()).WillRepeatedly(testing::ReturnRef(session_id)); stream_info.setUpstreamSslConnection(ssl_info); - EXPECT_EQ(session_id, - stream_info.downstreamAddressProvider().upstreamSslConnection()->sessionId()); + EXPECT_EQ(session_id, stream_info.downstreamAddressProvider().upstreamSslConnection()->sessionId()); } } diff --git a/test/common/tcp/conn_pool_test.cc b/test/common/tcp/conn_pool_test.cc index a830964f9d362..966a4eb83d681 100644 --- a/test/common/tcp/conn_pool_test.cc +++ b/test/common/tcp/conn_pool_test.cc @@ -56,8 +56,7 @@ struct ConnPoolCallbacks : public Tcp::ConnectionPool::Callbacks { conn_data_ = std::move(conn); conn_data_->addUpstreamCallbacks(callbacks_); host_ = host; - ssl_ = - conn_data_->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(); + ssl_ = conn_data_->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(); pool_ready_.ready(); } diff --git a/test/common/tcp_proxy/tcp_proxy_test.cc b/test/common/tcp_proxy/tcp_proxy_test.cc index c4b5dc9339163..455407a121b18 100644 --- a/test/common/tcp_proxy/tcp_proxy_test.cc +++ b/test/common/tcp_proxy/tcp_proxy_test.cc @@ -122,8 +122,8 @@ class TcpProxyTest : public TcpProxyTestBase { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setDownstreamSslConnection(filter_callbacks_.connection_.ssl()); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( + filter_callbacks_.connection_.ssl()); } if (connections > 0) { @@ -225,8 +225,8 @@ TEST_F(TcpProxyTest, BadFactory) { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setDownstreamSslConnection(filter_callbacks_.connection_.ssl()); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( + filter_callbacks_.connection_.ssl()); EXPECT_EQ(Network::FilterStatus::StopIteration, filter_->onNewConnection()); } @@ -941,9 +941,7 @@ TEST_F(TcpProxyTest, AccessLogUpstreamSSLConnection) { raiseEventUpstreamConnected(0); ASSERT_NE(nullptr, filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()); - EXPECT_EQ( - session_id, - filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); + EXPECT_EQ(session_id, filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); } // Tests that upstream flush works properly with no idle timeout configured. @@ -1098,21 +1096,12 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { setup(1); raiseEventUpstreamConnected(0); - EXPECT_EQ(filter_callbacks_.connection() - .streamInfo() - .downstreamAddressProvider() - .downstreamSslConnection(), + EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(), filter_callbacks_.connection().ssl()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamLocalAddress(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().localAddress()); - EXPECT_EQ(filter_callbacks_.connection() - .streamInfo() - .downstreamAddressProvider() - .upstreamSslConnection(), - upstream_connections_.at(0) - ->streamInfo() - .downstreamAddressProvider() - .downstreamSslConnection()); + EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().upstreamSslConnection(), + upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().downstreamSslConnection()); } } // namespace } // namespace TcpProxy diff --git a/test/mocks/network/connection.h b/test/mocks/network/connection.h index 64a9df6663dae..8d7c4154ee689 100644 --- a/test/mocks/network/connection.h +++ b/test/mocks/network/connection.h @@ -66,7 +66,7 @@ class MockConnectionBase { MOCK_METHOD(void, detectEarlyCloseWhenReadDisabled, (bool)); \ MOCK_METHOD(bool, readEnabled, (), (const)); \ MOCK_METHOD(const SocketAddressProvider&, addressProvider, (), (const)); \ - MOCK_METHOD(SocketAddressSetterSharedPtr, addressProviderSharedPtr, (), (const)); \ + MOCK_METHOD(SocketAddressSetterSharedPtr, addressProviderSharedPtr, (), (const)); \ MOCK_METHOD(absl::optional, \ unixSocketPeerCredentials, (), (const)); \ MOCK_METHOD(void, setConnectionStats, (const ConnectionStats& stats)); \ diff --git a/test/mocks/stream_info/mocks.cc b/test/mocks/stream_info/mocks.cc index 339db1303e329..6cc84f25fe6eb 100644 --- a/test/mocks/stream_info/mocks.cc +++ b/test/mocks/stream_info/mocks.cc @@ -65,9 +65,8 @@ MockStreamInfo::MockStreamInfo() ON_CALL(*this, downstreamAddressProvider()) .WillByDefault(ReturnPointee(downstream_address_provider_)); ON_CALL(*this, setUpstreamSslConnection(_)) - .WillByDefault(Invoke([this](const auto& connection_info) { - downstream_address_provider_->setUpstreamSslConnection(connection_info); - })); + .WillByDefault(Invoke( + [this](const auto& connection_info) { downstream_address_provider_->setUpstreamSslConnection(connection_info); })); ON_CALL(*this, protocol()).WillByDefault(ReturnPointee(&protocol_)); ON_CALL(*this, responseCode()).WillByDefault(ReturnPointee(&response_code_)); ON_CALL(*this, responseCodeDetails()).WillByDefault(ReturnPointee(&response_code_details_)); From 69c924400ba4851560626bbdeaf033742f6d48a2 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sat, 24 Jul 2021 12:19:58 +0000 Subject: [PATCH 11/16] Revert "remove the StreamInfo::upstreamSslConnection" This reverts commit f9881a3b3584ec7d7b98f07f3ecaa5e8aa46bd06. Signed-off-by: He Jie Xu --- envoy/stream_info/stream_info.h | 6 ++++++ source/common/http/filter_manager.h | 2 +- source/common/stream_info/stream_info_impl.h | 6 +++++- source/extensions/filters/common/expr/context.cc | 2 +- test/common/router/router_test.cc | 4 ++-- test/common/stream_info/stream_info_impl_test.cc | 4 ++-- test/common/stream_info/test_util.h | 5 ++++- test/common/tcp_proxy/tcp_proxy_test.cc | 6 +++--- test/extensions/filters/common/expr/context_test.cc | 2 +- test/mocks/stream_info/mocks.cc | 5 ++++- test/mocks/stream_info/mocks.h | 2 ++ test/server/filter_chain_benchmark_test.cc | 2 +- 12 files changed, 32 insertions(+), 14 deletions(-) diff --git a/envoy/stream_info/stream_info.h b/envoy/stream_info/stream_info.h index 04afffd7fbbfa..36311103d6f50 100644 --- a/envoy/stream_info/stream_info.h +++ b/envoy/stream_info/stream_info.h @@ -473,6 +473,12 @@ class StreamInfo { virtual void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; + /** + * @return the upstream SSL connection. This will be nullptr if the upstream + * connection does not use SSL. + */ + virtual Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const PURE; + /** * @return const Router::RouteEntry* Get the route entry selected for this request. Note: this * will be nullptr if no route was selected. diff --git a/source/common/http/filter_manager.h b/source/common/http/filter_manager.h index d8af23f15f4d6..f74763f8e15e1 100644 --- a/source/common/http/filter_manager.h +++ b/source/common/http/filter_manager.h @@ -630,7 +630,7 @@ class OverridableRemoteSocketAddressSetterStreamInfo : public StreamInfo::Stream return StreamInfoImpl::downstreamAddressProvider().downstreamSslConnection(); } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { - return StreamInfoImpl::downstreamAddressProvider().upstreamSslConnection(); + return StreamInfoImpl::upstreamSslConnection(); } void dumpState(std::ostream& os, int indent_level) const override { StreamInfoImpl::dumpState(os, indent_level); diff --git a/source/common/stream_info/stream_info_impl.h b/source/common/stream_info/stream_info_impl.h index 3ebe44b7cd020..654b42f05bf3e 100644 --- a/source/common/stream_info/stream_info_impl.h +++ b/source/common/stream_info/stream_info_impl.h @@ -198,7 +198,11 @@ struct StreamInfoImpl : public StreamInfo { } void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { - downstream_address_provider_->setUpstreamSslConnection(connection_info); + downstream_address_provider_->setDownstreamSslConnection(connection_info); + } + + Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { + return upstream_ssl_info_; } const Router::RouteEntry* routeEntry() const override { return route_entry_; } diff --git a/source/extensions/filters/common/expr/context.cc b/source/extensions/filters/common/expr/context.cc index 5a600a84d111f..dbc611d7f1495 100644 --- a/source/extensions/filters/common/expr/context.cc +++ b/source/extensions/filters/common/expr/context.cc @@ -231,7 +231,7 @@ absl::optional UpstreamWrapper::operator[](CelValue key) const { return CelValue::CreateStringView(info_.upstreamTransportFailureReason()); } - auto ssl_info = info_.downstreamAddressProvider().upstreamSslConnection(); + auto ssl_info = info_.upstreamSslConnection(); if (ssl_info != nullptr) { return extractSslInfo(*ssl_info, value); } diff --git a/test/common/router/router_test.cc b/test/common/router/router_test.cc index 170e5532e7707..eece26796bbc7 100644 --- a/test/common/router/router_test.cc +++ b/test/common/router/router_test.cc @@ -4867,8 +4867,8 @@ TEST_F(RouterTest, UpstreamSSLConnection) { response_decoder->decodeHeaders(std::move(response_headers), true); EXPECT_TRUE(verifyHostUpstreamStats(1, 0)); - ASSERT_NE(nullptr, callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()); - EXPECT_EQ(session_id, callbacks_.streamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); + ASSERT_NE(nullptr, callbacks_.streamInfo().upstreamSslConnection()); + EXPECT_EQ(session_id, callbacks_.streamInfo().upstreamSslConnection()->sessionId()); } // Verify that upstream timing information is set into the StreamInfo after the upstream diff --git a/test/common/stream_info/stream_info_impl_test.cc b/test/common/stream_info/stream_info_impl_test.cc index 0ba55f71e79f7..6ff19887f4fc7 100644 --- a/test/common/stream_info/stream_info_impl_test.cc +++ b/test/common/stream_info/stream_info_impl_test.cc @@ -135,7 +135,7 @@ TEST_F(StreamInfoImplTest, ResponseFlagTest) { TEST_F(StreamInfoImplTest, MiscSettersAndGetters) { { - StreamInfoImpl stream_info(Http::Protocol::Http2, test_time_.timeSystem(), std::make_shared(nullptr, nullptr)); + StreamInfoImpl stream_info(Http::Protocol::Http2, test_time_.timeSystem(), nullptr); EXPECT_EQ(Http::Protocol::Http2, stream_info.protocol().value()); @@ -191,7 +191,7 @@ TEST_F(StreamInfoImplTest, MiscSettersAndGetters) { auto ssl_info = std::make_shared(); EXPECT_CALL(*ssl_info, sessionId()).WillRepeatedly(testing::ReturnRef(session_id)); stream_info.setUpstreamSslConnection(ssl_info); - EXPECT_EQ(session_id, stream_info.downstreamAddressProvider().upstreamSslConnection()->sessionId()); + EXPECT_EQ(session_id, stream_info.upstreamSslConnection()->sessionId()); } } diff --git a/test/common/stream_info/test_util.h b/test/common/stream_info/test_util.h index 5bd7090ab37e2..6991a429ce2d4 100644 --- a/test/common/stream_info/test_util.h +++ b/test/common/stream_info/test_util.h @@ -80,9 +80,12 @@ class TestStreamInfo : public StreamInfo::StreamInfo { } void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { - downstream_address_provider_->setUpstreamSslConnection(connection_info); + upstream_connection_info_ = connection_info; } + Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { + return upstream_connection_info_; + } void setRouteName(absl::string_view route_name) override { route_name_ = std::string(route_name); } diff --git a/test/common/tcp_proxy/tcp_proxy_test.cc b/test/common/tcp_proxy/tcp_proxy_test.cc index 455407a121b18..ab4b86d28bd1a 100644 --- a/test/common/tcp_proxy/tcp_proxy_test.cc +++ b/test/common/tcp_proxy/tcp_proxy_test.cc @@ -940,8 +940,8 @@ TEST_F(TcpProxyTest, AccessLogUpstreamSSLConnection) { EXPECT_CALL(*upstream_connections_.at(0), streamInfo()).WillRepeatedly(ReturnRef(stream_info)); raiseEventUpstreamConnected(0); - ASSERT_NE(nullptr, filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()); - EXPECT_EQ(session_id, filter_->getStreamInfo().downstreamAddressProvider().upstreamSslConnection()->sessionId()); + ASSERT_NE(nullptr, filter_->getStreamInfo().upstreamSslConnection()); + EXPECT_EQ(session_id, filter_->getStreamInfo().upstreamSslConnection()->sessionId()); } // Tests that upstream flush works properly with no idle timeout configured. @@ -1100,7 +1100,7 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { filter_callbacks_.connection().ssl()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamLocalAddress(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().localAddress()); - EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().upstreamSslConnection(), + EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamSslConnection(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().downstreamSslConnection()); } } // namespace diff --git a/test/extensions/filters/common/expr/context_test.cc b/test/extensions/filters/common/expr/context_test.cc index f36cbac3576b3..42025b681052c 100644 --- a/test/extensions/filters/common/expr/context_test.cc +++ b/test/extensions/filters/common/expr/context_test.cc @@ -442,7 +442,7 @@ TEST(Context, ConnectionAttributes) { info.downstream_address_provider_->setRemoteAddress(remote); info.downstream_address_provider_->setRequestedServerName(sni_name); info.downstream_address_provider_->setDownstreamSslConnection(downstream_ssl_info); - info.downstream_address_provider_->setUpstreamSslConnection(upstream_ssl_info); + EXPECT_CALL(info, upstreamSslConnection()).WillRepeatedly(Return(upstream_ssl_info)); EXPECT_CALL(info, upstreamHost()).WillRepeatedly(Return(upstream_host)); EXPECT_CALL(info, upstreamLocalAddress()).WillRepeatedly(ReturnRef(upstream_local_address)); const std::string upstream_transport_failure_reason = "ConnectionTermination"; diff --git a/test/mocks/stream_info/mocks.cc b/test/mocks/stream_info/mocks.cc index 6cc84f25fe6eb..3a97b7932d355 100644 --- a/test/mocks/stream_info/mocks.cc +++ b/test/mocks/stream_info/mocks.cc @@ -66,7 +66,10 @@ MockStreamInfo::MockStreamInfo() .WillByDefault(ReturnPointee(downstream_address_provider_)); ON_CALL(*this, setUpstreamSslConnection(_)) .WillByDefault(Invoke( - [this](const auto& connection_info) { downstream_address_provider_->setUpstreamSslConnection(connection_info); })); + [this](const auto& connection_info) { upstream_connection_info_ = connection_info; })); + ON_CALL(*this, upstreamSslConnection()).WillByDefault(Invoke([this]() { + return upstream_connection_info_; + })); ON_CALL(*this, protocol()).WillByDefault(ReturnPointee(&protocol_)); ON_CALL(*this, responseCode()).WillByDefault(ReturnPointee(&response_code_)); ON_CALL(*this, responseCodeDetails()).WillByDefault(ReturnPointee(&response_code_details_)); diff --git a/test/mocks/stream_info/mocks.h b/test/mocks/stream_info/mocks.h index 6da3de799ece4..777bf729a2d92 100644 --- a/test/mocks/stream_info/mocks.h +++ b/test/mocks/stream_info/mocks.h @@ -121,6 +121,8 @@ class MockStreamInfo : public StreamInfo { uint64_t bytes_sent_{}; Network::Address::InstanceConstSharedPtr upstream_local_address_; std::shared_ptr downstream_address_provider_; + Ssl::ConnectionInfoConstSharedPtr downstream_connection_info_; + Ssl::ConnectionInfoConstSharedPtr upstream_connection_info_; std::string route_name_; std::string upstream_transport_failure_reason_; std::string filter_chain_name_; diff --git a/test/server/filter_chain_benchmark_test.cc b/test/server/filter_chain_benchmark_test.cc index 93837c4a01c81..89569264633b0 100644 --- a/test/server/filter_chain_benchmark_test.cc +++ b/test/server/filter_chain_benchmark_test.cc @@ -79,7 +79,7 @@ class MockConnectionSocket : public Network::ConnectionSocket { const Network::SocketAddressSetter& addressProvider() const override { return *address_provider_; } - Network::SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { + Network::SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { return address_provider_; } From e05ab4e6583a6b6ec5659b8d74840210a3273b53 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sat, 24 Jul 2021 12:20:18 +0000 Subject: [PATCH 12/16] Revert "Setting the upstream ssl connection through socketaddressprovider" This reverts commit 2dffc9f4895714f8c7d9dc649d79ee3e03030790. Signed-off-by: He Jie Xu --- envoy/network/connection.h | 2 +- envoy/network/socket.h | 2 +- source/common/network/connection_impl.h | 2 +- source/common/network/socket_impl.h | 2 +- .../quic/quic_filter_manager_connection_impl.h | 2 +- source/common/stream_info/stream_info_impl.h | 16 ++++++++-------- source/common/upstream/health_checker_impl.h | 2 +- source/server/api_listener_impl.h | 2 +- test/mocks/network/connection.h | 2 +- test/mocks/network/mocks.h | 4 ++-- test/mocks/network/socket.h | 2 +- 11 files changed, 19 insertions(+), 19 deletions(-) diff --git a/envoy/network/connection.h b/envoy/network/connection.h index 37c443b470e75..620a5b2e1ec31 100644 --- a/envoy/network/connection.h +++ b/envoy/network/connection.h @@ -195,7 +195,7 @@ class Connection : public Event::DeferredDeletable, * @return the address provider backing this connection. */ virtual const SocketAddressProvider& addressProvider() const PURE; - virtual SocketAddressSetterSharedPtr addressProviderSharedPtr() const PURE; + virtual SocketAddressProviderSharedPtr addressProviderSharedPtr() const PURE; /** * Credentials of the peer of a socket as decided by SO_PEERCRED. diff --git a/envoy/network/socket.h b/envoy/network/socket.h index 6afa496242f71..413d0e603add8 100644 --- a/envoy/network/socket.h +++ b/envoy/network/socket.h @@ -178,7 +178,7 @@ class Socket { */ virtual SocketAddressSetter& addressProvider() PURE; virtual const SocketAddressProvider& addressProvider() const PURE; - virtual SocketAddressSetterSharedPtr addressProviderSharedPtr() const PURE; + virtual SocketAddressProviderSharedPtr addressProviderSharedPtr() const PURE; /** * @return IoHandle for the underlying connection diff --git a/source/common/network/connection_impl.h b/source/common/network/connection_impl.h index 5d990bb719afb..4e9f0044924c1 100644 --- a/source/common/network/connection_impl.h +++ b/source/common/network/connection_impl.h @@ -73,7 +73,7 @@ class ConnectionImpl : public ConnectionImplBase, public TransportSocketCallback const SocketAddressProvider& addressProvider() const override { return socket_->addressProvider(); } - SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { + SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { return socket_->addressProviderSharedPtr(); } absl::optional unixSocketPeerCredentials() const override; diff --git a/source/common/network/socket_impl.h b/source/common/network/socket_impl.h index e27e558dc0278..60b2e58380295 100644 --- a/source/common/network/socket_impl.h +++ b/source/common/network/socket_impl.h @@ -85,7 +85,7 @@ class SocketImpl : public virtual Socket { // Network::Socket SocketAddressSetter& addressProvider() override { return *address_provider_; } const SocketAddressProvider& addressProvider() const override { return *address_provider_; } - SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { + SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { return address_provider_; } SocketPtr duplicate() override { diff --git a/source/common/quic/quic_filter_manager_connection_impl.h b/source/common/quic/quic_filter_manager_connection_impl.h index 45fc08e09e986..e1a96ea42b90a 100644 --- a/source/common/quic/quic_filter_manager_connection_impl.h +++ b/source/common/quic/quic_filter_manager_connection_impl.h @@ -73,7 +73,7 @@ class QuicFilterManagerConnectionImpl : public Network::ConnectionImplBase, const Network::SocketAddressSetter& addressProvider() const override { return network_connection_->connectionSocket()->addressProvider(); } - Network::SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { + Network::SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { return network_connection_->connectionSocket()->addressProviderSharedPtr(); } absl::optional diff --git a/source/common/stream_info/stream_info_impl.h b/source/common/stream_info/stream_info_impl.h index 654b42f05bf3e..d96d41ae9108c 100644 --- a/source/common/stream_info/stream_info_impl.h +++ b/source/common/stream_info/stream_info_impl.h @@ -36,18 +36,18 @@ const ReplacementMap& emptySpaceReplacement() { struct StreamInfoImpl : public StreamInfo { StreamInfoImpl(TimeSource& time_source, - const Network::SocketAddressSetterSharedPtr& downstream_address_provider, + const Network::SocketAddressProviderSharedPtr& downstream_address_provider, FilterState::LifeSpan life_span = FilterState::LifeSpan::FilterChain) : StreamInfoImpl(absl::nullopt, time_source, downstream_address_provider, std::make_shared(life_span)) {} StreamInfoImpl(Http::Protocol protocol, TimeSource& time_source, - const Network::SocketAddressSetterSharedPtr& downstream_address_provider) + const Network::SocketAddressProviderSharedPtr& downstream_address_provider) : StreamInfoImpl(protocol, time_source, downstream_address_provider, std::make_shared(FilterState::LifeSpan::FilterChain)) {} StreamInfoImpl(Http::Protocol protocol, TimeSource& time_source, - const Network::SocketAddressSetterSharedPtr& downstream_address_provider, + const Network::SocketAddressProviderSharedPtr& downstream_address_provider, FilterStateSharedPtr parent_filter_state, FilterState::LifeSpan life_span) : StreamInfoImpl( protocol, time_source, downstream_address_provider, @@ -198,7 +198,7 @@ struct StreamInfoImpl : public StreamInfo { } void setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& connection_info) override { - downstream_address_provider_->setDownstreamSslConnection(connection_info); + upstream_ssl_info_ = connection_info; } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { @@ -294,14 +294,14 @@ struct StreamInfoImpl : public StreamInfo { std::string route_name_; private: - static Network::SocketAddressSetterSharedPtr emptyDownstreamAddressProvider() { + static Network::SocketAddressProviderSharedPtr emptyDownstreamAddressProvider() { MUTABLE_CONSTRUCT_ON_FIRST_USE( - Network::SocketAddressSetterSharedPtr, + Network::SocketAddressProviderSharedPtr, std::make_shared(nullptr, nullptr)); } StreamInfoImpl(absl::optional protocol, TimeSource& time_source, - const Network::SocketAddressSetterSharedPtr& downstream_address_provider, + const Network::SocketAddressProviderSharedPtr& downstream_address_provider, FilterStateSharedPtr filter_state) : time_source_(time_source), start_time_(time_source.systemTime()), start_time_monotonic_(time_source.monotonicTime()), protocol_(protocol), @@ -314,7 +314,7 @@ struct StreamInfoImpl : public StreamInfo { uint64_t bytes_received_{}; uint64_t bytes_sent_{}; Network::Address::InstanceConstSharedPtr upstream_local_address_; - const Network::SocketAddressSetterSharedPtr downstream_address_provider_; + const Network::SocketAddressProviderSharedPtr downstream_address_provider_; Ssl::ConnectionInfoConstSharedPtr upstream_ssl_info_; std::string requested_server_name_; const Http::RequestHeaderMap* request_headers_{}; diff --git a/source/common/upstream/health_checker_impl.h b/source/common/upstream/health_checker_impl.h index 409486a04188a..ec3b615ea5abe 100644 --- a/source/common/upstream/health_checker_impl.h +++ b/source/common/upstream/health_checker_impl.h @@ -141,7 +141,7 @@ class HttpHealthCheckerImpl : public HealthCheckerImplBase { Http::ResponseHeaderMapPtr response_headers_; const std::string& hostname_; const Http::Protocol protocol_; - Network::SocketAddressSetterSharedPtr local_address_provider_; + Network::SocketAddressProviderSharedPtr local_address_provider_; bool expect_reset_{}; bool reuse_connection_ = false; bool request_in_flight_ = false; diff --git a/source/server/api_listener_impl.h b/source/server/api_listener_impl.h index 50916c3b7dc0c..fdb8498ad1f0f 100644 --- a/source/server/api_listener_impl.h +++ b/source/server/api_listener_impl.h @@ -123,7 +123,7 @@ class ApiListenerImplBase : public ApiListener, const Network::SocketAddressSetter& addressProvider() const override { return *address_provider_; } - Network::SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { + Network::SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { return address_provider_; } absl::optional diff --git a/test/mocks/network/connection.h b/test/mocks/network/connection.h index 8d7c4154ee689..3ec78cb5d47b1 100644 --- a/test/mocks/network/connection.h +++ b/test/mocks/network/connection.h @@ -66,7 +66,7 @@ class MockConnectionBase { MOCK_METHOD(void, detectEarlyCloseWhenReadDisabled, (bool)); \ MOCK_METHOD(bool, readEnabled, (), (const)); \ MOCK_METHOD(const SocketAddressProvider&, addressProvider, (), (const)); \ - MOCK_METHOD(SocketAddressSetterSharedPtr, addressProviderSharedPtr, (), (const)); \ + MOCK_METHOD(SocketAddressProviderSharedPtr, addressProviderSharedPtr, (), (const)); \ MOCK_METHOD(absl::optional, \ unixSocketPeerCredentials, (), (const)); \ MOCK_METHOD(void, setConnectionStats, (const ConnectionStats& stats)); \ diff --git a/test/mocks/network/mocks.h b/test/mocks/network/mocks.h index 2d1ff20f5fe19..f9943d9f44158 100644 --- a/test/mocks/network/mocks.h +++ b/test/mocks/network/mocks.h @@ -235,7 +235,7 @@ class MockListenSocket : public Socket { SocketAddressSetter& addressProvider() override { return *address_provider_; } const SocketAddressProvider& addressProvider() const override { return *address_provider_; } - SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { + SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { return address_provider_; } MOCK_METHOD(IoHandle&, ioHandle, ()); @@ -289,7 +289,7 @@ class MockConnectionSocket : public ConnectionSocket { SocketAddressSetter& addressProvider() override { return *address_provider_; } const SocketAddressProvider& addressProvider() const override { return *address_provider_; } - SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { + SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { return address_provider_; } MOCK_METHOD(void, setDetectedTransportProtocol, (absl::string_view)); diff --git a/test/mocks/network/socket.h b/test/mocks/network/socket.h index 9b6029caa43e7..b4f3ac4e6b43b 100644 --- a/test/mocks/network/socket.h +++ b/test/mocks/network/socket.h @@ -16,7 +16,7 @@ class MockSocket : public Socket { SocketAddressSetter& addressProvider() override { return *address_provider_; } const SocketAddressProvider& addressProvider() const override { return *address_provider_; } - SocketAddressSetterSharedPtr addressProviderSharedPtr() const override { + SocketAddressProviderSharedPtr addressProviderSharedPtr() const override { return address_provider_; } IoHandle& ioHandle() override; From 03377f8ec955cc1d3247c92823ae60a689081ed5 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sun, 25 Jul 2021 00:22:14 +0000 Subject: [PATCH 13/16] fix format Signed-off-by: He Jie Xu --- envoy/network/BUILD | 2 +- .../common/formatter/substitution_formatter.cc | 12 ++++++++---- source/common/network/socket_impl.h | 4 ++-- source/common/router/config_impl.cc | 8 ++++++-- source/common/router/router.cc | 7 ++++--- source/common/router/upstream_request.cc | 3 ++- source/common/tcp_proxy/upstream.cc | 9 ++++++--- .../extensions/filters/common/expr/context.cc | 5 +++-- test/common/http/conn_manager_impl_test.cc | 3 ++- .../common/http/conn_manager_impl_test_base.cc | 4 ++-- test/common/tcp/conn_pool_test.cc | 3 ++- test/common/tcp_proxy/tcp_proxy_test.cc | 18 ++++++++++++------ 12 files changed, 50 insertions(+), 28 deletions(-) diff --git a/envoy/network/BUILD b/envoy/network/BUILD index e7a4ca99abb3b..3caab27a2aaa9 100644 --- a/envoy/network/BUILD +++ b/envoy/network/BUILD @@ -116,8 +116,8 @@ envoy_cc_library( deps = [ ":address_interface", ":io_handle_interface", - "@envoy_api//envoy/config/core/v3:pkg_cc_proto", "//envoy/ssl:connection_interface", + "@envoy_api//envoy/config/core/v3:pkg_cc_proto", ], ) diff --git a/source/common/formatter/substitution_formatter.cc b/source/common/formatter/substitution_formatter.cc index 3702b11bb94f7..6894d514aa647 100644 --- a/source/common/formatter/substitution_formatter.cc +++ b/source/common/formatter/substitution_formatter.cc @@ -659,7 +659,8 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi return absl::nullopt; } - const auto value = field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + const auto value = + field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); if (value && value->empty()) { return absl::nullopt; } @@ -672,7 +673,8 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi return unspecifiedValue(); } - const auto value = field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + const auto value = + field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); if (value && value->empty()) { return unspecifiedValue(); } @@ -1335,7 +1337,8 @@ DownstreamPeerCertVStartFormatter::DownstreamPeerCertVStartFormatter(const std:: parseFormat(token, sizeof("DOWNSTREAM_PEER_CERT_V_START(") - 1), std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { - const auto connection_info = stream_info.downstreamAddressProvider().downstreamSslConnection(); + const auto connection_info = + stream_info.downstreamAddressProvider().downstreamSslConnection(); return connection_info != nullptr ? connection_info->validFromPeerCertificate() : absl::optional(); })) {} @@ -1347,7 +1350,8 @@ DownstreamPeerCertVEndFormatter::DownstreamPeerCertVEndFormatter(const std::stri parseFormat(token, sizeof("DOWNSTREAM_PEER_CERT_V_END(") - 1), std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { - const auto connection_info = stream_info.downstreamAddressProvider().downstreamSslConnection(); + const auto connection_info = + stream_info.downstreamAddressProvider().downstreamSslConnection(); return connection_info != nullptr ? connection_info->expirationPeerCertificate() : absl::optional(); })) {} diff --git a/source/common/network/socket_impl.h b/source/common/network/socket_impl.h index 60b2e58380295..2beaefa688307 100644 --- a/source/common/network/socket_impl.h +++ b/source/common/network/socket_impl.h @@ -54,8 +54,8 @@ class SocketAddressSetterImpl : public SocketAddressSetter { Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { return downstream_ssl_info_; } - void - setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { + void setDownstreamSslConnection( + const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { downstream_ssl_info_ = ssl_connection_info; } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { diff --git a/source/common/router/config_impl.cc b/source/common/router/config_impl.cc index e73caaf66fbf6..3c0356555e4df 100644 --- a/source/common/router/config_impl.cc +++ b/source/common/router/config_impl.cc @@ -503,13 +503,17 @@ bool RouteEntryImplBase::evaluateTlsContextMatch(const StreamInfo::StreamInfo& s if (criteria.presented().has_value()) { const bool peer_presented = stream_info.downstreamAddressProvider().downstreamSslConnection() && - stream_info.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented(); + stream_info.downstreamAddressProvider() + .downstreamSslConnection() + ->peerCertificatePresented(); matches &= criteria.presented().value() == peer_presented; } if (criteria.validated().has_value()) { const bool peer_validated = stream_info.downstreamAddressProvider().downstreamSslConnection() && - stream_info.downstreamAddressProvider().downstreamSslConnection()->peerCertificateValidated(); + stream_info.downstreamAddressProvider() + .downstreamSslConnection() + ->peerCertificateValidated(); matches &= criteria.validated().value() == peer_validated; } diff --git a/source/common/router/router.cc b/source/common/router/router.cc index 4dd5859318403..54be35ef13fe5 100644 --- a/source/common/router/router.cc +++ b/source/common/router/router.cc @@ -604,9 +604,10 @@ Http::FilterHeadersStatus Filter::decodeHeaders(Http::RequestHeaderMap& headers, route_entry_->finalizeRequestHeaders(headers, callbacks_->streamInfo(), !config_.suppress_envoy_headers_); - FilterUtility::setUpstreamScheme(headers, - callbacks_->streamInfo().downstreamAddressProvider().downstreamSslConnection() != nullptr, - host->transportSocketFactory().implementsSecureTransport()); + FilterUtility::setUpstreamScheme( + headers, + callbacks_->streamInfo().downstreamAddressProvider().downstreamSslConnection() != nullptr, + host->transportSocketFactory().implementsSecureTransport()); // Ensure an http transport scheme is selected before continuing with decoding. ASSERT(headers.Scheme()); diff --git a/source/common/router/upstream_request.cc b/source/common/router/upstream_request.cc index cdca807c7050a..6c0852ff9f5bf 100644 --- a/source/common/router/upstream_request.cc +++ b/source/common/router/upstream_request.cc @@ -413,7 +413,8 @@ void UpstreamRequest::onPoolReady( parent_.callbacks()->streamInfo().setUpstreamLocalAddress(upstream_local_address); stream_info_.setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); - parent_.callbacks()->streamInfo().setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); + parent_.callbacks()->streamInfo().setUpstreamSslConnection( + info.downstreamAddressProvider().downstreamSslConnection()); if (parent_.downstreamEndStream()) { setupPerTryTimeout(); diff --git a/source/common/tcp_proxy/upstream.cc b/source/common/tcp_proxy/upstream.cc index 410ed7c8be3dd..983e01d9ff735 100644 --- a/source/common/tcp_proxy/upstream.cc +++ b/source/common/tcp_proxy/upstream.cc @@ -187,7 +187,10 @@ void TcpConnPool::onPoolReady(Tcp::ConnectionPool::ConnectionDataPtr&& conn_data auto upstream = std::make_unique(std::move(conn_data), upstream_callbacks_); callbacks_->onGenericPoolReady(&connection.streamInfo(), std::move(upstream), host, latched_data->connection().addressProvider().localAddress(), - latched_data->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection()); + latched_data->connection() + .streamInfo() + .downstreamAddressProvider() + .downstreamSslConnection()); } HttpConnPool::HttpConnPool(Upstream::ThreadLocalCluster& thread_local_cluster, @@ -233,8 +236,8 @@ void HttpConnPool::onPoolReady(Http::RequestEncoder& request_encoder, upstream_handle_ = nullptr; upstream_->setRequestEncoder(request_encoder, host->transportSocketFactory().implementsSecureTransport()); - upstream_->setConnPoolCallbacks( - std::make_unique(*this, host, info.downstreamAddressProvider().downstreamSslConnection())); + upstream_->setConnPoolCallbacks(std::make_unique( + *this, host, info.downstreamAddressProvider().downstreamSslConnection())); } void HttpConnPool::onGenericPoolReady(Upstream::HostDescriptionConstSharedPtr& host, diff --git a/source/extensions/filters/common/expr/context.cc b/source/extensions/filters/common/expr/context.cc index dbc611d7f1495..96bfd0e6d7714 100644 --- a/source/extensions/filters/common/expr/context.cc +++ b/source/extensions/filters/common/expr/context.cc @@ -181,8 +181,9 @@ absl::optional ConnectionWrapper::operator[](CelValue key) const { } auto value = key.StringOrDie().value(); if (value == MTLS) { - return CelValue::CreateBool(info_.downstreamAddressProvider().downstreamSslConnection() != nullptr && - info_.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented()); + return CelValue::CreateBool( + info_.downstreamAddressProvider().downstreamSslConnection() != nullptr && + info_.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented()); } else if (value == RequestedServerName) { return CelValue::CreateStringView(info_.downstreamAddressProvider().requestedServerName()); } else if (value == ID) { diff --git a/test/common/http/conn_manager_impl_test.cc b/test/common/http/conn_manager_impl_test.cc index 70357618c6a5f..48ff7ef55f7b3 100644 --- a/test/common/http/conn_manager_impl_test.cc +++ b/test/common/http/conn_manager_impl_test.cc @@ -301,7 +301,8 @@ TEST_F(HttpConnectionManagerImplTest, PopulateStreamInfo) { decoder_ = &conn_manager_->newStream(response_encoder_); EXPECT_EQ(requestIDExtension().get(), decoder_->streamInfo().getRequestIDProvider()); - EXPECT_EQ(ssl_connection_, decoder_->streamInfo().downstreamAddressProvider().downstreamSslConnection()); + EXPECT_EQ(ssl_connection_, + decoder_->streamInfo().downstreamAddressProvider().downstreamSslConnection()); EXPECT_EQ(filter_callbacks_.connection_.id_, decoder_->streamInfo().downstreamAddressProvider().connectionID()); EXPECT_EQ(server_name_, decoder_->streamInfo().downstreamAddressProvider().requestedServerName()); diff --git a/test/common/http/conn_manager_impl_test_base.cc b/test/common/http/conn_manager_impl_test_base.cc index bcd17acb86942..6edd6b6d4c590 100644 --- a/test/common/http/conn_manager_impl_test_base.cc +++ b/test/common/http/conn_manager_impl_test_base.cc @@ -72,8 +72,8 @@ void HttpConnectionManagerImplTest::setup(bool ssl, const std::string& server_na ->setDirectRemoteAddressForTest(std::make_shared("0.0.0.0")); filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setRequestedServerName( server_name_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( - ssl_connection_); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_ + ->setDownstreamSslConnection(ssl_connection_); conn_manager_ = std::make_unique( *this, drain_close_, random_, http_context_, runtime_, local_info_, cluster_manager_, overload_manager_, test_time_.timeSystem()); diff --git a/test/common/tcp/conn_pool_test.cc b/test/common/tcp/conn_pool_test.cc index 966a4eb83d681..a830964f9d362 100644 --- a/test/common/tcp/conn_pool_test.cc +++ b/test/common/tcp/conn_pool_test.cc @@ -56,7 +56,8 @@ struct ConnPoolCallbacks : public Tcp::ConnectionPool::Callbacks { conn_data_ = std::move(conn); conn_data_->addUpstreamCallbacks(callbacks_); host_ = host; - ssl_ = conn_data_->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(); + ssl_ = + conn_data_->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(); pool_ready_.ready(); } diff --git a/test/common/tcp_proxy/tcp_proxy_test.cc b/test/common/tcp_proxy/tcp_proxy_test.cc index ab4b86d28bd1a..1c45db4cd5819 100644 --- a/test/common/tcp_proxy/tcp_proxy_test.cc +++ b/test/common/tcp_proxy/tcp_proxy_test.cc @@ -122,8 +122,8 @@ class TcpProxyTest : public TcpProxyTestBase { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( - filter_callbacks_.connection_.ssl()); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_ + ->setDownstreamSslConnection(filter_callbacks_.connection_.ssl()); } if (connections > 0) { @@ -225,8 +225,8 @@ TEST_F(TcpProxyTest, BadFactory) { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setDownstreamSslConnection( - filter_callbacks_.connection_.ssl()); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_ + ->setDownstreamSslConnection(filter_callbacks_.connection_.ssl()); EXPECT_EQ(Network::FilterStatus::StopIteration, filter_->onNewConnection()); } @@ -1096,12 +1096,18 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { setup(1); raiseEventUpstreamConnected(0); - EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(), + EXPECT_EQ(filter_callbacks_.connection() + .streamInfo() + .downstreamAddressProvider() + .downstreamSslConnection(), filter_callbacks_.connection().ssl()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamLocalAddress(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().localAddress()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamSslConnection(), - upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().downstreamSslConnection()); + upstream_connections_.at(0) + ->streamInfo() + .downstreamAddressProvider() + .downstreamSslConnection()); } } // namespace } // namespace TcpProxy From 7d1729c932a77e170af7620d7b2c668274c9898b Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sun, 25 Jul 2021 00:42:38 +0000 Subject: [PATCH 14/16] rename downstreamSslConnection to sslConnection Signed-off-by: He Jie Xu --- envoy/network/socket.h | 16 +-- .../formatter/substitution_formatter.cc | 12 +- source/common/http/filter_manager.h | 4 +- source/common/network/connection_impl.cc | 2 +- source/common/network/socket_impl.h | 18 +-- source/common/router/config_impl.cc | 8 +- source/common/router/header_formatter.cc | 4 +- source/common/router/router.cc | 2 +- source/common/router/upstream_request.cc | 4 +- source/common/tcp_proxy/upstream.cc | 4 +- .../grpc/grpc_access_log_utils.cc | 4 +- .../extensions/filters/common/expr/context.cc | 6 +- .../extensions/filters/http/lua/wrappers.cc | 2 +- .../formatter/substitution_formatter_test.cc | 104 +++++++++--------- test/common/http/conn_manager_impl_test.cc | 4 +- .../http/conn_manager_impl_test_base.cc | 2 +- test/common/router/config_impl_test.cc | 18 +-- test/common/router/header_formatter_test.cc | 92 ++++++++-------- test/common/router/router_test.cc | 2 +- test/common/tcp/conn_pool_test.cc | 4 +- test/common/tcp_proxy/tcp_proxy_test.cc | 10 +- .../grpc/http_grpc_access_log_impl_test.cc | 10 +- .../filters/common/expr/context_test.cc | 2 +- .../filters/http/lua/lua_filter_test.cc | 52 ++++----- test/fuzz/utility.h | 2 +- 25 files changed, 184 insertions(+), 204 deletions(-) diff --git a/envoy/network/socket.h b/envoy/network/socket.h index 413d0e603add8..796d6664ea8d4 100644 --- a/envoy/network/socket.h +++ b/envoy/network/socket.h @@ -94,17 +94,11 @@ class SocketAddressProvider { */ virtual void dumpState(std::ostream& os, int indent_level) const PURE; - /** - * @return the upstream SSL connection. This will be nullptr if the upstream - * connection does not use SSL. - */ - virtual Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const PURE; - /** * @return the downstream SSL connection. This will be nullptr if the downstream * connection does not use SSL. */ - virtual Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const PURE; + virtual Ssl::ConnectionInfoConstSharedPtr sslConnection() const PURE; }; class SocketAddressSetter : public SocketAddressProvider { @@ -149,13 +143,7 @@ class SocketAddressSetter : public SocketAddressProvider { * @param connection_info sets the downstream ssl connection. */ virtual void - setDownstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; - - /** - * @param connection_info sets the upstream ssl connection. - */ - virtual void - setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; + setSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; }; using SocketAddressSetterSharedPtr = std::shared_ptr; diff --git a/source/common/formatter/substitution_formatter.cc b/source/common/formatter/substitution_formatter.cc index 6894d514aa647..3a785bb331c3b 100644 --- a/source/common/formatter/substitution_formatter.cc +++ b/source/common/formatter/substitution_formatter.cc @@ -655,12 +655,12 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi StreamInfoSslConnectionInfoFieldExtractor(FieldExtractor f) : field_extractor_(f) {} absl::optional extract(const StreamInfo::StreamInfo& stream_info) const override { - if (stream_info.downstreamAddressProvider().downstreamSslConnection() == nullptr) { + if (stream_info.downstreamAddressProvider().sslConnection() == nullptr) { return absl::nullopt; } const auto value = - field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + field_extractor_(*stream_info.downstreamAddressProvider().sslConnection()); if (value && value->empty()) { return absl::nullopt; } @@ -669,12 +669,12 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi } ProtobufWkt::Value extractValue(const StreamInfo::StreamInfo& stream_info) const override { - if (stream_info.downstreamAddressProvider().downstreamSslConnection() == nullptr) { + if (stream_info.downstreamAddressProvider().sslConnection() == nullptr) { return unspecifiedValue(); } const auto value = - field_extractor_(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + field_extractor_(*stream_info.downstreamAddressProvider().sslConnection()); if (value && value->empty()) { return unspecifiedValue(); } @@ -1338,7 +1338,7 @@ DownstreamPeerCertVStartFormatter::DownstreamPeerCertVStartFormatter(const std:: std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { const auto connection_info = - stream_info.downstreamAddressProvider().downstreamSslConnection(); + stream_info.downstreamAddressProvider().sslConnection(); return connection_info != nullptr ? connection_info->validFromPeerCertificate() : absl::optional(); })) {} @@ -1351,7 +1351,7 @@ DownstreamPeerCertVEndFormatter::DownstreamPeerCertVEndFormatter(const std::stri std::make_unique( [](const StreamInfo::StreamInfo& stream_info) -> absl::optional { const auto connection_info = - stream_info.downstreamAddressProvider().downstreamSslConnection(); + stream_info.downstreamAddressProvider().sslConnection(); return connection_info != nullptr ? connection_info->expirationPeerCertificate() : absl::optional(); })) {} diff --git a/source/common/http/filter_manager.h b/source/common/http/filter_manager.h index f74763f8e15e1..232726fd1debe 100644 --- a/source/common/http/filter_manager.h +++ b/source/common/http/filter_manager.h @@ -626,8 +626,8 @@ class OverridableRemoteSocketAddressSetterStreamInfo : public StreamInfo::Stream absl::optional connectionID() const override { return StreamInfoImpl::downstreamAddressProvider().connectionID(); } - Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { - return StreamInfoImpl::downstreamAddressProvider().downstreamSslConnection(); + Ssl::ConnectionInfoConstSharedPtr sslConnection() const override { + return StreamInfoImpl::downstreamAddressProvider().sslConnection(); } Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { return StreamInfoImpl::upstreamSslConnection(); diff --git a/source/common/network/connection_impl.cc b/source/common/network/connection_impl.cc index b3c05b7324fce..72510bbdd1e75 100644 --- a/source/common/network/connection_impl.cc +++ b/source/common/network/connection_impl.cc @@ -99,7 +99,7 @@ ConnectionImpl::ConnectionImpl(Event::Dispatcher& dispatcher, ConnectionSocketPt // TODO(soulxu): generate the connection id inside the addressProvider directly, // then we don't need a setter or any of the optional stuff. socket_->addressProvider().setConnectionID(id()); - socket_->addressProvider().setDownstreamSslConnection(transport_socket_->ssl()); + socket_->addressProvider().setSslConnection(transport_socket_->ssl()); } ConnectionImpl::~ConnectionImpl() { diff --git a/source/common/network/socket_impl.h b/source/common/network/socket_impl.h index 2beaefa688307..8250239ec702f 100644 --- a/source/common/network/socket_impl.h +++ b/source/common/network/socket_impl.h @@ -51,19 +51,12 @@ class SocketAddressSetterImpl : public SocketAddressSetter { } absl::optional connectionID() const override { return connection_id_; } void setConnectionID(uint64_t id) override { connection_id_ = id; } - Ssl::ConnectionInfoConstSharedPtr downstreamSslConnection() const override { - return downstream_ssl_info_; + Ssl::ConnectionInfoConstSharedPtr sslConnection() const override { + return ssl_info_; } - void setDownstreamSslConnection( + void setSslConnection( const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { - downstream_ssl_info_ = ssl_connection_info; - } - Ssl::ConnectionInfoConstSharedPtr upstreamSslConnection() const override { - return upstream_ssl_info_; - } - void - setUpstreamSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { - upstream_ssl_info_ = ssl_connection_info; + ssl_info_ = ssl_connection_info; } private: @@ -73,8 +66,7 @@ class SocketAddressSetterImpl : public SocketAddressSetter { Address::InstanceConstSharedPtr direct_remote_address_; std::string server_name_; absl::optional connection_id_; - Ssl::ConnectionInfoConstSharedPtr downstream_ssl_info_; - Ssl::ConnectionInfoConstSharedPtr upstream_ssl_info_; + Ssl::ConnectionInfoConstSharedPtr ssl_info_; }; class SocketImpl : public virtual Socket { diff --git a/source/common/router/config_impl.cc b/source/common/router/config_impl.cc index 7da29894106a5..30c51329dc122 100644 --- a/source/common/router/config_impl.cc +++ b/source/common/router/config_impl.cc @@ -502,17 +502,17 @@ bool RouteEntryImplBase::evaluateTlsContextMatch(const StreamInfo::StreamInfo& s const TlsContextMatchCriteria& criteria = *tlsContextMatchCriteria(); if (criteria.presented().has_value()) { - const bool peer_presented = stream_info.downstreamAddressProvider().downstreamSslConnection() && + const bool peer_presented = stream_info.downstreamAddressProvider().sslConnection() && stream_info.downstreamAddressProvider() - .downstreamSslConnection() + .sslConnection() ->peerCertificatePresented(); matches &= criteria.presented().value() == peer_presented; } if (criteria.validated().has_value()) { - const bool peer_validated = stream_info.downstreamAddressProvider().downstreamSslConnection() && + const bool peer_validated = stream_info.downstreamAddressProvider().sslConnection() && stream_info.downstreamAddressProvider() - .downstreamSslConnection() + .sslConnection() ->peerCertificateValidated(); matches &= criteria.validated().value() == peer_validated; } diff --git a/source/common/router/header_formatter.cc b/source/common/router/header_formatter.cc index 415d662d32e70..bcc32857d5db5 100644 --- a/source/common/router/header_formatter.cc +++ b/source/common/router/header_formatter.cc @@ -224,11 +224,11 @@ parseRequestHeader(absl::string_view param) { StreamInfoHeaderFormatter::FieldExtractor sslConnectionInfoStringHeaderExtractor( std::function string_extractor) { return [string_extractor](const StreamInfo::StreamInfo& stream_info) { - if (stream_info.downstreamAddressProvider().downstreamSslConnection() == nullptr) { + if (stream_info.downstreamAddressProvider().sslConnection() == nullptr) { return std::string(); } - return string_extractor(*stream_info.downstreamAddressProvider().downstreamSslConnection()); + return string_extractor(*stream_info.downstreamAddressProvider().sslConnection()); }; } diff --git a/source/common/router/router.cc b/source/common/router/router.cc index 2c863c395abac..643cf9ac4b1ac 100644 --- a/source/common/router/router.cc +++ b/source/common/router/router.cc @@ -610,7 +610,7 @@ Http::FilterHeadersStatus Filter::decodeHeaders(Http::RequestHeaderMap& headers, !config_.suppress_envoy_headers_); FilterUtility::setUpstreamScheme( headers, - callbacks_->streamInfo().downstreamAddressProvider().downstreamSslConnection() != nullptr, + callbacks_->streamInfo().downstreamAddressProvider().sslConnection() != nullptr, host->transportSocketFactory().implementsSecureTransport()); // Ensure an http transport scheme is selected before continuing with decoding. diff --git a/source/common/router/upstream_request.cc b/source/common/router/upstream_request.cc index bb57d2c7ecddd..7fb899e4798c9 100644 --- a/source/common/router/upstream_request.cc +++ b/source/common/router/upstream_request.cc @@ -417,9 +417,9 @@ void UpstreamRequest::onPoolReady( stream_info_.setUpstreamLocalAddress(upstream_local_address); parent_.callbacks()->streamInfo().setUpstreamLocalAddress(upstream_local_address); - stream_info_.setUpstreamSslConnection(info.downstreamAddressProvider().downstreamSslConnection()); + stream_info_.setUpstreamSslConnection(info.downstreamAddressProvider().sslConnection()); parent_.callbacks()->streamInfo().setUpstreamSslConnection( - info.downstreamAddressProvider().downstreamSslConnection()); + info.downstreamAddressProvider().sslConnection()); if (parent_.downstreamEndStream()) { setupPerTryTimeout(); diff --git a/source/common/tcp_proxy/upstream.cc b/source/common/tcp_proxy/upstream.cc index 983e01d9ff735..5fba1e32edeeb 100644 --- a/source/common/tcp_proxy/upstream.cc +++ b/source/common/tcp_proxy/upstream.cc @@ -190,7 +190,7 @@ void TcpConnPool::onPoolReady(Tcp::ConnectionPool::ConnectionDataPtr&& conn_data latched_data->connection() .streamInfo() .downstreamAddressProvider() - .downstreamSslConnection()); + .sslConnection()); } HttpConnPool::HttpConnPool(Upstream::ThreadLocalCluster& thread_local_cluster, @@ -237,7 +237,7 @@ void HttpConnPool::onPoolReady(Http::RequestEncoder& request_encoder, upstream_->setRequestEncoder(request_encoder, host->transportSocketFactory().implementsSecureTransport()); upstream_->setConnPoolCallbacks(std::make_unique( - *this, host, info.downstreamAddressProvider().downstreamSslConnection())); + *this, host, info.downstreamAddressProvider().sslConnection())); } void HttpConnPool::onGenericPoolReady(Upstream::HostDescriptionConstSharedPtr& host, diff --git a/source/extensions/access_loggers/grpc/grpc_access_log_utils.cc b/source/extensions/access_loggers/grpc/grpc_access_log_utils.cc index 15c65ec79e507..01ccb77d85fc6 100644 --- a/source/extensions/access_loggers/grpc/grpc_access_log_utils.cc +++ b/source/extensions/access_loggers/grpc/grpc_access_log_utils.cc @@ -166,10 +166,10 @@ void Utility::extractCommonAccessLogProperties( *stream_info.downstreamAddressProvider().localAddress(), *common_access_log.mutable_downstream_local_address()); } - if (stream_info.downstreamAddressProvider().downstreamSslConnection() != nullptr) { + if (stream_info.downstreamAddressProvider().sslConnection() != nullptr) { auto* tls_properties = common_access_log.mutable_tls_properties(); const Ssl::ConnectionInfoConstSharedPtr downstream_ssl_connection = - stream_info.downstreamAddressProvider().downstreamSslConnection(); + stream_info.downstreamAddressProvider().sslConnection(); tls_properties->set_tls_sni_hostname( std::string(stream_info.downstreamAddressProvider().requestedServerName())); diff --git a/source/extensions/filters/common/expr/context.cc b/source/extensions/filters/common/expr/context.cc index 96bfd0e6d7714..ac0a47bd98d33 100644 --- a/source/extensions/filters/common/expr/context.cc +++ b/source/extensions/filters/common/expr/context.cc @@ -182,8 +182,8 @@ absl::optional ConnectionWrapper::operator[](CelValue key) const { auto value = key.StringOrDie().value(); if (value == MTLS) { return CelValue::CreateBool( - info_.downstreamAddressProvider().downstreamSslConnection() != nullptr && - info_.downstreamAddressProvider().downstreamSslConnection()->peerCertificatePresented()); + info_.downstreamAddressProvider().sslConnection() != nullptr && + info_.downstreamAddressProvider().sslConnection()->peerCertificatePresented()); } else if (value == RequestedServerName) { return CelValue::CreateStringView(info_.downstreamAddressProvider().requestedServerName()); } else if (value == ID) { @@ -199,7 +199,7 @@ absl::optional ConnectionWrapper::operator[](CelValue key) const { return {}; } - auto ssl_info = info_.downstreamAddressProvider().downstreamSslConnection(); + auto ssl_info = info_.downstreamAddressProvider().sslConnection(); if (ssl_info != nullptr) { return extractSslInfo(*ssl_info, value); } diff --git a/source/extensions/filters/http/lua/wrappers.cc b/source/extensions/filters/http/lua/wrappers.cc index 76a0da2fae9bc..3f2c02a2fe5da 100644 --- a/source/extensions/filters/http/lua/wrappers.cc +++ b/source/extensions/filters/http/lua/wrappers.cc @@ -114,7 +114,7 @@ int StreamInfoWrapper::luaDynamicMetadata(lua_State* state) { } int StreamInfoWrapper::luaDownstreamSslConnection(lua_State* state) { - const auto& ssl = stream_info_.downstreamAddressProvider().downstreamSslConnection(); + const auto& ssl = stream_info_.downstreamAddressProvider().sslConnection(); if (ssl != nullptr) { if (downstream_ssl_connection_.get() != nullptr) { downstream_ssl_connection_.pushStack(); diff --git a/test/common/formatter/substitution_formatter_test.cc b/test/common/formatter/substitution_formatter_test.cc index 03ccf12d5c9a4..f7289ce2e5c01 100644 --- a/test/common/formatter/substitution_formatter_test.cc +++ b/test/common/formatter/substitution_formatter_test.cc @@ -698,7 +698,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::vector sans{"san"}; EXPECT_CALL(*connection_info, uriSanPeerCertificate()).WillRepeatedly(Return(sans)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("san", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -711,7 +711,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::vector sans{"san1", "san2"}; EXPECT_CALL(*connection_info, uriSanPeerCertificate()).WillRepeatedly(Return(sans)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("san1,san2", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); } @@ -720,7 +720,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, uriSanPeerCertificate()) .WillRepeatedly(Return(std::vector())); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -728,7 +728,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_URI_SAN"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -741,7 +741,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::vector sans{"san"}; EXPECT_CALL(*connection_info, uriSanLocalCertificate()).WillRepeatedly(Return(sans)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("san", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -753,7 +753,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::vector sans{"san1", "san2"}; EXPECT_CALL(*connection_info, uriSanLocalCertificate()).WillRepeatedly(Return(sans)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("san1,san2", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); } @@ -762,7 +762,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, uriSanLocalCertificate()) .WillRepeatedly(Return(std::vector())); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -770,7 +770,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_LOCAL_URI_SAN"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -784,7 +784,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { const std::string subject_local = "subject"; EXPECT_CALL(*connection_info, subjectLocalCertificate()) .WillRepeatedly(ReturnRef(subject_local)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("subject", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -796,7 +796,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, subjectLocalCertificate()) .WillRepeatedly(ReturnRef(EMPTY_STRING)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -804,7 +804,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_LOCAL_SUBJECT"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -817,7 +817,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::string subject_peer = "subject"; EXPECT_CALL(*connection_info, subjectPeerCertificate()).WillRepeatedly(ReturnRef(subject_peer)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("subject", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -828,7 +828,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SUBJECT"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, subjectPeerCertificate()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -836,7 +836,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SUBJECT"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -849,7 +849,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); const std::string session_id = "deadbeef"; EXPECT_CALL(*connection_info, sessionId()).WillRepeatedly(ReturnRef(session_id)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("deadbeef", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -860,7 +860,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_SESSION_ID"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, sessionId()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -868,7 +868,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_SESSION_ID"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -881,7 +881,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, ciphersuiteString()) .WillRepeatedly(Return("TLS_DHE_RSA_WITH_AES_256_GCM_SHA384")); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -890,7 +890,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_CIPHER"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, ciphersuiteString()).WillRepeatedly(Return("")); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -898,7 +898,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_CIPHER"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -911,7 +911,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); std::string tlsVersion = "TLSv1.2"; EXPECT_CALL(*connection_info, tlsVersion()).WillRepeatedly(ReturnRef(tlsVersion)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("TLSv1.2", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -922,7 +922,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_VERSION"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, tlsVersion()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -930,8 +930,8 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_TLS_VERSION"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -945,7 +945,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_sha = "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"; EXPECT_CALL(*connection_info, sha256PeerCertificateDigest()) .WillRepeatedly(ReturnRef(expected_sha)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(expected_sha, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -958,7 +958,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_sha; EXPECT_CALL(*connection_info, sha256PeerCertificateDigest()) .WillRepeatedly(ReturnRef(expected_sha)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -966,7 +966,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_FINGERPRINT_256"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -980,7 +980,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_sha = "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"; EXPECT_CALL(*connection_info, sha1PeerCertificateDigest()) .WillRepeatedly(ReturnRef(expected_sha)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(expected_sha, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -993,7 +993,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_sha; EXPECT_CALL(*connection_info, sha1PeerCertificateDigest()) .WillRepeatedly(ReturnRef(expected_sha)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1001,7 +1001,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_FINGERPRINT_1"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1015,7 +1015,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { const std::string serial_number = "b8b5ecc898f2124a"; EXPECT_CALL(*connection_info, serialNumberPeerCertificate()) .WillRepeatedly(ReturnRef(serial_number)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("b8b5ecc898f2124a", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1027,7 +1027,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, serialNumberPeerCertificate()) .WillRepeatedly(ReturnRef(EMPTY_STRING)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1035,7 +1035,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SERIAL"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1049,7 +1049,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { const std::string issuer_peer = "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"; EXPECT_CALL(*connection_info, issuerPeerCertificate()).WillRepeatedly(ReturnRef(issuer_peer)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1058,7 +1058,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_ISSUER"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, issuerPeerCertificate()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1066,7 +1066,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_ISSUER"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1080,7 +1080,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { const std::string subject_peer = "CN=Test Server,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"; EXPECT_CALL(*connection_info, subjectPeerCertificate()).WillRepeatedly(ReturnRef(subject_peer)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("CN=Test Server,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US", upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1089,7 +1089,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SUBJECT"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, subjectPeerCertificate()).WillRepeatedly(ReturnRef(EMPTY_STRING)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1097,7 +1097,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_SUBJECT"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1111,7 +1111,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_cert = ""; EXPECT_CALL(*connection_info, urlEncodedPemEncodedPeerCertificate()) .WillRepeatedly(ReturnRef(expected_cert)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(expected_cert, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1124,7 +1124,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { std::string expected_cert = ""; EXPECT_CALL(*connection_info, urlEncodedPemEncodedPeerCertificate()) .WillRepeatedly(ReturnRef(expected_cert)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(upstream_format.formatValue(request_headers, response_headers, response_trailers, @@ -1132,7 +1132,7 @@ TEST(SubstitutionFormatterTest, streamInfoFormatter) { ProtoEq(ValueUtil::nullValue())); } { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); StreamInfoFormatter upstream_format("DOWNSTREAM_PEER_CERT"); EXPECT_EQ(absl::nullopt, upstream_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1617,7 +1617,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVStartFormatter) { // No downstreamSslConnection { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); DownstreamPeerCertVStartFormatter cert_start_formart("DOWNSTREAM_PEER_CERT_V_START(%Y/%m/%d)"); EXPECT_EQ(absl::nullopt, cert_start_formart.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1630,7 +1630,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVStartFormatter) { DownstreamPeerCertVStartFormatter cert_start_formart("DOWNSTREAM_PEER_CERT_V_START(%Y/%m/%d)"); auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, validFromPeerCertificate()).WillRepeatedly(Return(absl::nullopt)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, cert_start_formart.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(cert_start_formart.formatValue(request_headers, response_headers, response_trailers, @@ -1644,7 +1644,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVStartFormatter) { time_t test_epoch = 1522280158; SystemTime time = std::chrono::system_clock::from_time_t(test_epoch); EXPECT_CALL(*connection_info, validFromPeerCertificate()).WillRepeatedly(Return(time)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(AccessLogDateTimeFormatter::fromTime(time), cert_start_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1657,7 +1657,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVStartFormatter) { time_t test_epoch = 1522280158; SystemTime time = std::chrono::system_clock::from_time_t(test_epoch); EXPECT_CALL(*connection_info, validFromPeerCertificate()).WillRepeatedly(Return(time)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("Mar 28 23:35:58 2018 UTC", cert_start_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1673,7 +1673,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVEndFormatter) { // No downstreamSslConnection { - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); DownstreamPeerCertVEndFormatter cert_end_format("DOWNSTREAM_PEER_CERT_V_END(%Y/%m/%d)"); EXPECT_EQ(absl::nullopt, cert_end_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1687,7 +1687,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVEndFormatter) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, expirationPeerCertificate()) .WillRepeatedly(Return(absl::nullopt)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(absl::nullopt, cert_end_format.format(request_headers, response_headers, response_trailers, stream_info, body)); EXPECT_THAT(cert_end_format.formatValue(request_headers, response_headers, response_trailers, @@ -1701,7 +1701,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVEndFormatter) { time_t test_epoch = 1522280158; SystemTime time = std::chrono::system_clock::from_time_t(test_epoch); EXPECT_CALL(*connection_info, expirationPeerCertificate()).WillRepeatedly(Return(time)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ(AccessLogDateTimeFormatter::fromTime(time), cert_end_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -1714,7 +1714,7 @@ TEST(SubstitutionFormatterTest, DownstreamPeerCertVEndFormatter) { time_t test_epoch = 1522280158; SystemTime time = std::chrono::system_clock::from_time_t(test_epoch); EXPECT_CALL(*connection_info, expirationPeerCertificate()).WillRepeatedly(Return(time)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); EXPECT_EQ("Mar 28 23:35:58 2018 UTC", cert_end_format.format(request_headers, response_headers, response_trailers, stream_info, body)); @@ -2709,7 +2709,7 @@ TEST(SubstitutionFormatterTest, CompositeFormatterSuccess) { auto connection_info = std::make_shared(); SystemTime time = std::chrono::system_clock::from_time_t(expected_time_in_epoch); EXPECT_CALL(*connection_info, validFromPeerCertificate()).WillRepeatedly(Return(time)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); FormatterImpl formatter(format, false); EXPECT_EQ( @@ -2729,7 +2729,7 @@ TEST(SubstitutionFormatterTest, CompositeFormatterSuccess) { auto connection_info = std::make_shared(); SystemTime time = std::chrono::system_clock::from_time_t(expected_time_in_epoch); EXPECT_CALL(*connection_info, expirationPeerCertificate()).WillRepeatedly(Return(time)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); FormatterImpl formatter(format, false); EXPECT_EQ( diff --git a/test/common/http/conn_manager_impl_test.cc b/test/common/http/conn_manager_impl_test.cc index de0cc2da999bb..53fc0a1821cfb 100644 --- a/test/common/http/conn_manager_impl_test.cc +++ b/test/common/http/conn_manager_impl_test.cc @@ -302,7 +302,7 @@ TEST_F(HttpConnectionManagerImplTest, PopulateStreamInfo) { EXPECT_EQ(requestIDExtension().get(), decoder_->streamInfo().getRequestIDProvider()); EXPECT_EQ(ssl_connection_, - decoder_->streamInfo().downstreamAddressProvider().downstreamSslConnection()); + decoder_->streamInfo().downstreamAddressProvider().sslConnection()); EXPECT_EQ(filter_callbacks_.connection_.id_, decoder_->streamInfo().downstreamAddressProvider().connectionID().value()); EXPECT_EQ(server_name_, decoder_->streamInfo().downstreamAddressProvider().requestedServerName()); @@ -2252,7 +2252,7 @@ TEST_F(HttpConnectionManagerImplTest, TestAccessLogSsl) { EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().localAddress()); EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().remoteAddress()); EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().directRemoteAddress()); - EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().downstreamSslConnection()); + EXPECT_NE(nullptr, stream_info.downstreamAddressProvider().sslConnection()); EXPECT_NE(nullptr, stream_info.routeEntry()); })); diff --git a/test/common/http/conn_manager_impl_test_base.cc b/test/common/http/conn_manager_impl_test_base.cc index 6edd6b6d4c590..6d6885d48636d 100644 --- a/test/common/http/conn_manager_impl_test_base.cc +++ b/test/common/http/conn_manager_impl_test_base.cc @@ -73,7 +73,7 @@ void HttpConnectionManagerImplTest::setup(bool ssl, const std::string& server_na filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setRequestedServerName( server_name_); filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setDownstreamSslConnection(ssl_connection_); + ->setSslConnection(ssl_connection_); conn_manager_ = std::make_unique( *this, drain_close_, random_, http_context_, runtime_, local_info_, cluster_manager_, overload_manager_, test_time_.timeSystem()); diff --git a/test/common/router/config_impl_test.cc b/test/common/router/config_impl_test.cc index 388d8cdddb4d5..f34f1b5c0369b 100644 --- a/test/common/router/config_impl_test.cc +++ b/test/common/router/config_impl_test.cc @@ -6952,7 +6952,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-test", "GET"); EXPECT_EQ("server_peer-cert-presented", @@ -6964,7 +6964,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(false)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-test", "GET"); EXPECT_EQ("server_peer-cert-not-presented", @@ -6976,7 +6976,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(false)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); @@ -6989,7 +6989,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); @@ -7002,7 +7002,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-validated-cert-test", "GET"); @@ -7015,7 +7015,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(false)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-validated-cert-test", "GET"); @@ -7028,7 +7028,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(false)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); @@ -7041,7 +7041,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { auto connection_info = std::make_shared(); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillRepeatedly(Return(true)); EXPECT_CALL(*connection_info, peerCertificateValidated()).WillRepeatedly(Return(true)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); @@ -7052,7 +7052,7 @@ TEST_F(RouteMatcherTest, TlsContextMatching) { { NiceMock stream_info; std::shared_ptr connection_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); Http::TestRequestHeaderMapImpl headers = genHeaders("www.lyft.com", "/peer-cert-no-tls-context-match", "GET"); diff --git a/test/common/router/header_formatter_test.cc b/test/common/router/header_formatter_test.cc index f7f0c136743f4..a14d73e0fe8e3 100644 --- a/test/common/router/header_formatter_test.cc +++ b/test/common/router/header_formatter_test.cc @@ -147,7 +147,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerUriSanVariable auto connection_info = std::make_shared>(); const std::vector sans{"san"}; ON_CALL(*connection_info, uriSanPeerCertificate()).WillByDefault(Return(sans)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_URI_SAN", "san"); } @@ -156,7 +156,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerUriSanVariable auto connection_info = std::make_shared>(); const std::vector sans{"san1", "san2"}; ON_CALL(*connection_info, uriSanPeerCertificate()).WillByDefault(Return(sans)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_URI_SAN", "san1,san2"); } @@ -165,13 +165,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerUriSanEmpty) { auto connection_info = std::make_shared>(); ON_CALL(*connection_info, uriSanPeerCertificate()) .WillByDefault(Return(std::vector())); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_URI_SAN", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_URI_SAN", EMPTY_STRING); } @@ -180,7 +180,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalUriSanVariabl auto connection_info = std::make_shared>(); const std::vector sans{"san"}; ON_CALL(*connection_info, uriSanLocalCertificate()).WillByDefault(Return(sans)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_URI_SAN", "san"); } @@ -189,7 +189,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalUriSanVariabl auto connection_info = std::make_shared>(); const std::vector sans{"san1", "san2"}; ON_CALL(*connection_info, uriSanLocalCertificate()).WillByDefault(Return(sans)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_URI_SAN", "san1,san2"); } @@ -198,13 +198,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalUriSanVariabl auto connection_info = std::make_shared>(); ON_CALL(*connection_info, uriSanLocalCertificate()) .WillByDefault(Return(std::vector())); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_URI_SAN", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalUriSanNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_LOCAL_URI_SAN", EMPTY_STRING); } @@ -213,7 +213,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalSubject) { auto connection_info = std::make_shared>(); std::string subject = "subject"; ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(subject)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_SUBJECT", "subject"); } @@ -222,13 +222,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalSubjectEmpty) auto connection_info = std::make_shared>(); std::string subject; ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(subject)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_LOCAL_SUBJECT", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamLocalSubjectNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_LOCAL_SUBJECT", EMPTY_STRING); } @@ -237,7 +237,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsSessionId) { auto connection_info = std::make_shared>(); std::string session_id = "deadbeef"; ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(session_id)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_SESSION_ID", "deadbeef"); } @@ -246,13 +246,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsSessionIdEmpty) auto connection_info = std::make_shared>(); std::string session_id; ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(session_id)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_SESSION_ID", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsSessionIdNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_TLS_SESSION_ID", EMPTY_STRING); } @@ -261,7 +261,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsCipher) { auto connection_info = std::make_shared>(); ON_CALL(*connection_info, ciphersuiteString()) .WillByDefault(Return("TLS_DHE_RSA_WITH_AES_256_GCM_SHA384")); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_CIPHER", "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"); } @@ -269,13 +269,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsCipherEmpty) { NiceMock stream_info; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, ciphersuiteString()).WillByDefault(Return("")); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_CIPHER", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsCipherNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_TLS_CIPHER", EMPTY_STRING); } @@ -284,7 +284,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsVersion) { auto connection_info = std::make_shared>(); std::string tls_version = "TLSv1.2"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tls_version)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_VERSION", "TLSv1.2"); } @@ -292,13 +292,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsVersionEmpty) { NiceMock stream_info; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(EMPTY_STRING)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_TLS_VERSION", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamTlsVersionNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_TLS_VERSION", EMPTY_STRING); } @@ -307,7 +307,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha256Fingerpr auto connection_info = std::make_shared>(); std::string expected_sha = "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"; ON_CALL(*connection_info, sha256PeerCertificateDigest()).WillByDefault(ReturnRef(expected_sha)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_256", "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"); } @@ -317,13 +317,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha256Fingerpr auto connection_info = std::make_shared>(); std::string expected_sha; ON_CALL(*connection_info, sha256PeerCertificateDigest()).WillByDefault(ReturnRef(expected_sha)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_256", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha256FingerprintNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_256", EMPTY_STRING); } @@ -332,7 +332,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha1Fingerprin auto connection_info = std::make_shared>(); std::string expected_sha = "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"; ON_CALL(*connection_info, sha1PeerCertificateDigest()).WillByDefault(ReturnRef(expected_sha)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_1", "685a2db593d5f86d346cb1a297009c3b467ad77f1944aa799039a2fb3d531f3f"); } @@ -342,13 +342,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha1Fingerprin auto connection_info = std::make_shared>(); std::string expected_sha; ON_CALL(*connection_info, sha1PeerCertificateDigest()).WillByDefault(ReturnRef(expected_sha)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_1", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSha1FingerprintNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_FINGERPRINT_1", EMPTY_STRING); } @@ -357,7 +357,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSerial) { auto connection_info = std::make_shared>(); const std::string serial_number = "b8b5ecc898f2124a"; ON_CALL(*connection_info, serialNumberPeerCertificate()).WillByDefault(ReturnRef(serial_number)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_SERIAL", "b8b5ecc898f2124a"); } @@ -366,13 +366,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSerialEmpty) { auto connection_info = std::make_shared>(); const std::string serial_number; ON_CALL(*connection_info, serialNumberPeerCertificate()).WillByDefault(ReturnRef(serial_number)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_SERIAL", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSerialNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_SERIAL", EMPTY_STRING); } @@ -382,7 +382,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerIssuer) { const std::string issuer_peer = "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"; ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(issuer_peer)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_ISSUER", "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"); } @@ -392,13 +392,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerIssuerEmpty) { auto connection_info = std::make_shared>(); const std::string issuer_peer; ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(issuer_peer)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_ISSUER", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerIssuerNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_ISSUER", EMPTY_STRING); } @@ -408,7 +408,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSubject) { const std::string subject_peer = "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"; ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(subject_peer)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_SUBJECT", "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"); } @@ -418,13 +418,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSubjectEmpty) auto connection_info = std::make_shared>(); const std::string subject_peer; ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(subject_peer)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_SUBJECT", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerSubjectNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_SUBJECT", EMPTY_STRING); } @@ -434,7 +434,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCert) { std::string expected_cert = ""; ON_CALL(*connection_info, urlEncodedPemEncodedPeerCertificate()) .WillByDefault(ReturnRef(expected_cert)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT", expected_cert); } @@ -444,13 +444,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertEmpty) { std::string expected_cert; ON_CALL(*connection_info, urlEncodedPemEncodedPeerCertificate()) .WillByDefault(ReturnRef(expected_cert)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT", EMPTY_STRING); } @@ -461,7 +461,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVStart) { TestUtility::parseTime("Dec 18 01:50:34 2018 GMT", "%b %e %H:%M:%S %Y GMT"); SystemTime startTime = absl::ToChronoTime(abslStartTime); ON_CALL(*connection_info, validFromPeerCertificate()).WillByDefault(Return(startTime)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_START", "2018-12-18T01:50:34.000Z"); } @@ -472,7 +472,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVStartCust TestUtility::parseTime("Dec 18 01:50:34 2018 GMT", "%b %e %H:%M:%S %Y GMT"); SystemTime startTime = absl::ToChronoTime(abslStartTime); ON_CALL(*connection_info, validFromPeerCertificate()).WillByDefault(Return(startTime)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_START(%b %e %H:%M:%S %Y %Z)", "Dec 18 01:50:34 2018 UTC"); } @@ -481,13 +481,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVStartEmpt NiceMock stream_info; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, validFromPeerCertificate()).WillByDefault(Return(absl::nullopt)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_START", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVStartNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_START", EMPTY_STRING); } @@ -498,7 +498,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVEnd) { TestUtility::parseTime("Dec 17 01:50:34 2020 GMT", "%b %e %H:%M:%S %Y GMT"); SystemTime startTime = absl::ToChronoTime(abslStartTime); ON_CALL(*connection_info, expirationPeerCertificate()).WillByDefault(Return(startTime)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_END", "2020-12-17T01:50:34.000Z"); } @@ -509,7 +509,7 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVEndCustom TestUtility::parseTime("Dec 17 01:50:34 2020 GMT", "%b %e %H:%M:%S %Y GMT"); SystemTime startTime = absl::ToChronoTime(abslStartTime); ON_CALL(*connection_info, expirationPeerCertificate()).WillByDefault(Return(startTime)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_END(%b %e %H:%M:%S %Y %Z)", "Dec 17 01:50:34 2020 UTC"); } @@ -518,13 +518,13 @@ TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVEndEmpty) NiceMock stream_info; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, expirationPeerCertificate()).WillByDefault(Return(absl::nullopt)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_END", EMPTY_STRING); } TEST_F(StreamInfoHeaderFormatterTest, TestFormatWithDownstreamPeerCertVEndNoTls) { NiceMock stream_info; - stream_info.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info.downstream_address_provider_->setSslConnection(nullptr); testFormatting(stream_info, "DOWNSTREAM_PEER_CERT_V_END", EMPTY_STRING); } diff --git a/test/common/router/router_test.cc b/test/common/router/router_test.cc index 2bea4afba8039..2249d6c2fa3c8 100644 --- a/test/common/router/router_test.cc +++ b/test/common/router/router_test.cc @@ -4844,7 +4844,7 @@ TEST_F(RouterTest, UpstreamSSLConnection) { std::string session_id = "D62A523A65695219D46FE1FFE285A4C371425ACE421B110B5B8D11D3EB4D5F0B"; auto connection_info = std::make_shared>(); ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(session_id)); - upstream_stream_info_.downstream_address_provider_->setDownstreamSslConnection(connection_info); + upstream_stream_info_.downstream_address_provider_->setSslConnection(connection_info); expectResponseTimerCreate(); EXPECT_CALL(cm_.thread_local_cluster_.conn_pool_, newStream(_, _)) diff --git a/test/common/tcp/conn_pool_test.cc b/test/common/tcp/conn_pool_test.cc index a830964f9d362..1f1d1b39327aa 100644 --- a/test/common/tcp/conn_pool_test.cc +++ b/test/common/tcp/conn_pool_test.cc @@ -57,7 +57,7 @@ struct ConnPoolCallbacks : public Tcp::ConnectionPool::Callbacks { conn_data_->addUpstreamCallbacks(callbacks_); host_ = host; ssl_ = - conn_data_->connection().streamInfo().downstreamAddressProvider().downstreamSslConnection(); + conn_data_->connection().streamInfo().downstreamAddressProvider().sslConnection(); pool_ready_.ready(); } @@ -339,7 +339,7 @@ class TcpConnPoolImplDestructorTest : public Event::TestUsingSimulatedTime, EXPECT_CALL(*connect_timer_, disableTimer()); EXPECT_CALL(callbacks_->pool_ready_, ready()); connection_->raiseEvent(Network::ConnectionEvent::Connected); - connection_->stream_info_.downstream_address_provider_->setDownstreamSslConnection(ssl_); + connection_->stream_info_.downstream_address_provider_->setSslConnection(ssl_); } bool test_new_connection_pool_; diff --git a/test/common/tcp_proxy/tcp_proxy_test.cc b/test/common/tcp_proxy/tcp_proxy_test.cc index 1c45db4cd5819..5e9ba62826ae0 100644 --- a/test/common/tcp_proxy/tcp_proxy_test.cc +++ b/test/common/tcp_proxy/tcp_proxy_test.cc @@ -123,7 +123,7 @@ class TcpProxyTest : public TcpProxyTestBase { EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setDownstreamSslConnection(filter_callbacks_.connection_.ssl()); + ->setSslConnection(filter_callbacks_.connection_.ssl()); } if (connections > 0) { @@ -226,7 +226,7 @@ TEST_F(TcpProxyTest, BadFactory) { EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setDownstreamSslConnection(filter_callbacks_.connection_.ssl()); + ->setSslConnection(filter_callbacks_.connection_.ssl()); EXPECT_EQ(Network::FilterStatus::StopIteration, filter_->onNewConnection()); } @@ -936,7 +936,7 @@ TEST_F(TcpProxyTest, AccessLogUpstreamSSLConnection) { const std::string session_id = "D62A523A65695219D46FE1FFE285A4C371425ACE421B110B5B8D11D3EB4D5F0B"; auto ssl_info = std::make_shared(); EXPECT_CALL(*ssl_info, sessionId()).WillRepeatedly(ReturnRef(session_id)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(ssl_info); + stream_info.downstream_address_provider_->setSslConnection(ssl_info); EXPECT_CALL(*upstream_connections_.at(0), streamInfo()).WillRepeatedly(ReturnRef(stream_info)); raiseEventUpstreamConnected(0); @@ -1099,7 +1099,7 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { EXPECT_EQ(filter_callbacks_.connection() .streamInfo() .downstreamAddressProvider() - .downstreamSslConnection(), + .sslConnection(), filter_callbacks_.connection().ssl()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamLocalAddress(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().localAddress()); @@ -1107,7 +1107,7 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { upstream_connections_.at(0) ->streamInfo() .downstreamAddressProvider() - .downstreamSslConnection()); + .sslConnection()); } } // namespace } // namespace TcpProxy diff --git a/test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc b/test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc index fd39533cc9d40..e09fcd1f09183 100644 --- a/test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc +++ b/test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc @@ -388,7 +388,7 @@ response: {} const std::string tlsVersion = "TLSv1.3"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2CC0)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ @@ -448,7 +448,7 @@ response: {} const std::string tlsVersion = "TLSv1.2"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2F)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ @@ -498,7 +498,7 @@ response: {} const std::string tlsVersion = "TLSv1.1"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2F)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ @@ -548,7 +548,7 @@ response: {} const std::string tlsVersion = "TLSv1"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2F)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ @@ -598,7 +598,7 @@ response: {} const std::string tlsVersion = "TLSv1.4"; ON_CALL(*connection_info, tlsVersion()).WillByDefault(ReturnRef(tlsVersion)); ON_CALL(*connection_info, ciphersuiteId()).WillByDefault(Return(0x2F)); - stream_info.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info.downstream_address_provider_->setSslConnection(connection_info); stream_info.downstream_address_provider_->setRequestedServerName("sni"); Http::TestRequestHeaderMapImpl request_headers{ diff --git a/test/extensions/filters/common/expr/context_test.cc b/test/extensions/filters/common/expr/context_test.cc index 42025b681052c..26b9d075ebe41 100644 --- a/test/extensions/filters/common/expr/context_test.cc +++ b/test/extensions/filters/common/expr/context_test.cc @@ -441,7 +441,7 @@ TEST(Context, ConnectionAttributes) { info.downstream_address_provider_->setLocalAddress(local); info.downstream_address_provider_->setRemoteAddress(remote); info.downstream_address_provider_->setRequestedServerName(sni_name); - info.downstream_address_provider_->setDownstreamSslConnection(downstream_ssl_info); + info.downstream_address_provider_->setSslConnection(downstream_ssl_info); EXPECT_CALL(info, upstreamSslConnection()).WillRepeatedly(Return(upstream_ssl_info)); EXPECT_CALL(info, upstreamHost()).WillRepeatedly(Return(upstream_host)); EXPECT_CALL(info, upstreamLocalAddress()).WillRepeatedly(ReturnRef(upstream_local_address)); diff --git a/test/extensions/filters/http/lua/lua_filter_test.cc b/test/extensions/filters/http/lua/lua_filter_test.cc index e51f90eb8cf8d..fa8d78356e11b 100644 --- a/test/extensions/filters/http/lua/lua_filter_test.cc +++ b/test/extensions/filters/http/lua/lua_filter_test.cc @@ -1872,37 +1872,37 @@ TEST_F(LuaHttpFilterTest, CheckConnection) { TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnection) { const std::string SCRIPT{R"EOF( function envoy_on_request(request_handle) - if request_handle:streamInfo():downstreamSslConnection() == nil then + if request_handle:streamInfo():sslConnection() == nil then else - if request_handle:streamInfo():downstreamSslConnection():peerCertificatePresented() then + if request_handle:streamInfo():sslConnection():peerCertificatePresented() then request_handle:logTrace("peerCertificatePresented") end - if request_handle:streamInfo():downstreamSslConnection():peerCertificateValidated() then + if request_handle:streamInfo():sslConnection():peerCertificateValidated() then request_handle:logTrace("peerCertificateValidated") end - request_handle:logTrace(table.concat(request_handle:streamInfo():downstreamSslConnection():uriSanPeerCertificate(), ",")) - request_handle:logTrace(table.concat(request_handle:streamInfo():downstreamSslConnection():uriSanLocalCertificate(), ",")) - request_handle:logTrace(table.concat(request_handle:streamInfo():downstreamSslConnection():dnsSansPeerCertificate(), ",")) - request_handle:logTrace(table.concat(request_handle:streamInfo():downstreamSslConnection():dnsSansLocalCertificate(), ",")) + request_handle:logTrace(table.concat(request_handle:streamInfo():sslConnection():uriSanPeerCertificate(), ",")) + request_handle:logTrace(table.concat(request_handle:streamInfo():sslConnection():uriSanLocalCertificate(), ",")) + request_handle:logTrace(table.concat(request_handle:streamInfo():sslConnection():dnsSansPeerCertificate(), ",")) + request_handle:logTrace(table.concat(request_handle:streamInfo():sslConnection():dnsSansLocalCertificate(), ",")) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():ciphersuiteId()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():ciphersuiteId()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():validFromPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():expirationPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():validFromPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():expirationPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():subjectLocalCertificate()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():sha256PeerCertificateDigest()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():serialNumberPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():issuerPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():subjectPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():ciphersuiteString()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():tlsVersion()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():urlEncodedPemEncodedPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():urlEncodedPemEncodedPeerCertificateChain()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():subjectLocalCertificate()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():sha256PeerCertificateDigest()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():serialNumberPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():issuerPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():subjectPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():ciphersuiteString()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():tlsVersion()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():urlEncodedPemEncodedPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():urlEncodedPemEncodedPeerCertificateChain()) - request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():sessionId()) + request_handle:logTrace(request_handle:streamInfo():sslConnection():sessionId()) end end )EOF"}; @@ -1913,7 +1913,7 @@ TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnection) { const auto connection_info = std::make_shared(); EXPECT_CALL(decoder_callbacks_, streamInfo()).WillRepeatedly(ReturnRef(stream_info_)); - stream_info_.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info_.downstream_address_provider_->setSslConnection(connection_info); EXPECT_CALL(*connection_info, peerCertificatePresented()).WillOnce(Return(true)); EXPECT_CALL(*filter_, scriptLog(spdlog::level::trace, StrEq("peerCertificatePresented"))); @@ -2002,7 +2002,7 @@ TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnection) { TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnectionOnPlainConnection) { const std::string SCRIPT{R"EOF( function envoy_on_request(request_handle) - if request_handle:streamInfo():downstreamSslConnection() == nil then + if request_handle:streamInfo():sslConnection() == nil then request_handle:logTrace("downstreamSslConnection is nil") end end @@ -2011,7 +2011,7 @@ TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnectionOnPlainConnecti setup(SCRIPT); EXPECT_CALL(decoder_callbacks_, streamInfo()).WillRepeatedly(ReturnRef(stream_info_)); - stream_info_.downstream_address_provider_->setDownstreamSslConnection(nullptr); + stream_info_.downstream_address_provider_->setSslConnection(nullptr); EXPECT_CALL(*filter_, scriptLog(spdlog::level::trace, StrEq("downstreamSslConnection is nil"))); @@ -2019,12 +2019,12 @@ TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnectionOnPlainConnecti EXPECT_EQ(Http::FilterHeadersStatus::Continue, filter_->decodeHeaders(request_headers, true)); } -// Should survive from multiple streamInfo():downstreamSslConnection() calls. +// Should survive from multiple streamInfo():sslConnection() calls. // This is a regression test for #14091. TEST_F(LuaHttpFilterTest, SurviveMultipleDownstreamSslConnectionCalls) { const std::string SCRIPT{R"EOF( function envoy_on_request(request_handle) - if request_handle:streamInfo():downstreamSslConnection() ~= nil then + if request_handle:streamInfo():sslConnection() ~= nil then request_handle:logTrace("downstreamSslConnection is present") end end @@ -2034,7 +2034,7 @@ TEST_F(LuaHttpFilterTest, SurviveMultipleDownstreamSslConnectionCalls) { const auto connection_info = std::make_shared(); EXPECT_CALL(decoder_callbacks_, streamInfo()).WillRepeatedly(ReturnRef(stream_info_)); - stream_info_.downstream_address_provider_->setDownstreamSslConnection(connection_info); + stream_info_.downstream_address_provider_->setSslConnection(connection_info); for (uint64_t i = 0; i < 200; i++) { EXPECT_CALL(*filter_, diff --git a/test/fuzz/utility.h b/test/fuzz/utility.h index ce671039484db..c03b3a8c32850 100644 --- a/test/fuzz/utility.h +++ b/test/fuzz/utility.h @@ -172,7 +172,7 @@ inline std::unique_ptr fromStreamInfo(const test::fuzz::StreamIn auto connection_info = std::make_shared>(); ON_CALL(*connection_info, subjectPeerCertificate()) .WillByDefault(testing::ReturnRef(TestSubjectPeer)); - test_stream_info->downstream_address_provider_->setDownstreamSslConnection(connection_info); + test_stream_info->downstream_address_provider_->setSslConnection(connection_info); return test_stream_info; } From 93073aeaa5788db69e2d9cb1271f4424376d37e6 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sun, 25 Jul 2021 02:10:36 +0000 Subject: [PATCH 15/16] fix format Signed-off-by: He Jie Xu --- envoy/network/socket.h | 3 +-- .../common/formatter/substitution_formatter.cc | 6 ++---- source/common/network/socket_impl.h | 7 ++----- source/common/router/config_impl.cc | 14 ++++++-------- source/common/router/router.cc | 3 +-- source/common/tcp_proxy/upstream.cc | 10 ++++------ test/common/http/conn_manager_impl_test.cc | 3 +-- .../common/http/conn_manager_impl_test_base.cc | 4 ++-- test/common/tcp/conn_pool_test.cc | 3 +-- test/common/tcp_proxy/tcp_proxy_test.cc | 18 ++++++------------ 10 files changed, 26 insertions(+), 45 deletions(-) diff --git a/envoy/network/socket.h b/envoy/network/socket.h index 796d6664ea8d4..4300cb0da4702 100644 --- a/envoy/network/socket.h +++ b/envoy/network/socket.h @@ -142,8 +142,7 @@ class SocketAddressSetter : public SocketAddressProvider { /** * @param connection_info sets the downstream ssl connection. */ - virtual void - setSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; + virtual void setSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) PURE; }; using SocketAddressSetterSharedPtr = std::shared_ptr; diff --git a/source/common/formatter/substitution_formatter.cc b/source/common/formatter/substitution_formatter.cc index 3a785bb331c3b..db0cb69989fc0 100644 --- a/source/common/formatter/substitution_formatter.cc +++ b/source/common/formatter/substitution_formatter.cc @@ -659,8 +659,7 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi return absl::nullopt; } - const auto value = - field_extractor_(*stream_info.downstreamAddressProvider().sslConnection()); + const auto value = field_extractor_(*stream_info.downstreamAddressProvider().sslConnection()); if (value && value->empty()) { return absl::nullopt; } @@ -673,8 +672,7 @@ class StreamInfoSslConnectionInfoFieldExtractor : public StreamInfoFormatter::Fi return unspecifiedValue(); } - const auto value = - field_extractor_(*stream_info.downstreamAddressProvider().sslConnection()); + const auto value = field_extractor_(*stream_info.downstreamAddressProvider().sslConnection()); if (value && value->empty()) { return unspecifiedValue(); } diff --git a/source/common/network/socket_impl.h b/source/common/network/socket_impl.h index 8250239ec702f..12b651f3c4821 100644 --- a/source/common/network/socket_impl.h +++ b/source/common/network/socket_impl.h @@ -51,11 +51,8 @@ class SocketAddressSetterImpl : public SocketAddressSetter { } absl::optional connectionID() const override { return connection_id_; } void setConnectionID(uint64_t id) override { connection_id_ = id; } - Ssl::ConnectionInfoConstSharedPtr sslConnection() const override { - return ssl_info_; - } - void setSslConnection( - const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { + Ssl::ConnectionInfoConstSharedPtr sslConnection() const override { return ssl_info_; } + void setSslConnection(const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info) override { ssl_info_ = ssl_connection_info; } diff --git a/source/common/router/config_impl.cc b/source/common/router/config_impl.cc index 30c51329dc122..b7d08d8b205ae 100644 --- a/source/common/router/config_impl.cc +++ b/source/common/router/config_impl.cc @@ -502,18 +502,16 @@ bool RouteEntryImplBase::evaluateTlsContextMatch(const StreamInfo::StreamInfo& s const TlsContextMatchCriteria& criteria = *tlsContextMatchCriteria(); if (criteria.presented().has_value()) { - const bool peer_presented = stream_info.downstreamAddressProvider().sslConnection() && - stream_info.downstreamAddressProvider() - .sslConnection() - ->peerCertificatePresented(); + const bool peer_presented = + stream_info.downstreamAddressProvider().sslConnection() && + stream_info.downstreamAddressProvider().sslConnection()->peerCertificatePresented(); matches &= criteria.presented().value() == peer_presented; } if (criteria.validated().has_value()) { - const bool peer_validated = stream_info.downstreamAddressProvider().sslConnection() && - stream_info.downstreamAddressProvider() - .sslConnection() - ->peerCertificateValidated(); + const bool peer_validated = + stream_info.downstreamAddressProvider().sslConnection() && + stream_info.downstreamAddressProvider().sslConnection()->peerCertificateValidated(); matches &= criteria.validated().value() == peer_validated; } diff --git a/source/common/router/router.cc b/source/common/router/router.cc index 643cf9ac4b1ac..f8a809c3f7182 100644 --- a/source/common/router/router.cc +++ b/source/common/router/router.cc @@ -609,8 +609,7 @@ Http::FilterHeadersStatus Filter::decodeHeaders(Http::RequestHeaderMap& headers, route_entry_->finalizeRequestHeaders(headers, callbacks_->streamInfo(), !config_.suppress_envoy_headers_); FilterUtility::setUpstreamScheme( - headers, - callbacks_->streamInfo().downstreamAddressProvider().sslConnection() != nullptr, + headers, callbacks_->streamInfo().downstreamAddressProvider().sslConnection() != nullptr, host->transportSocketFactory().implementsSecureTransport()); // Ensure an http transport scheme is selected before continuing with decoding. diff --git a/source/common/tcp_proxy/upstream.cc b/source/common/tcp_proxy/upstream.cc index 5fba1e32edeeb..4aab58abccf23 100644 --- a/source/common/tcp_proxy/upstream.cc +++ b/source/common/tcp_proxy/upstream.cc @@ -185,12 +185,10 @@ void TcpConnPool::onPoolReady(Tcp::ConnectionPool::ConnectionDataPtr&& conn_data Network::Connection& connection = conn_data->connection(); auto upstream = std::make_unique(std::move(conn_data), upstream_callbacks_); - callbacks_->onGenericPoolReady(&connection.streamInfo(), std::move(upstream), host, - latched_data->connection().addressProvider().localAddress(), - latched_data->connection() - .streamInfo() - .downstreamAddressProvider() - .sslConnection()); + callbacks_->onGenericPoolReady( + &connection.streamInfo(), std::move(upstream), host, + latched_data->connection().addressProvider().localAddress(), + latched_data->connection().streamInfo().downstreamAddressProvider().sslConnection()); } HttpConnPool::HttpConnPool(Upstream::ThreadLocalCluster& thread_local_cluster, diff --git a/test/common/http/conn_manager_impl_test.cc b/test/common/http/conn_manager_impl_test.cc index 53fc0a1821cfb..035d390119688 100644 --- a/test/common/http/conn_manager_impl_test.cc +++ b/test/common/http/conn_manager_impl_test.cc @@ -301,8 +301,7 @@ TEST_F(HttpConnectionManagerImplTest, PopulateStreamInfo) { decoder_ = &conn_manager_->newStream(response_encoder_); EXPECT_EQ(requestIDExtension().get(), decoder_->streamInfo().getRequestIDProvider()); - EXPECT_EQ(ssl_connection_, - decoder_->streamInfo().downstreamAddressProvider().sslConnection()); + EXPECT_EQ(ssl_connection_, decoder_->streamInfo().downstreamAddressProvider().sslConnection()); EXPECT_EQ(filter_callbacks_.connection_.id_, decoder_->streamInfo().downstreamAddressProvider().connectionID().value()); EXPECT_EQ(server_name_, decoder_->streamInfo().downstreamAddressProvider().requestedServerName()); diff --git a/test/common/http/conn_manager_impl_test_base.cc b/test/common/http/conn_manager_impl_test_base.cc index 6d6885d48636d..b019eeb7f2189 100644 --- a/test/common/http/conn_manager_impl_test_base.cc +++ b/test/common/http/conn_manager_impl_test_base.cc @@ -72,8 +72,8 @@ void HttpConnectionManagerImplTest::setup(bool ssl, const std::string& server_na ->setDirectRemoteAddressForTest(std::make_shared("0.0.0.0")); filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setRequestedServerName( server_name_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setSslConnection(ssl_connection_); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setSslConnection( + ssl_connection_); conn_manager_ = std::make_unique( *this, drain_close_, random_, http_context_, runtime_, local_info_, cluster_manager_, overload_manager_, test_time_.timeSystem()); diff --git a/test/common/tcp/conn_pool_test.cc b/test/common/tcp/conn_pool_test.cc index 1f1d1b39327aa..2eedcb2b2b9f1 100644 --- a/test/common/tcp/conn_pool_test.cc +++ b/test/common/tcp/conn_pool_test.cc @@ -56,8 +56,7 @@ struct ConnPoolCallbacks : public Tcp::ConnectionPool::Callbacks { conn_data_ = std::move(conn); conn_data_->addUpstreamCallbacks(callbacks_); host_ = host; - ssl_ = - conn_data_->connection().streamInfo().downstreamAddressProvider().sslConnection(); + ssl_ = conn_data_->connection().streamInfo().downstreamAddressProvider().sslConnection(); pool_ready_.ready(); } diff --git a/test/common/tcp_proxy/tcp_proxy_test.cc b/test/common/tcp_proxy/tcp_proxy_test.cc index 5e9ba62826ae0..0587301e23274 100644 --- a/test/common/tcp_proxy/tcp_proxy_test.cc +++ b/test/common/tcp_proxy/tcp_proxy_test.cc @@ -122,8 +122,8 @@ class TcpProxyTest : public TcpProxyTestBase { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setSslConnection(filter_callbacks_.connection_.ssl()); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setSslConnection( + filter_callbacks_.connection_.ssl()); } if (connections > 0) { @@ -225,8 +225,8 @@ TEST_F(TcpProxyTest, BadFactory) { EXPECT_CALL(filter_callbacks_.connection_, enableHalfClose(true)); EXPECT_CALL(filter_callbacks_.connection_, readDisable(true)); filter_->initializeReadFilterCallbacks(filter_callbacks_); - filter_callbacks_.connection_.stream_info_.downstream_address_provider_ - ->setSslConnection(filter_callbacks_.connection_.ssl()); + filter_callbacks_.connection_.stream_info_.downstream_address_provider_->setSslConnection( + filter_callbacks_.connection_.ssl()); EXPECT_EQ(Network::FilterStatus::StopIteration, filter_->onNewConnection()); } @@ -1096,18 +1096,12 @@ TEST_F(TcpProxyTest, AccessDownstreamAndUpstreamProperties) { setup(1); raiseEventUpstreamConnected(0); - EXPECT_EQ(filter_callbacks_.connection() - .streamInfo() - .downstreamAddressProvider() - .sslConnection(), + EXPECT_EQ(filter_callbacks_.connection().streamInfo().downstreamAddressProvider().sslConnection(), filter_callbacks_.connection().ssl()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamLocalAddress(), upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().localAddress()); EXPECT_EQ(filter_callbacks_.connection().streamInfo().upstreamSslConnection(), - upstream_connections_.at(0) - ->streamInfo() - .downstreamAddressProvider() - .sslConnection()); + upstream_connections_.at(0)->streamInfo().downstreamAddressProvider().sslConnection()); } } // namespace } // namespace TcpProxy From 27426b8174ec0c6e2fd3313d649eedc2062c44d1 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Sun, 25 Jul 2021 23:32:13 +0000 Subject: [PATCH 16/16] fix the lua test Signed-off-by: He Jie Xu --- .../filters/http/lua/lua_filter_test.cc | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/test/extensions/filters/http/lua/lua_filter_test.cc b/test/extensions/filters/http/lua/lua_filter_test.cc index fa8d78356e11b..9ad626a5b0e9f 100644 --- a/test/extensions/filters/http/lua/lua_filter_test.cc +++ b/test/extensions/filters/http/lua/lua_filter_test.cc @@ -1872,37 +1872,37 @@ TEST_F(LuaHttpFilterTest, CheckConnection) { TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnection) { const std::string SCRIPT{R"EOF( function envoy_on_request(request_handle) - if request_handle:streamInfo():sslConnection() == nil then + if request_handle:streamInfo():downstreamSslConnection() == nil then else - if request_handle:streamInfo():sslConnection():peerCertificatePresented() then + if request_handle:streamInfo():downstreamSslConnection():peerCertificatePresented() then request_handle:logTrace("peerCertificatePresented") end - if request_handle:streamInfo():sslConnection():peerCertificateValidated() then + if request_handle:streamInfo():downstreamSslConnection():peerCertificateValidated() then request_handle:logTrace("peerCertificateValidated") end - request_handle:logTrace(table.concat(request_handle:streamInfo():sslConnection():uriSanPeerCertificate(), ",")) - request_handle:logTrace(table.concat(request_handle:streamInfo():sslConnection():uriSanLocalCertificate(), ",")) - request_handle:logTrace(table.concat(request_handle:streamInfo():sslConnection():dnsSansPeerCertificate(), ",")) - request_handle:logTrace(table.concat(request_handle:streamInfo():sslConnection():dnsSansLocalCertificate(), ",")) + request_handle:logTrace(table.concat(request_handle:streamInfo():downstreamSslConnection():uriSanPeerCertificate(), ",")) + request_handle:logTrace(table.concat(request_handle:streamInfo():downstreamSslConnection():uriSanLocalCertificate(), ",")) + request_handle:logTrace(table.concat(request_handle:streamInfo():downstreamSslConnection():dnsSansPeerCertificate(), ",")) + request_handle:logTrace(table.concat(request_handle:streamInfo():downstreamSslConnection():dnsSansLocalCertificate(), ",")) - request_handle:logTrace(request_handle:streamInfo():sslConnection():ciphersuiteId()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():ciphersuiteId()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():validFromPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():expirationPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():validFromPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():expirationPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():subjectLocalCertificate()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():sha256PeerCertificateDigest()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():serialNumberPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():issuerPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():subjectPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():ciphersuiteString()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():tlsVersion()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():urlEncodedPemEncodedPeerCertificate()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():urlEncodedPemEncodedPeerCertificateChain()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():subjectLocalCertificate()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():sha256PeerCertificateDigest()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():serialNumberPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():issuerPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():subjectPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():ciphersuiteString()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():tlsVersion()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():urlEncodedPemEncodedPeerCertificate()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():urlEncodedPemEncodedPeerCertificateChain()) - request_handle:logTrace(request_handle:streamInfo():sslConnection():sessionId()) + request_handle:logTrace(request_handle:streamInfo():downstreamSslConnection():sessionId()) end end )EOF"}; @@ -2002,7 +2002,7 @@ TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnection) { TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnectionOnPlainConnection) { const std::string SCRIPT{R"EOF( function envoy_on_request(request_handle) - if request_handle:streamInfo():sslConnection() == nil then + if request_handle:streamInfo():downstreamSslConnection() == nil then request_handle:logTrace("downstreamSslConnection is nil") end end @@ -2019,12 +2019,12 @@ TEST_F(LuaHttpFilterTest, InspectStreamInfoDowstreamSslConnectionOnPlainConnecti EXPECT_EQ(Http::FilterHeadersStatus::Continue, filter_->decodeHeaders(request_headers, true)); } -// Should survive from multiple streamInfo():sslConnection() calls. +// Should survive from multiple streamInfo():downstreamSslConnection() calls. // This is a regression test for #14091. TEST_F(LuaHttpFilterTest, SurviveMultipleDownstreamSslConnectionCalls) { const std::string SCRIPT{R"EOF( function envoy_on_request(request_handle) - if request_handle:streamInfo():sslConnection() ~= nil then + if request_handle:streamInfo():downstreamSslConnection() ~= nil then request_handle:logTrace("downstreamSslConnection is present") end end