authz

package
v1.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 11, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package authz provides handlers to enable ACL, RBAC, ABAC authorization support. Simple Usage:

import(
	"github.com/goasana/asana"
	"github.com/goasana/asana/plugins/authz"
	"github.com/casbin/casbin"
)

func main(){
	// mediate the access for every request
	asana.InsertFilter("*", asana.BeforeRouter, authz.NewAuthorizer(casbin.NewEnforcer("authz_model.conf", "authz_policy.csv")))
	asana.Run()
}

Advanced Usage:

func main(){
	e := casbin.NewEnforcer("authz_model.conf", "")
	e.AddRoleForUser("alice", "admin")
	e.AddPolicy(...)

	asana.InsertFilter("*", asana.BeforeRouter, authz.NewAuthorizer(e))
	asana.Run()
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAuthorizer

func NewAuthorizer(e *casbin.Enforcer) asana.FilterFunc

NewAuthorizer returns the authorizer. Use a casbin enforcer as input

Types

type BasicAuthorizer

type BasicAuthorizer struct {
	// contains filtered or unexported fields
}

BasicAuthorizer stores the casbin handler

func (*BasicAuthorizer) CheckPermission

func (a *BasicAuthorizer) CheckPermission(r *http.Request) bool

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

func (*BasicAuthorizer) GetUserName

func (a *BasicAuthorizer) GetUserName(r *http.Request) string

GetUserName gets the user name from the request. Currently, only HTTP basic authentication is supported

func (*BasicAuthorizer) RequirePermission

func (a *BasicAuthorizer) RequirePermission(w http.ResponseWriter)

RequirePermission returns the 403 Forbidden to the client

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL