v3

package
v1.18.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_github_com_solo_io_gloo_projects_gloo_api_external_envoy_config_common_mutation_rules_v3_mutation_rules_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type HeaderMutation

type HeaderMutation struct {

	// Types that are assignable to Action:
	//
	//	*HeaderMutation_Remove
	//	*HeaderMutation_Append
	Action isHeaderMutation_Action `protobuf_oneof:"action"`
	// contains filtered or unexported fields
}

The HeaderMutation structure specifies an action that may be taken on HTTP headers.

func (*HeaderMutation) Clone

func (m *HeaderMutation) Clone() proto.Message

Clone function

func (*HeaderMutation) Descriptor deprecated

func (*HeaderMutation) Descriptor() ([]byte, []int)

Deprecated: Use HeaderMutation.ProtoReflect.Descriptor instead.

func (*HeaderMutation) Equal

func (m *HeaderMutation) Equal(that interface{}) bool

Equal function

func (*HeaderMutation) GetAction

func (m *HeaderMutation) GetAction() isHeaderMutation_Action

func (*HeaderMutation) GetAppend

func (x *HeaderMutation) GetAppend() *v31.HeaderValueOption

func (*HeaderMutation) GetRemove

func (x *HeaderMutation) GetRemove() string

func (*HeaderMutation) Hash deprecated

func (m *HeaderMutation) Hash(hasher hash.Hash64) (uint64, error)

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*HeaderMutation) HashUnique added in v1.18.0

func (m *HeaderMutation) HashUnique(hasher hash.Hash64) (uint64, error)

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

func (*HeaderMutation) ProtoMessage

func (*HeaderMutation) ProtoMessage()

func (*HeaderMutation) ProtoReflect

func (x *HeaderMutation) ProtoReflect() protoreflect.Message

func (*HeaderMutation) Reset

func (x *HeaderMutation) Reset()

func (*HeaderMutation) String

func (x *HeaderMutation) String() string

type HeaderMutationRules

type HeaderMutationRules struct {

	// By default, certain headers that could affect processing of subsequent
	// filters or request routing cannot be modified. These headers are
	// `host`, `:authority`, `:scheme`, and `:method`. Setting this parameter
	// to true allows these headers to be modified as well.
	AllowAllRouting *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=allow_all_routing,json=allowAllRouting,proto3" json:"allow_all_routing,omitempty"`
	// If true, allow modification of envoy internal headers. By default, these
	// start with `x-envoy` but this may be overridden in the `Bootstrap`
	// configuration using the
	// :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
	// field. Default is false.
	AllowEnvoy *wrapperspb.BoolValue `protobuf:"bytes,2,opt,name=allow_envoy,json=allowEnvoy,proto3" json:"allow_envoy,omitempty"`
	// If true, prevent modification of any system header, defined as a header
	// that starts with a `:` character, regardless of any other settings.
	// A processing server may still override the `:status` of an HTTP response
	// using an `ImmediateResponse` message. Default is false.
	DisallowSystem *wrapperspb.BoolValue `protobuf:"bytes,3,opt,name=disallow_system,json=disallowSystem,proto3" json:"disallow_system,omitempty"`
	// If true, prevent modifications of all header values, regardless of any
	// other settings. A processing server may still override the `:status`
	// of an HTTP response using an `ImmediateResponse` message. Default is false.
	DisallowAll *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=disallow_all,json=disallowAll,proto3" json:"disallow_all,omitempty"`
	// If set, specifically allow any header that matches this regular
	// expression. This overrides all other settings except for
	// `disallow_expression`.
	AllowExpression *v3.RegexMatcher `protobuf:"bytes,5,opt,name=allow_expression,json=allowExpression,proto3" json:"allow_expression,omitempty"`
	// If set, specifically disallow any header that matches this regular
	// expression regardless of any other settings.
	DisallowExpression *v3.RegexMatcher `protobuf:"bytes,6,opt,name=disallow_expression,json=disallowExpression,proto3" json:"disallow_expression,omitempty"`
	// If true, and if the rules in this list cause a header mutation to be
	// disallowed, then the filter using this configuration will terminate the
	// request with a 500 error. In addition, regardless of the setting of this
	// parameter, any attempt to set, add, or modify a disallowed header will
	// cause the `rejected_header_mutations` counter to be incremented.
	// Default is false.
	DisallowIsError *wrapperspb.BoolValue `protobuf:"bytes,7,opt,name=disallow_is_error,json=disallowIsError,proto3" json:"disallow_is_error,omitempty"`
	// contains filtered or unexported fields
}

