httpfilter

package
v0.0.0-...-7d1ee88 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2023 License: Apache-2.0 Imports: 2 Imported by: 0

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.

func Get

func Get(typeURL string) Filter

Get returns the HTTPFilter registered with typeURL.

If no filter is register with typeURL, nil will be returned.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL