Перейти к основному содержимому

Command-line Tools

Casbin CLIs предоставляют API Casbin через командную строку, позволяя загружать модели и политики, выполнять проверки enforce и управлять политикой из вашей оболочки. Реализации доступны для 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, --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.