http

package
v2.17.2 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2024 License: Apache-2.0 Imports: 26 Imported by: 1

Documentation

Index

Constants

View Source
const (
	AnyPathSuffixRegex = `\/.*`
)

Variables

This section is empty.

Functions

func CanonicalHref

func CanonicalHref(href string) string

CanonicalHref always lead by "/"

func CreateAuthMiddleware

func CreateAuthMiddleware(authInterceptor Interceptor, onUnauthorizedAccessFunc OnUnauthorizedAccessFunc) func(next http.Handler) http.Handler

CreateAuthMiddleware creates middleware for authorization

func CreateLoggingMiddleware added in v2.2.4

func CreateLoggingMiddleware(opts ...LogOpt) func(next http.Handler) http.Handler

func CreateMakeQueryCaseInsensitiveMiddleware added in v2.3.6

func CreateMakeQueryCaseInsensitiveMiddleware(queryCaseInsensitive map[string]string, opts ...LogOpt) func(next http.Handler) http.Handler

func CreateTrailSlashSuffixMiddleware added in v2.3.6

func CreateTrailSlashSuffixMiddleware(opts ...LogOpt) func(next http.Handler) http.Handler

func DefaultCodeToLevel added in v2.2.4

func DefaultCodeToLevel(code int, logger log.Logger) func(args ...interface{})

DefaultCodeToLevel is the default implementation of gRPC return codes and interceptor log level for server side.

func ErrToStatus

func ErrToStatus(err error) int

ErrToStatus converts err to http.Status.

func ErrToStatusWithDef

func ErrToStatusWithDef(err error, def int) int

ErrToStatusWithDef converts err with default http.Status(for unknown conversion) to http.Status.

func NewDefaultAuthorizationRules added in v2.13.0

func NewDefaultAuthorizationRules(apiPath string) map[string][]AuthArgs

NewDefaultAuthorizationRules returns a map of HTTP methods to a slice of AuthArgs. The AuthArgs contain a URI field that is a regular expression matching the given apiPath with any path suffix. This function is used to create default authorization rules for HTTP methods GET, POST, DELETE, and PUT.

func OpenTelemetryNewHandler added in v2.4.0

func OpenTelemetryNewHandler(handler http.Handler, serviceName string, tracerProvider trace.TracerProvider) http.Handler

func ParseToken

func ParseToken(auth string) (string, error)

func ToURLString

func ToURLString(scheme string, host string, path string) string

ToURLString convert scheme, host, path to escaped url.

func WantToLog added in v2.2.4

func WantToLog(code int, logger log.Logger) bool

DefaultCodeToLevel is the default implementation of gRPC return codes and interceptor log level for server side.

Types

type AuthArgs

type AuthArgs struct {
	URI    *regexp.Regexp
	Scopes []*regexp.Regexp
}

type ClaimsFunc

type ClaimsFunc = func(ctx context.Context, method, uri string) jwt.ClaimsValidator

func MakeClaimsFunc

func MakeClaimsFunc(methods map[string][]AuthArgs) ClaimsFunc

type DeniedClaims

type DeniedClaims struct {
	jwt.MapClaims
	Err error
}

func (DeniedClaims) Validate added in v2.16.3

func (c DeniedClaims) Validate() error

type Interceptor

type Interceptor = func(ctx context.Context, method, uri string) (context.Context, error)

func NewInterceptorWithValidator

func NewInterceptorWithValidator(validator Validator, auths map[string][]AuthArgs, whiteList ...RequestMatcher) Interceptor

NewInterceptor authorizes HTTP request with validator.

type LogOpt added in v2.2.4

type LogOpt = func(*LogOptions)

func WithLogger added in v2.2.4

func WithLogger(logger log.Logger) LogOpt

type LogOptions added in v2.3.6

type LogOptions struct {
	// contains filtered or unexported fields
}

func NewLogOptions added in v2.3.6

func NewLogOptions() *LogOptions

type OnUnauthorizedAccessFunc

type OnUnauthorizedAccessFunc = func(ctx context.Context, w http.ResponseWriter, r *http.Request, err error)

type OpenTelemetryCollectorConfig added in v2.4.0

type OpenTelemetryCollectorConfig struct {
	otelClient.Config `yaml:",inline"`
}

func (*OpenTelemetryCollectorConfig) Validate added in v2.4.0

func (c *OpenTelemetryCollectorConfig) Validate() error

type RequestMatcher

type RequestMatcher struct {
	Method string
	URI    *regexp.Regexp
}

RequestMatcher allows request without token validation.

type Validator

type Validator interface {
	ParseWithClaims(token string, claims jwt.Claims) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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