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.
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 or a
// udpa.type.v1.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 or a udpa.type.v1.TypedStruct for filters that do
// not accept a custom type. The resulting FilterConfig will later be
// passed to Build.
ParseFilterConfigOverride(proto.Message) (FilterConfig, error)
}
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.