middlewarex: github.com/mdouchement/middlewarex Index | Files

package middlewarex

import "github.com/mdouchement/middlewarex"


Package Files

crud.go paseto.go versioning.go


const (
    // XApplicationVersion is the header for the asked API version (e.g. vnd.github.v1)
    XApplicationVersion = "X-Application-Version"
    // XApplicationStableVersion is the header for the stable API version (e.g. vnd.github.v3)
    XApplicationStableVersion = "X-Application-Stable-Version"


var (
    ErrPASETOMissing     = echo.NewHTTPError(http.StatusBadRequest, "missing or malformed paseto")
    ErrPASETOUnsupported = echo.NewHTTPError(http.StatusBadRequest, "unsupported paseto version/purpose")


var (
    // DefaultPASETOConfig is the default PASETO auth middleware config.
    DefaultPASETOConfig = PASETOConfig{
        Skipper:     middleware.DefaultSkipper,
        ContextKey:  "paseto",
        TokenLookup: "header:" + echo.HeaderAuthorization,
        AuthScheme:  "Bearer",
        Validators:  []paseto.Validator{},

func CRUD Uses

func CRUD(group *echo.Group, path string, resource interface{})

CRUD defines the folowwing resources:

POST:   /path
GET:    /path
GET:    /path/:id
PATCH:  /path/:id
DEL:    /path/:id

func PASETO Uses

func PASETO(key []byte) echo.MiddlewareFunc

PASETO returns a JSON Platform-Agnostic SEcurity TOkens (PASETO) auth middleware.

For valid token, it sets the user in context and calls next handler. For invalid token, it returns "401 - Unauthorized" error. For missing token, it returns "400 - Bad Request" error.

func PASETOWithConfig Uses

func PASETOWithConfig(config PASETOConfig) echo.MiddlewareFunc

PASETOWithConfig returns a PASETO auth middleware with config.

func Versioning Uses

func Versioning(stable string, supported ...string) echo.MiddlewareFunc

Versioning rewrites routes to match the last part of the version header. e.g. `X-Application-Version: vnd.github.v3' header will prefix the request's path by `/v3'. The stable API version will be returned in the response's headers.

type CreateSupported Uses

type CreateSupported interface {
    Create(echo.Context) error

CreateSupported interface

type DeleteSupported Uses

type DeleteSupported interface {
    Delete(echo.Context) error

DeleteSupported interface

type ListSupported Uses

type ListSupported interface {
    List(echo.Context) error

ListSupported interface

type PASETOConfig Uses

type PASETOConfig struct {
    // Skipper defines a function to skip middleware.
    Skipper middleware.Skipper

    // BeforeFunc defines a function which is executed just before the middleware.
    BeforeFunc middleware.BeforeFunc

    // SuccessHandler defines a function which is executed for a valid token.
    SuccessHandler PASETOSuccessHandler

    // ErrorHandler defines a function which is executed for an invalid token.
    // It may be used to define a custom PASETO error.
    ErrorHandler PASETOErrorHandler

    // ErrorHandlerWithContext is almost identical to ErrorHandler, but it's passed the current context.
    ErrorHandlerWithContext PASETOErrorHandlerWithContext

    // Signing key to validate token.
    // Required.
    SigningKey []byte

    // Validators is the list of custom validators.
    // Time validation is enforced.
    Validators []paseto.Validator

    // Context key to store user information from the token into context.
    // Optional. Default value "user".
    ContextKey string

    // TokenLookup is a string in the form of "<source>:<name>" that is used
    // to extract token from the request.
    // Optional. Default value "header:Authorization".
    // Possible values:
    // - "header:<name>"
    // - "query:<name>"
    // - "param:<name>"
    // - "cookie:<name>"
    TokenLookup string

    // AuthScheme to be used in the Authorization header.
    // Optional. Default value "Bearer".
    AuthScheme string

PASETOConfig defines the config for PASETO middleware.

type PASETOErrorHandler Uses

type PASETOErrorHandler func(error) error

PASETOErrorHandler defines a function which is executed for an invalid token.

type PASETOErrorHandlerWithContext Uses

type PASETOErrorHandlerWithContext func(error, echo.Context) error

PASETOErrorHandlerWithContext is almost identical to PASETOErrorHandler, but it's passed the current context.

type PASETOSuccessHandler Uses

type PASETOSuccessHandler func(echo.Context)

PASETOSuccessHandler defines a function which is executed for a valid token.

type ShowSupported Uses

type ShowSupported interface {
    Show(echo.Context) error

ShowSupported interface

type Token Uses

type Token struct {
    Footer string

Token represents a PASETO JSONToken with its footer.

type UpdateSupported Uses

type UpdateSupported interface {
    Update(echo.Context) error

UpdateSupported interface

Package middlewarex imports 8 packages (graph). Updated 2020-09-28. Refresh now. Tools for package owners.