Aller au contenu principal

**Command-line Tools**

Les Casbin CLIs exposent l'API Casbin depuis la ligne de commande afin que vous puissiez charger des modèles et des politiques, effectuer des vérifications d'application et gérer la politique depuis votre shell. Des implémentations sont disponibles pour Go, Java, Node.js, Python, .NET et Rust.

Installation​

Go (casbin-go-cli)​

  1. Cloner le dépôt :

    git clone https://github.com/apache/casbin-go-cli.git
  2. Compiler le CLI :

    cd casbin-go-cli
    go build -o casbin

Rust (casbin-rust-cli)​

Installation depuis crates.io​

cargo install casbin-rust-cli

Compiler à partir des sources​

  1. Cloner le dépôt :

    git clone https://github.com/casbin-rs/casbin-rust-cli.git
  2. Compiler avec les optimisations release :

    cd casbin-rust-cli
    cargo build --release

Java (casbin-java-cli)​

  1. Cloner le dépôt :

    git clone https://github.com/jcasbin/casbin-java-cli.git
  2. Compiler avec Maven (le fichier JAR sera créé dans le répertoire target) :

    cd casbin-java-cli
    mvn clean install

Python (casbin-python-cli)​

  1. Clonez le dépôt :

    git clone https://github.com/apache/casbin-python-cli.git
  2. Installez les dépendances requises :

    cd casbin-python-cli
    pip install -r requirements.txt
  3. Exécutez le CLI :

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

.NET (casbin-dotnet-cli)​

  1. Clonez le dépôt :

    git clone https://github.com/casbin-net/casbin-dotnet-cli.git
  2. Compilez le projet :

    cd casbin-dotnet-cli
    dotnet build

Utilisation​

Options d'inscription​

OptionDescriptionRequisNotes
-m, --modelChemin du fichier de modèle ou texte de définition du modèleOuiEntourez de guillemets et utilisez | comme séparateur de ligne
-p, --policyChemin du fichier de politique ou texte de définition de la politiqueOuiEntourez de guillemets et utilisez | comme séparateur de ligne
-e, --enforceÉvalue les permissions d'accèsNonEntourez les arguments de guillemets
-ex, --enforceExÉvalue les permissions et affiche la politique correspondanteNonEntourez les arguments de guillemets
-AF, --addFuntionEnregistre une fonction personnalisée (casbin-java-cli uniquement)NonEntourez de guillemets et utilisez | comme séparateur de ligne
-ap, --addPolicyAjoute une règle de politique au fichier de politique (casbin-java-cli uniquement)NonEntourez les arguments de guillemets
-rp, --removePolicySupprime une règle de politique du fichier de politique (casbin-java-cli uniquement)NonEntourez les arguments de guillemets

Commencer​

  • Vérifiez si Alice peut lire 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}

  • Vérifiez si Alice peut écrire dans data2 et afficher quelle politique accorde la permission :

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

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

  • Ajoutez une nouvelle règle de politique au fichier de politique (casbin-java-cli uniquement) :

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

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

  • Supprimez une règle de politique du fichier de politique (casbin-java-cli uniquement) :

    ./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.