proxy

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2022 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(hostMapper HostMapper, opts ...Options) http.Handler

New creates a new Proxy A Proxy sets up a middleware with custom request and response modification handlers

func ReplaceCookieDomainAndSecure

func ReplaceCookieDomainAndSecure(resp *http.Response, original, replacement string, secure bool)

ReplaceCookieDomainAndSecure replaces the domain of all matching Set-Cookie headers in the response.

Types

type HostConfig

type HostConfig struct {
	// CorsEnabled is a flag to enable or disable CORS
	// Default: false
	CorsEnabled bool
	// CorsOptions allows to configure CORS
	// If left empty, no CORS headers will be set even when CorsEnabled is true
	CorsOptions *cors.Options
	// CookieDomain is the host under which cookies are set.
	// If left empty, no cookie domain will be set
	CookieDomain string
	// UpstreamHost is the next upstream host the proxy will pass the request to.
	// e.g. fluffy-bear-afiu23iaysd.oryapis.com
	UpstreamHost string
	// UpstreamScheme is the protocol used by the upstream service.
	UpstreamScheme string
	// TargetHost is the final target of the request. Should be the same as UpstreamHost
	// if the request is directly passed to the target service.
	TargetHost string
	// TargetScheme is the final target's scheme
	// (i.e. the scheme the target thinks it is running under)
	TargetScheme string
	// PathPrefix is a prefix that is prepended on the original host,
	// but removed before forwarding.
	PathPrefix string
	// contains filtered or unexported fields
}

type HostMapper

type HostMapper func(ctx context.Context, r *http.Request) (*HostConfig, error)

type Options

type Options func(*options)

func WithErrorHandler

func WithErrorHandler(eh func(w http.ResponseWriter, r *http.Request, err error)) Options

func WithOnError

func WithOnError(onReqErr func(*http.Request, error), onResErr func(*http.Response, error) error) Options

func WithReqMiddleware

func WithReqMiddleware(middlewares ...ReqMiddleware) Options

func WithRespMiddleware

func WithRespMiddleware(middlewares ...RespMiddleware) Options

func WithTransport

func WithTransport(t http.RoundTripper) Options

type ReqMiddleware

type ReqMiddleware func(req *http.Request, config *HostConfig, body []byte) ([]byte, error)

type RespMiddleware

type RespMiddleware func(resp *http.Response, config *HostConfig, body []byte) ([]byte, error)

Jump to

Keyboard shortcuts

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