Command-line Tools
Casbin CLIs предоставляют API Casbin через командную строку, позволяя загружать модели и политики, выполнять проверки enforce и управлять политикой из вашей оболочки. Реализации доступны для 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-cligo 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 -
Выполните сборку с оптимизациями для релиза:
cd casbin-rust-clicargo build --release
Java (casbin-java-cli)
-
Клонируйте репозиторий:
git clone https://github.com/jcasbin/casbin-java-cli.git -
Выполните сборку с помощью Maven (JAR-файл будет создан в директории
target):cd casbin-java-climvn clean install
Python (casbin-python-cli)
-
Клонируйте репозиторий:
git clone https://github.com/apache/casbin-python-cli.git -
Установите необходимые зависимости:
cd casbin-python-clipip 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-clidotnet build
Использование
Параметры
| Параметр | Описание | Обязательный | Примечания |
|---|---|---|---|
-m, --model | Путь к файлу 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.