The HeaderMutationRules structure specifies what headers may be manipulated by a processing filter. This set of rules makes it possible to control which modifications a filter may make.

By default, an external processing server may add, modify, or remove any header except for an "Envoy internal" header (which is typically denoted by an x-envoy prefix) or specific headers that may affect further filter processing:

* `host` * `:authority` * `:scheme` * `:method`

Every attempt to add, change, append, or remove a header will be tested against the rules here. Disallowed header mutations will be ignored unless `disallow_is_error` is set to true.

Attempts to remove headers are further constrained -- regardless of the settings, system-defined headers (that start with `:`) and the `host` header may never be removed.

In addition, a counter will be incremented whenever a mutation is rejected. In the ext_proc filter, that counter is named `rejected_header_mutations`. [#next-free-field: 8]

func (*HeaderMutationRules) Clone

func (m *HeaderMutationRules) Clone() proto.Message

Clone function

func (*HeaderMutationRules) Descriptor deprecated

func (*HeaderMutationRules) Descriptor() ([]byte, []int)

Deprecated: Use HeaderMutationRules.ProtoReflect.Descriptor instead.

func (*HeaderMutationRules) Equal

func (m *HeaderMutationRules) Equal(that interface{}) bool

Equal function

func (*HeaderMutationRules) GetAllowAllRouting

func (x *HeaderMutationRules) GetAllowAllRouting() *wrapperspb.BoolValue

func (*HeaderMutationRules) GetAllowEnvoy

func (x *HeaderMutationRules) GetAllowEnvoy() *wrapperspb.BoolValue

func (*HeaderMutationRules) GetAllowExpression

func (x *HeaderMutationRules) GetAllowExpression() *v3.RegexMatcher

func (*HeaderMutationRules) GetDisallowAll

func (x *HeaderMutationRules) GetDisallowAll() *wrapperspb.BoolValue

func (*HeaderMutationRules) GetDisallowExpression

func (x *HeaderMutationRules) GetDisallowExpression() *v3.RegexMatcher

func (*HeaderMutationRules) GetDisallowIsError

func (x *HeaderMutationRules) GetDisallowIsError() *wrapperspb.BoolValue

func (*HeaderMutationRules) GetDisallowSystem

func (x *HeaderMutationRules) GetDisallowSystem() *wrapperspb.BoolValue

func (*HeaderMutationRules) Hash deprecated

func (m *HeaderMutationRules) Hash(hasher hash.Hash64) (uint64, error)

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*HeaderMutationRules) HashUnique added in v1.18.0

func (m *HeaderMutationRules) HashUnique(hasher hash.Hash64) (uint64, error)

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

func (*HeaderMutationRules) ProtoMessage

func (*HeaderMutationRules) ProtoMessage()

func (*HeaderMutationRules) ProtoReflect

func (x *HeaderMutationRules) ProtoReflect() protoreflect.Message

func (*HeaderMutationRules) Reset

func (x *HeaderMutationRules) Reset()

func (*HeaderMutationRules) String

func (x *HeaderMutationRules) String() string

type HeaderMutation_Append

type HeaderMutation_Append struct {
	// Append new header by the specified HeaderValueOption.
	Append *v31.HeaderValueOption `protobuf:"bytes,2,opt,name=append,proto3,oneof"`
}

type HeaderMutation_Remove

type HeaderMutation_Remove struct {
	// Remove the specified header if it exists.
	Remove string `protobuf:"bytes,1,opt,name=remove,proto3,oneof"`
}

Jump to

Keyboard shortcuts

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