[#6050] http: add edge_accept_request_id field (#7140)

Add edge_accept_request_id property for the envoy.http_connection_manager filter. Field added to resolve #6050 and also maintain backward compatibility

Risk: Low - small feature disabled by default and maintaining backward compatibility

Testing: Added 2 additional integration tests in test/common/http/conn_manager_utility_test.c to validate behaviour for:

1. edge request - activated edge_accept_request_id set to true but no x-request-id header sent - expected to generate a new one
2. edge request - activated edge_accept_request_id set to true and sent x-request-id header sent - expected to keep the old one.
3. all previous tests regarding edge requests resetting the x-request-id should still pass

Fixes #6050

Signed-off-by: trifan <trifan@adobe.com>

Mirrored from https://github.com/envoyproxy/envoy @ 0243ded4b29be7c7d95316ca99eae2e3c517e1a4
pull/620/head
data-plane-api(CircleCI) 6 years ago
parent a83394157a
commit 168fa5d1ae
  1. 8
      envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto

@ -25,7 +25,7 @@ import "gogoproto/gogo.proto";
// [#protodoc-title: HTTP connection manager]
// HTTP connection manager :ref:`configuration overview <config_http_conn_man>`.
// [#comment:next free field: 32]
// [#comment:next free field: 33]
message HttpConnectionManager {
enum CodecType {
option (gogoproto.goproto_enum_prefix) = false;
@ -287,6 +287,12 @@ message HttpConnectionManager {
// is not desired it can be disabled.
google.protobuf.BoolValue generate_request_id = 15;
// Whether the connection manager will keep the :ref:`x-request-id
// <config_http_conn_man_headers_x-request-id>` header if passed for a request that is edge
// (Edge request is the request from external clients to front Envoy) and not reset it, which
// is the current Envoy behaviour. This defaults to false.
bool preserve_external_request_id = 32;
// How to handle the :ref:`config_http_conn_man_headers_x-forwarded-client-cert` (XFCC) HTTP
// header.
enum ForwardClientCertDetails {

Loading…
Cancel
Save