跳转至主要内容

Enforcers

Enforcer 是 Casbin 的主要接口:用它执行策略判定,以及读取或更新策略和模型。

可用的 enforcer​

以下按语言列出可用的 enforcer。如果你维护了第三方 enforcer,我们可以把它加到这个列表中。

执行器作者描述
执行器Casbin基础的 Enforcer 提供策略和模型操作的主要接口。详细的 API 信息见 Management API 文档。
CachedEnforcerCasbin在 Enforcer 基础上增加了判定结果的内存缓存。支持配置缓存过期时间,并通过读写锁保证线程安全的访问。用 EnableCache 开关缓存(默认开启)。其余 API 方法与基础的 Enforcer 相同。
DistributedEnforcerCasbin这个 enforcer 为分布式部署设计,包装了 SyncedEnforcer 以配合 dispatcher 使用。更多信息见 dispatcher 文档。
SyncedEnforcerCasbin在 Enforcer 基础上增加了同步访问,保证线程安全。
SyncedCachedEnforcerCasbin结合了 CachedEnforcer 的缓存功能和 SyncedEnforcer 的同步机制。
ContextEnforcerCasbin实现了 IEnforcerContext 接口,提供感知 context 的操作。目前支持适配器操作的 context,例如 LoadPolicyCtx()、SavePolicyCtx()、AddPolicyCtx() 和 RemovePolicyCtx()。这个接口为今后在更多 Casbin 操作中支持 context 预留了扩展空间。
SyncedContextEnforcerCasbinCombines the context-aware operations of ContextEnforcer with the synchronization of SyncedEnforcer. Use it instead of ContextEnforcer when the enforcer is shared by several goroutines. Available in versions after v3.11.0.

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.