middleware

package
v0.1.174 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 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 WithAuthenticateFirebaseIDTokenPath added in v0.1.120

func WithAuthenticateFirebaseIDTokenPath(x string) ClientOption

func WithAuthenticateOIDCTokenPath added in v0.1.120

func WithAuthenticateOIDCTokenPath(x string) ClientOption

func WithAuthenticationTimeout

func WithAuthenticationTimeout(x time.Duration) ClientOption

func WithAuthenticationURL added in v0.1.120

func WithAuthenticationURL(x *url.URL) ClientOption

func WithAuthorizationTimeout

func WithAuthorizationTimeout(x time.Duration) ClientOption

func WithAuthorizationURL

func WithAuthorizationURL(x *url.URL) ClientOption

func WithAuthorizePath added in v0.1.118

func WithAuthorizePath(x string) 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 WithLoaded added in v0.1.163

func WithLoaded(x Loaded) ClientOption

func WithUserIDHeaderKey

func WithUserIDHeaderKey(x string) ClientOption

type ClientOptions

type ClientOptions struct {
	Loaded
	AuthorizePath                   string
	AuthenticateFirebaseIDTokenPath string
	AuthenticateOIDCTokenPath       string
	IdempotencyTimeout              time.Duration
	IdempotencyKeyTTL               time.Duration
	AuthorizationTimeout            time.Duration
	AuthenticationTimeout           time.Duration
	AuthorizationURL                *url.URL
	AuthenticationURL               *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.

type Loaded added in v0.1.122

type Loaded struct {
	UserIDHeaderKey      string
	IdempotencyHeaderKey string
}

Jump to

Keyboard shortcuts

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