package casbin

import "github.com/labstack/echo-contrib/casbin"

Index

Variables

var (
	// DefaultConfig is the default CasbinAuth middleware config.
	DefaultConfig = Config{
		Skipper: middleware.DefaultSkipper,
		UserGetter: func(c echo.Context) (string, error) {
			username, _, _ := c.Request().BasicAuth()
			return username, nil
		},
	}
)

Functions

func Middleware

func Middleware(ce *casbin.Enforcer) echo.MiddlewareFunc

Middleware returns a CasbinAuth middleware.

For valid credentials it calls the next handler. For missing or invalid credentials, it sends "401 - Unauthorized" response.

func MiddlewareWithConfig

func MiddlewareWithConfig(config Config) echo.MiddlewareFunc

MiddlewareWithConfig returns a CasbinAuth middleware with config. See `Middleware()`.

Types

type Config

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

	// Enforcer CasbinAuth main rule.
	// Required.
	Enforcer *casbin.Enforcer

	// Method to get the username - defaults to using basic auth
	UserGetter func(c echo.Context) (string, error)
}

Config defines the config for CasbinAuth middleware.

func (*Config) CheckPermission

func (a *Config) CheckPermission(c echo.Context) (bool, error)

CheckPermission checks the user/method/path combination from the request. Returns true (permission granted) or false (permission forbidden)

func (*Config) GetUserName

func (a *Config) GetUserName(c echo.Context) (string, error)

GetUserName gets the user name from the request. It calls the UserGetter field of the Config struct that allows the caller to customize user identification.

Source Files

casbin.go

Version
v0.10.0
Published
Apr 6, 2021
Platform
js/wasm
Imports
4 packages
Last checked
16 seconds ago

Tools for package owners.