我正在使用Istio VirtualService,想知道如果头部丢失,是否可以使用头部规则拒绝特定路由上的请求。根据文档,看起来我们只能在virtualservice级别添加或删除头?是这样吗?或者我可以用什么方式在没有特定头的情况下对virtualservice中特定URI路径的请求进行全面拒绝?
lb3vh1jj1#
虚拟服务只关注rewriting and routing,包括头,它不支持拒绝没有头的流量。但是,在检查EnvoyFilter时,它可以根据头条件操作拒绝请求。还分享了这个link,其中一个注解使用EnvoyFilter来操作标题规则。请检查下面的样品yaml如果这符合您的关注。
kind: EnvoyFilter metadata: name: any-name spec: workloadSelector: labels: app: your-app filters: - listenerMatch: listenerType: SIDECAR_INBOUND listenerProtocol: HTTP filterName: envoy.lua filterType: HTTP filterConfig: inlineCode: | function envoy_on_request(request_handle) local header_value = request_handle:headers():get("Your-Header-Name") if header_value == nil then request_handle:respond({[":status"] = "403"}, "Header is missing") end end
1条答案
按热度按时间lb3vh1jj1#
虚拟服务只关注rewriting and routing,包括头,它不支持拒绝没有头的流量。但是,在检查EnvoyFilter时,它可以根据头条件操作拒绝请求。
还分享了这个link,其中一个注解使用EnvoyFilter来操作标题规则。请检查下面的样品yaml如果这符合您的关注。