Casbin

Casbin

  • 文档
  • API
  • 编辑器
  • IDE 插件
  • Single Sign-On (SSO)
  • 论坛
  • 帮助
  • 博客
  • Pricing
  • Contact Sales
  • Languages icon中文
    • English
    • 한국어
    • Русский
    • Français
    • Deutsch
    • 日本語
    • 参与翻译
  • GitHub

›Model

基础知识

  • 概述
  • 开始使用
  • 工作原理
  • 教程

Model

  • 支持的Models
  • Model语法
  • 效果器
  • 函数
  • 基于角色的访问控制
  • RBAC with Pattern
  • 域内RBAC
  • Casbin RBAC v.s. RBAC96
  • ABAC
  • 优先级模型
  • 超级管理员

存储

  • Model存储
  • Policy存储
  • 政策子集加载

扩充功能

  • Enforcers
  • 适配器
  • 观察者
  • 调度器
  • 角色管理器
  • 中间件
  • Graphql 中间件
  • 云端原生中间值

API

  • API 概述
  • 管理 API
  • RBAC API
  • 域内基于角色的访问控制 API
  • RoleManager API
  • 数据权限

高级用法

  • 多线程
  • 基准测试
  • 性能优化
  • Kubernetes的授权
  • 通过特使核准服务网格。

管理

  • 管理员门户
  • Casbin 服务
  • 日志 & 错误处理
  • 前端使用

编辑器

  • 在线编辑器
  • IDE 插件

更多

  • 本项目使用者
  • 贡献中
  • 隐私政策
  • 服务条款
Translate

效果器

Effect是一个policy rule的结果 Effector 是用于Casbin effector的API

MergeEffects()

MergeEffects将 enforcer 收集的所有匹配结果合并为一项决定。

例如:

Go
Effect, explainIndex, err = e.MergeEffects(expr, effects, matches, policyIndex, policyLength)

在本示例中:

  • Effect 是此函数合并的最后决定(初始参数为 indeterminate)。
  • explainIndex 是 eft 的索引,eft 的值可为 Allow 或者 Deny.(初始值是 -1)
  • err 用于检查effect是否受到支持。
  • expr 是被存储为 string 的policy_effects
  • effects 是 Effect 的数组,其中值可以为Allow, Indeterminate 或者 Deny
  • matchers 是显示结果是否符合策略的数组。
  • policyIndex 是模型中的策略索引。
  • policyLength 是策略的长度。

上面的代码说明了我们如何将参数传递到 MergeEffects 函数,并且该函数将根据 expr 处理效果和匹配。

要部署一个Effector,我们可以这样做:

Go
var e Effector
Effect, explainIndex, err = e.MergeEffects(expr, effects, matches, policyIndex, policyLength)

MergeEffects 表明如果 expr 可以匹配结果,也就是说 p_eft 是 `allow,我们就可以合并所有效果。 如果没有符合拒绝的规则,我们就允许这样做。

:::note 如果 expr` 不能匹配 `"priority(p_eft) || deny"` 以及 `policyIndex` 短于 `policyLength-1`, 它将 **短路** 中间的一些效果。 :::

← Model语法函数 →
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization