Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Usage

Simple example:

package main

import (
	"log/slog"

	"github.com/casbin/casbin/v2"
	casbin_mw "github.com/labstack/echo-contrib/v5/casbin"
	"github.com/labstack/echo/v5"
)

func main() {
	e := echo.New()

	// Mediate the access for every request
	enforcer, err := casbin.NewEnforcer("auth_model.conf", "auth_policy.csv")
	if err != nil {
		slog.Error("failed to load casbin enforcer", "error", err)
	}
	e.Use(casbin_mw.Middleware(enforcer))

	if err := e.Start(":1323"); err != nil {
		slog.Error("failed to start server", "error", err)
	}
}

Advanced example:

package main

import (
	"log/slog"

	"github.com/casbin/casbin/v2"
	casbin_mw "github.com/labstack/echo-contrib/v5/casbin"
	"github.com/labstack/echo/v5"
)

func main() {
	ce, _ := casbin.NewEnforcer("auth_model.conf", "")
	ce.AddRoleForUser("alice", "admin")
	ce.AddPolicy(...)

	e := echo.New()

	e.Use(casbin_mw.Middleware(ce))

	if err := e.Start(":1323"); err != nil {
		slog.Error("failed to start server", "error", err)
	}
}

API Reference

See API Overview.