middleware

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2020 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package middleware //

Package middleware //

Package middleware //

Package middleware //

Package middleware //

Package middleware //

Index

Constants

View Source
const OptlyClientKey = contextKey("optlyClient")

OptlyClientKey is the context key for the OptlyClient

View Source
const OptlyContextKey = contextKey("optlyContext")

OptlyContextKey is the context key for the OptlyContext

View Source
const OptlyExperimentKey = contextKey("experimentKey")

OptlyExperimentKey is the context key used by ExperimentCtx for setting an Experiment

View Source
const OptlyFeatureKey = contextKey("featureKey")

OptlyFeatureKey is the context key used by FeatureCtx for setting a Feature

View Source
const OptlyRequestHeader = "X-Request-Id"

OptlyRequestHeader is the header key for the request ID

View Source
const OptlySDKHeader = "X-Optimizely-SDK-Key"

OptlySDKHeader is the header key for an ad-hoc SDK key

Variables

This section is empty.

Functions

func CoerceType added in v0.12.0

func CoerceType(s string) interface{}

CoerceType coerces typed value from string

func GetExperiment added in v0.11.0

func GetExperiment(r *http.Request) (*config.OptimizelyExperiment, error)

GetExperiment returns an OptimizelyExperiment from the request context

func GetFeature added in v0.11.0

func GetFeature(r *http.Request) (*config.OptimizelyFeature, error)

GetFeature returns an OptimizelyFeature from the request context

func GetLogger

func GetLogger(r *http.Request) *zerolog.Logger

GetLogger gets the logger with some info coming from http request

func GetOptlyClient

func GetOptlyClient(r *http.Request) (*optimizely.OptlyClient, error)

GetOptlyClient is a utility to extract the OptlyClient from the http request context.

func Metricize

func Metricize(key string, metricsRegistry *metrics.Registry) func(http.Handler) http.Handler

Metricize updates counts, total response time, and response time histogram for each URL hit, key being a combination of a method and route pattern

func RenderError

func RenderError(err error, status int, w http.ResponseWriter, r *http.Request)

RenderError sets the request status and renders the error message.

func SetRequestID

func SetRequestID(next http.Handler) http.Handler

SetRequestID sets request ID obtained from the request header itself or from newly generated id

func SetTime

func SetTime(next http.Handler) http.Handler

SetTime middleware sets the start time in request context

Types

type Auth added in v0.12.0

type Auth struct {
	Verifier
}

Auth is the middleware for all REST API's

func NewAuth added in v0.12.0

func NewAuth(authConfig *config.ServiceAuthConfig) *Auth

NewAuth makes Auth middleware

func (Auth) AuthorizeAPI added in v0.12.0

func (a Auth) AuthorizeAPI(next http.Handler) http.Handler

AuthorizeAPI is middleware for auth api

func (Auth) AuthorizeAdmin added in v0.12.0

func (a Auth) AuthorizeAdmin(next http.Handler) http.Handler

AuthorizeAdmin is middleware for admin auth

type CachedOptlyMiddleware

type CachedOptlyMiddleware struct {
	Cache optimizely.Cache
}

CachedOptlyMiddleware implements OptlyMiddleware backed by a cache

func (*CachedOptlyMiddleware) ClientCtx

func (mw *CachedOptlyMiddleware) ClientCtx(next http.Handler) http.Handler

ClientCtx adds a pointer to an OptlyClient to the request context. Precedence is given for any SDK key provided within the request header else the default OptlyClient will be used.

type ErrorResponse

type ErrorResponse struct {
	Error string `json:"error"`
}

ErrorResponse Model

type JWTVerifier added in v0.12.0

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

JWTVerifier checks token with JWT, implements Verifier

func NewJWTVerifier added in v0.12.0

func NewJWTVerifier(secretKeys [][]byte) *JWTVerifier

NewJWTVerifier creates JWTVerifier with secret key

func (JWTVerifier) CheckToken added in v0.12.0

func (c JWTVerifier) CheckToken(token string) (*jwt.Token, error)

CheckToken checks the token and returns it if it's valid

type JWTVerifierURL added in v0.13.0

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

JWTVerifierURL checks token with JWT against JWKS, implements Verifier

func NewJWTVerifierURL added in v0.13.0

func NewJWTVerifierURL(jwksURL string, updateInterval time.Duration) *JWTVerifierURL

NewJWTVerifierURL creates JWTVerifierURL with JWKS URL

func (*JWTVerifierURL) CheckToken added in v0.13.0

func (c *JWTVerifierURL) CheckToken(token string) (tk *jwt.Token, err error)

CheckToken checks the token, validates against JWKS and returns it if it's valid

type NoAuth added in v0.12.0

type NoAuth struct{}

NoAuth is NoOp for auth

func (NoAuth) CheckToken added in v0.12.0

func (NoAuth) CheckToken(string) (*jwt.Token, error)

CheckToken returns no token and no error

type OptlyMiddleware

type OptlyMiddleware interface {
	// ClientCtx adds an OptlyClient to the request context.
	ClientCtx(next http.Handler) http.Handler
}

OptlyMiddleware encapsultes all middleware

type Verifier added in v0.12.0

type Verifier interface {
	CheckToken(string) (*jwt.Token, error)
}

Verifier checks token

Jump to

Keyboard shortcuts

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