Documentation ¶
Overview ¶
Package httpfilter contains the HTTPFilter interface and a registry for storing and retrieving their implementations.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Register ¶
func Register(b Filter)
Register registers the HTTP filter Builder to the filter map. b.TypeURLs() will be used as the types for this filter.
NOTE: this function must only be called during initialization time (i.e. in an init() function), and is not thread-safe. If multiple filters are registered with the same type URL, the one registered last will take effect.
func UnregisterForTesting ¶
func UnregisterForTesting(typeURL string)
UnregisterForTesting unregisters the HTTP Filter for testing purposes.
Types ¶
type ClientInterceptorBuilder ¶
type ClientInterceptorBuilder interface { // BuildClientInterceptor uses the FilterConfigs produced above to produce // an HTTP filter interceptor for clients. config will always be non-nil, // but override may be nil if no override config exists for the filter. It // is valid for Build to return a nil Interceptor and a nil error. In this // case, the RPC will not be intercepted by this filter. BuildClientInterceptor(config, override FilterConfig) (iresolver.ClientInterceptor, error) }
ClientInterceptorBuilder constructs a Client Interceptor. If this type is implemented by a Filter, it is capable of working on a client.
type Filter ¶
type Filter interface { // TypeURLs are the proto message types supported by this filter. A filter // will be registered by each of its supported message types. TypeURLs() []string // ParseFilterConfig parses the provided configuration proto.Message from // the LDS configuration of this filter. This may be an anypb.Any, a // udpa.type.v1.TypedStruct, or an xds.type.v3.TypedStruct for filters that // do not accept a custom type. The resulting FilterConfig will later be // passed to Build. ParseFilterConfig(proto.Message) (FilterConfig, error) // ParseFilterConfigOverride parses the provided override configuration // proto.Message from the RDS override configuration of this filter. This // may be an anypb.Any, a udpa.type.v1.TypedStruct, or an // xds.type.v3.TypedStruct for filters that do not accept a custom type. // The resulting FilterConfig will later be passed to Build. ParseFilterConfigOverride(proto.Message) (FilterConfig, error) // IsTerminal returns whether this Filter is terminal or not (i.e. it must // be last filter in the filter chain). IsTerminal() bool }
Filter defines the parsing functionality of an HTTP filter. A Filter may optionally implement either ClientInterceptorBuilder or ServerInterceptorBuilder or both, indicating it is capable of working on the client side or server side or both, respectively.
type FilterConfig ¶
type FilterConfig interface {
// contains filtered or unexported methods
}
FilterConfig represents an opaque data structure holding configuration for a filter. Embed this interface to implement it.
type ServerInterceptorBuilder ¶
type ServerInterceptorBuilder interface { // BuildServerInterceptor uses the FilterConfigs produced above to produce // an HTTP filter interceptor for servers. config will always be non-nil, // but override may be nil if no override config exists for the filter. It // is valid for Build to return a nil Interceptor and a nil error. In this // case, the RPC will not be intercepted by this filter. BuildServerInterceptor(config, override FilterConfig) (iresolver.ServerInterceptor, error) }
ServerInterceptorBuilder constructs a Server Interceptor. If this type is implemented by a Filter, it is capable of working on a server.
Directories ¶
Path | Synopsis |
---|---|
Package fault implements the Envoy Fault Injection HTTP filter.
|
Package fault implements the Envoy Fault Injection HTTP filter. |
Package rbac implements the Envoy RBAC HTTP filter.
|
Package rbac implements the Envoy RBAC HTTP filter. |
Package router implements the Envoy Router HTTP filter.
|
Package router implements the Envoy Router HTTP filter. |