Skip to main content

Casbin Auth

CasbinAuth adapts any value with this method:

Enforce(args ...any) (bool, error)

That keeps Zinc free of a hard Casbin dependency while still working with Casbin enforcers.

app.Use(middleware.CasbinAuth(enforcer, middleware.CasbinSubjectFromBasicAuth()))

By default Zinc enforces:

enforcer.Enforce(subject, c.Path(), c.Method())

Use CasbinAuthWithConfig to choose a different subject, object, or action.

app.Use(middleware.CasbinAuthWithConfig(middleware.CasbinAuthConfig{
Enforcer: enforcer,
Subject: middleware.CasbinSubjectFromContext(userKey),
Object: middleware.CasbinObjectPath(),
Action: middleware.CasbinActionMethod(),
}))