跳到主要内容

**Command-line Tools**

Casbin CLIs 从命令行暴露 Casbin API,以便您可以加载模型和策略,运行 enforce 检查,并从 shell 管理策略。有适用于 Go、Java、Node.js、Python、.NET 和 Rust 的实现。

安装​

Go (casbin-go-cli)​

  1. 克隆仓库:

    git clone https://github.com/apache/casbin-go-cli.git
  2. 构建 CLI:

    cd casbin-go-cli
    go build -o casbin

Rust (casbin-rust-cli)​

从 crates.io 安装​

cargo install casbin-rust-cli

从源码构建​

  1. 克隆仓库:

    git clone https://github.com/casbin-rs/casbin-rust-cli.git
  2. 使用发布优化进行构建:

    cd casbin-rust-cli
    cargo build --release

Java (casbin-java-cli)​

  1. 克隆仓库:

    git clone https://github.com/jcasbin/casbin-java-cli.git
  2. 使用 Maven 构建(JAR 文件将在 target 目录中创建):

    cd casbin-java-cli
    mvn clean install

Python (casbin-python-cli)​

  1. 克隆仓库:

    git clone https://github.com/apache/casbin-python-cli.git
  2. 安装所需依赖项:

    cd casbin-python-cli
    pip install -r requirements.txt
  3. 运行 CLI:

    python -m casbin_cli.client [command] [options] [args]

.NET (casbin-dotnet-cli)​

  1. 克隆仓库:

    git clone https://github.com/casbin-net/casbin-dotnet-cli.git
  2. 构建项目:

    cd casbin-dotnet-cli
    dotnet build

使用次数​

选项​

选项描述必需备注
-m, --modelModel 文件路径或模型定义文本是用引号包裹,并使用 | 作为行分隔符
-p, --policyPolicy 文件路径或策略定义文本是用引号包裹,并使用 | 作为行分隔符
-e, --enforce评估访问权限否将参数用引号包裹
-ex, --enforceEx评估权限并显示匹配的策略否将参数用引号包裹
-AF, --addFuntion注册自定义函数(仅限 casbin-java-cli)否用引号包裹,并使用 | 作为行分隔符
-ap, --addPolicy向策略文件追加一条策略规则(仅限 casbin-java-cli)否将参数用引号包裹
-rp, --removePolicy从策略文件中删除一条策略规则(仅限 casbin-java-cli)否将参数用引号包裹

开始使用​

  • 验证 Alice 是否可以读取 data1:

    ./casbin enforce -m "examples/rbac_model.conf" -p "examples/rbac_policy.csv" "alice" "data1" "read"

    {"allow":true,"explain":null}

    ./casbin enforce -m "[request_definition]\nr = sub, obj, act\n[policy_definition]\np = sub, obj, act\n[role_definition]\ng = _, _\n[policy_effect]\ne = some(where (p.eft == allow))\n[matchers]\nm = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act" -p "p, alice, data1, read\np, bob, data2, write\np, data2_admin, data2, read\np, data2_admin, data2, write\ng, alice, data2_admin" "alice" "data1" "read"

    {"allow":true,"explain":null}

  • 验证 Alice 是否可以写入 data2 并显示授予该权限的策略:

    ./casbin enforceEx -m "examples/rbac_model.conf" -p "examples/rbac_policy.csv" "alice" "data2" "write"

    {"allow":true,"explain":["data2_admin","data2","write"]}

  • 向策略文件添加新策略规则(仅限 casbin-java-cli):

    ./casbin addPolicy -m "examples/rbac_model.conf" -p "examples/rbac_policy.csv" "alice" "data2" "write"

    {"allow":true,"explain":null}

  • 从策略文件移除策略规则(仅限 casbin-java-cli):

    ./casbin removePolicy -m "examples/rbac_model.conf" -p "examples/rbac_policy.csv" "alice" "data2" "write"

    {"allow":true,"explain":null}

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