Awesome Open Source
Awesome Open Source

Chi-authz Build Status Coverage Status GoDoc

Chi-authz is an authorization middleware for Chi, it's based on https://awesomeopensource.com/project/casbin/casbin.

Installation

go get github.com/casbin/chi-authz

Simple Example

package main

import (
	"net/http"

	"github.com/casbin/chi-authz"
	"github.com/casbin/casbin"
	"github.com/go-chi/chi"
)

func main() {
	router := chi.NewRouter()

	// load the casbin model and policy from files, database is also supported.
	e := casbin.NewEnforcer("authz_model.conf", "authz_policy.csv")
	router.Use(authz.Authorizer(e))

	// define your handler, this is just an example to return HTTP 200 for any requests.
	// the access that is denied by authz will return HTTP 403 error.
	router.HandleFunc("/*", func(w http.ResponseWriter, r *http.Request) {
		w.WriteHeader(200)
	})
}

Getting Help

License

This project is under MIT License. See the LICENSE file for the full license text.

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Golang (164,214
Authorization (5,889
Acl (2,441
Rbac (1,383
Access Control (1,111
Casbin (298
Abac (190
Chi (53