Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RequirePermission ¶
func RequirePermission(manager *Manager, resource, action string) gin.HandlerFunc
RequirePermission 创建需要特定权限的中间件 用于在路由中直接指定需要的权限
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder Casbin 中间件构建器
type DefaultResourceMatcher ¶
type DefaultResourceMatcher struct{}
DefaultResourceMatcher 默认资源匹配器 直接使用路径和方法作为资源标识
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager Casbin 管理器
func (*Manager) GetEnforcer ¶
GetEnforcer 获取 Casbin Enforcer(用于高级用法)
func (*Manager) LoadPolicies ¶
LoadPolicies 加载策略
type Options ¶
type Options struct {
// ModelPath Casbin 模型文件路径
// 如果为空,使用默认的 RBAC 模型
ModelPath string
// PolicyProvider 策略提供者
// 必须实现,用于加载策略规则
PolicyProvider PolicyProvider
// UserRoleProvider 用户角色提供者
// 可选,如果不提供,将从 Session 的 Claims 中获取角色
UserRoleProvider UserRoleProvider
// ResourceMatcher 资源匹配器
// 可选,默认使用 DefaultResourceMatcher
ResourceMatcher ResourceMatcher
// AutoLoad 是否自动加载策略
// 如果为 true,每次请求都会重新加载策略(不推荐,性能差)
// 如果为 false,需要手动调用 RefreshPolicies() 刷新策略
AutoLoad bool
// CacheEnabled 是否启用策略缓存
// 如果为 true,策略会被缓存,需要手动刷新
CacheEnabled bool
}
Options Casbin 配置选项
type PathResourceMatcher ¶
type PathResourceMatcher struct{}
PathResourceMatcher 路径资源匹配器 只使用路径作为资源标识,忽略方法
type Permission ¶
type Permission struct {
Resource string // 资源路径,如 /api/users
Action string // 操作,如 GET, POST, DELETE, PUT
}
Permission 权限定义
type PolicyProvider ¶
type PolicyProvider interface {
// LoadPolicies 加载所有策略规则
// 返回策略规则列表,格式:["p, admin, /api/users, GET", "p, user, /api/profile, GET"]
// 或者返回空切片,表示从其他方式加载策略
LoadPolicies(ctx context.Context) ([]string, error)
// LoadRolePolicies 加载角色继承关系
// 返回角色继承规则列表,格式:["g, alice, admin", "g, bob, user"]
LoadRolePolicies(ctx context.Context) ([]string, error)
}
PolicyProvider 策略提供者接口 引用项目需要实现此接口,提供策略数据
type ResourceMatcher ¶
type ResourceMatcher interface {
// Match 将请求路径和方法转换为资源标识
// path: 请求路径,如 /api/users/123
// method: HTTP 方法,如 GET, POST
// 返回资源标识,如 /api/users
Match(path string, method string) string
}
ResourceMatcher 资源匹配器接口 用于将请求路径和方法转换为 Casbin 资源格式
Click to show internal directories.
Click to hide internal directories.