Documentation ¶
Index ¶
- func AutoConfigAuthenticationFunc(secretProvider interfaces.SecretProviderExt, logger log.Logger) echo.MiddlewareFunc
- func FromContext(ctx context.Context) string
- func LoggingMiddleware(logger log.Logger) echo.MiddlewareFunc
- func ManageHeader(next echo.HandlerFunc) echo.HandlerFunc
- func NilAuthenticationHandlerFunc() echo.MiddlewareFunc
- func RequestLimitMiddleware(sizeLimit int64, logger log.Logger) echo.MiddlewareFunc
- func VaultAuthenticationHandlerFunc(secretProvider interfaces.SecretProviderExt, logger log.Logger) echo.MiddlewareFunc
- type HttpServer
- type StartMessage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AutoConfigAuthenticationFunc ¶ added in v1.0.8
func AutoConfigAuthenticationFunc(secretProvider interfaces.SecretProviderExt, logger log.Logger) echo.MiddlewareFunc
AutoConfigAuthenticationFunc auto-selects between a HandlerFunc wrapper that does authentication and a HandlerFunc wrapper that does not. By default, JWT validation is enabled in secure mode (i.e. when using a real secrets provider instead of a no-op stub)
Set EDGE_DISABLE_JWT_VALIDATION to 1, t, T, TRUE, true, or True to disable JWT validation. This might be wanted for an adopter that wanted to only validate JWT's at the proxy layer, or as an escape hatch for a caller that cannot authenticate.
func FromContext ¶ added in v1.0.8
func LoggingMiddleware ¶ added in v1.0.8
func ManageHeader ¶ added in v1.0.8
func ManageHeader(next echo.HandlerFunc) echo.HandlerFunc
func NilAuthenticationHandlerFunc ¶ added in v1.0.8
func NilAuthenticationHandlerFunc() echo.MiddlewareFunc
NilAuthenticationHandlerFunc just invokes a nested handler
func RequestLimitMiddleware ¶ added in v1.0.8
RequestLimitMiddleware is a middleware function that limits the request body size to Service.MaxRequestSize in kilobytes
func VaultAuthenticationHandlerFunc ¶ added in v1.0.8
func VaultAuthenticationHandlerFunc(secretProvider interfaces.SecretProviderExt, logger log.Logger) echo.MiddlewareFunc
VaultAuthenticationHandlerFunc prefixes an existing HandlerFunc with a Vault-based JWT authentication check. Usage:
authenticationHook := handlers.NilAuthenticationHandlerFunc() if secret.IsSecurityEnabled() { lc := container.LoggingClientFrom(dic.Get) secretProvider := container.SecretProviderFrom(dic.Get) authenticationHook = handlers.VaultAuthenticationHandlerFunc(secretProvider, lc) } For optionally-authenticated requests r.HandleFunc("path", authenticationHook(handlerFunc)).Methods(http.MethodGet) For unauthenticated requests r.HandleFunc("path", handlerFunc).Methods(http.MethodGet)
For typical usage, it is preferred to use AutoConfigAuthenticationFunc which will automatically select between a real and a fake JWT validation handler.
Types ¶
type HttpServer ¶ added in v1.0.8
type HttpServer struct {
// contains filtered or unexported fields
}
HttpServer contains references to dependencies required by the http server implementation.
func NewHttpServer ¶ added in v1.0.8
func NewHttpServer(router *echo.Echo, doListenAndServe bool) *HttpServer
NewHttpServer is a factory method that returns an initialized HttpServer receiver struct.
func (*HttpServer) BootstrapHandler ¶ added in v1.0.8
func (b *HttpServer) BootstrapHandler( ctx context.Context, wg *sync.WaitGroup, _ startup.Timer, dic *di.Container) bool
BootstrapHandler fulfills the BootstrapHandler contract. It creates two go routines -- one that executes ListenAndServe() and another that waits on closure of a context's done channel before calling Shutdown() to cleanly shut down the http server.
func (*HttpServer) IsRunning ¶ added in v1.0.8
func (b *HttpServer) IsRunning() bool
IsRunning returns whether or not the http server is running. It is provided to support delayed shutdown of any resources required to successfully process http requests until after all outstanding requests have been processed (e.g. a database connection).
type StartMessage ¶
type StartMessage struct {
// contains filtered or unexported fields
}
StartMessage contains references to dependencies required by the start message handler.
func NewStartMessage ¶
func NewStartMessage(serviceKey, version string) *StartMessage
NewStartMessage is a factory method that returns an initialized StartMessage receiver struct.
func (StartMessage) BootstrapHandler ¶
func (h StartMessage) BootstrapHandler( _ context.Context, _ *sync.WaitGroup, startupTimer startup.Timer, dic *di.Container) bool
BootstrapHandler fulfills the BootstrapHandler contract. It creates no go routines. It logs a "standard" set of messages when the service first starts up successfully.