From d7c5dd64ac97c27129ca21d341a398d9e894ae8b Mon Sep 17 00:00:00 2001 From: Kchan Date: Fri, 13 Apr 2018 12:38:51 -0700 Subject: [PATCH] access log: add header based filter (#616) define a access log filter to filter requests based on the value of a specified header. This is the initial data plane api change for the issue envoyproxy/envoy#2544. Signed-off-by: Kevin Chan --- envoy/config/filter/accesslog/v2/BUILD | 2 ++ envoy/config/filter/accesslog/v2/accesslog.proto | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/envoy/config/filter/accesslog/v2/BUILD b/envoy/config/filter/accesslog/v2/BUILD index 92727979..af0f1607 100644 --- a/envoy/config/filter/accesslog/v2/BUILD +++ b/envoy/config/filter/accesslog/v2/BUILD @@ -15,6 +15,7 @@ api_proto_library( "//envoy/api/v2/core:address", "//envoy/api/v2/core:base", "//envoy/api/v2/core:grpc_service", + "//envoy/api/v2/route", "//envoy/type:percent", ], ) @@ -26,6 +27,7 @@ api_go_proto_library( "//envoy/api/v2/core:address_go_proto", "//envoy/api/v2/core:base_go_proto", "//envoy/api/v2/core:grpc_service_go_proto", + "//envoy/api/v2/route:route_go_proto", "//envoy/type:percent_go_proto", ], ) diff --git a/envoy/config/filter/accesslog/v2/accesslog.proto b/envoy/config/filter/accesslog/v2/accesslog.proto index eecc8dd4..b4d125e9 100644 --- a/envoy/config/filter/accesslog/v2/accesslog.proto +++ b/envoy/config/filter/accesslog/v2/accesslog.proto @@ -5,6 +5,7 @@ option go_package = "v2"; import "envoy/api/v2/core/address.proto"; import "envoy/api/v2/core/base.proto"; +import "envoy/api/v2/route/route.proto"; import "envoy/type/percent.proto"; import "google/protobuf/duration.proto"; @@ -331,6 +332,9 @@ message AccessLogFilter { // Or filter. OrFilter or_filter = 7; + + // [#not-implemented-hide:] Header filter. + HeaderFilter header_filter = 8; } } @@ -414,6 +418,13 @@ message OrFilter { repeated AccessLogFilter filters = 2 [(validate.rules).repeated .min_items = 2]; } +// [#not-implemented-hide:] Filters requests based on the presence or value of a request header. +message HeaderFilter { + // Only requests with a header which matches the specified HeaderMatcher will pass the filter + // check. + envoy.api.v2.route.HeaderMatcher header = 1 [(validate.rules).message.required = true]; +} + // Custom configuration for an AccessLog that writes log entries directly to a file. // Configures the built-in *envoy.file_access_log* AccessLog. message FileAccessLog {