命令行工具
Casbin CLI 在命令行中提供 Casbin API,你可以在 shell 中加载模型和策略、执行判定检查、管理策略。提供 Go、Java、Node.js、Python、.NET 和 Rust 的实现。
安装
Go(casbin-go-cli)
-
克隆仓库:
git clone https://github.com/apache/casbin-go-cli.git -
构建 CLI:
cd casbin-go-cli
go build -o casbin
Rust(casbin-rust-cli)
从 crates.io 安装
cargo install casbin-rust-cli
从源码构建
-
克隆仓库:
git clone https://github.com/casbin-rs/casbin-rust-cli.git -
以 release 优化方式构建:
cd casbin-rust-cli
cargo build --release
Java(casbin-java-cli)
-
克隆仓库:
git clone https://github.com/jcasbin/casbin-java-cli.git -
用 Maven 构建(JAR 文件会生成在
target目录中):cd casbin-java-cli
mvn clean install
Python(casbin-python-cli)
-
克隆仓库:
git clone https://github.com/apache/casbin-python-cli.git -
安装依赖:
cd casbin-python-cli
pip install -r requirements.txt -
运行 CLI:
python -m casbin_cli.client [command] [options] [args]
.NET(casbin-dotnet-cli)
-
克隆仓库:
git clone https://github.com/casbin-net/casbin-dotnet-cli.git -
构建项目:
cd casbin-dotnet-cli
dotnet build
用法
选项
| 选项 | 描述 | 必填 | 说明 |
|---|---|---|---|
-m, --model | 模型文件路径或模型定义文本 | 是 | 用引号括起来,用 | 作为换行分隔符 |
-p, --policy | 策略文件路径或策略定义文本 | 是 | 用引号括起来,用 | 作为换行分隔符 |
-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.