middleware

package
v0.1.110 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2025 License: Apache-2.0 Imports: 16 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	contract.MiddlewareOperator
}

func NewClient

func NewClient(d Dependencies, opts ClientOptions) (Client, error)

type ClientOption

type ClientOption func(*ClientOptions)

func WithAuthenticationTimeout

func WithAuthenticationTimeout(x time.Duration) ClientOption

func WithAuthorizationTimeout

func WithAuthorizationTimeout(x time.Duration) ClientOption

func WithAuthorizationURL

func WithAuthorizationURL(x *url.URL) ClientOption

func WithDefaultAuthorizationTimeout added in v0.1.108

func WithDefaultAuthorizationTimeout() ClientOption

func WithFirebaseIDTokenAuthenticationURL

func WithFirebaseIDTokenAuthenticationURL(x *url.URL) ClientOption

func WithIdempotencyHeaderKey

func WithIdempotencyHeaderKey(x string) ClientOption

func WithIdempotencyKeyTTL

func WithIdempotencyKeyTTL(x time.Duration) ClientOption

func WithIdempotencyTimeout

func WithIdempotencyTimeout(x time.Duration) ClientOption

func WithOIDCAuthenticationURL

func WithOIDCAuthenticationURL(x *url.URL) ClientOption

func WithUserIDHeaderKey

func WithUserIDHeaderKey(x string) ClientOption

type ClientOptions

type ClientOptions struct {
	UserIDHeaderKey                  string
	IdempotencyHeaderKey             string
	IdempotencyTimeout               time.Duration
	IdempotencyKeyTTL                time.Duration
	AuthorizationTimeout             time.Duration
	AuthenticationTimeout            time.Duration
	AuthorizationURL                 *url.URL
	FirebaseIDTokenAuthenticationURL *url.URL
	OIDCAuthenticationURL            *url.URL
}

func ApplyClientOptions

func ApplyClientOptions(opts *ClientOptions, modifiers ...ClientOption) ClientOptions

type DefaultTool added in v0.1.24

type DefaultTool struct {
	T *contract.Tool[Client]
}

func NewTool

func NewTool(c Client, opts contract.ToolOptions[Client]) *DefaultTool

func (*DefaultTool) AuthenticateFirebaseIDToken added in v0.1.24

func (d *DefaultTool) AuthenticateFirebaseIDToken(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

AuthenticateFirebaseIDToken validates a Firebase ID token.

func (*DefaultTool) AuthenticateOIDCToken added in v0.1.24

func (d *DefaultTool) AuthenticateOIDCToken(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

AuthenticateOIDCToken validates an OIDC token.

func (*DefaultTool) Chain added in v0.1.24

Chain combines multiple middleware into a single handler.

func (*DefaultTool) CheckHeaders added in v0.1.24

func (d *DefaultTool) CheckHeaders(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

CheckHeaders ensures essential headers are present and sets default ones.

func (*DefaultTool) CleanURLPath added in v0.1.24

func (d *DefaultTool) CleanURLPath(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

CleanURLPath ensures that URL paths are clean and well-formed.

func (*DefaultTool) EnforceHTTPS added in v0.1.24

func (d *DefaultTool) EnforceHTTPS(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

EnforceHTTPS redirects HTTP requests to HTTPS unless running locally.

func (*DefaultTool) Gzip added in v0.1.24

Gzip compresses HTTP responses when supported by the client.

func (*DefaultTool) IdempotentPOST added in v0.1.24

func (d *DefaultTool) IdempotentPOST(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

IdempotentPOST ensures a POST request is only processed once.

func (*DefaultTool) RequireOwner added in v0.1.24

func (d *DefaultTool) RequireOwner(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

RequireOwner enforces the owner permission on the request.

func (*DefaultTool) RequireReader added in v0.1.24

func (d *DefaultTool) RequireReader(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

RequireReader enforces the reader permission on the request.

func (*DefaultTool) RequireWriter added in v0.1.24

func (d *DefaultTool) RequireWriter(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc

RequireWriter enforces the writer permission on the request.

Jump to

Keyboard shortcuts

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