Casbin

Casbin

  • Documents
  • API
  • Editeur
  • Plugins IDE
  • Authentification unique (SSO)
  • Forums
  • Aide
  • Blogue
  • Pricing
  • Contact Sales
  • Languages iconFrançais
    • English
    • 中文
    • 한국어
    • Русский
    • Deutsch
    • 日本語
    • Aider à traduire
  • GitHub

›Stockage

Les Bases

  • Aperçu
  • Commencer
  • Comment ça marche
  • Tutoriels

Modélisation

  • Modèles pris en charge
  • Syntaxe pour les modèles
  • Effet
  • Fonction
  • RBAC
  • RBAC avec motif
  • RBAC avec domaines
  • Casbin RBAC v.s. RBAC96
  • ABAC
  • Modèle de priorité
  • Super Admin

Stockage

  • Stockage du modèle
  • Stockage de la politique
  • Chargement du sous-ensemble de la politique

Extensions

  • Enforcers
  • Adaptateurs
  • Observateurs
  • Répartiteurs
  • Responsables des rôles
  • Moyens
  • Moyens GraphQL
  • Moyens natifs du Cloud

API

  • Aperçu de l'API
  • API de gestion
  • RBAC API
  • RBAC avec API Domains
  • API RoleManager
  • Autorisations des données

Utilisation avancée

  • Multi-threads
  • Benchmarks
  • Optimisation des performances
  • Autorisation de Kubernetes
  • Autorisation de maillage de service par l'envoyé

Gestion

  • Portail Admin
  • Service Casbin
  • Gestion des logs et des erreurs
  • Utilisation du frontend

Editeur

  • Éditeur en ligne
  • Plugins IDE

En savoir plus

  • Nos Adopteurs
  • Contribuer
  • Politique de confidentialité
  • Conditions d'utilisation
Translate

Stockage du modèle

Contrairement à la politique, le modèle peut être chargé seulement, il ne peut pas être sauvegardé. Parce que nous pensons que le modèle n'est pas un composant dynamique et ne devrait pas être modifié à l'exécution, donc nous n'implémentons pas une API pour sauvegarder le modèle dans un stockage.

Cependant, la bonne nouvelle est que nous fournissons trois moyens équivalents pour charger un modèle, soit statiquement ou dynamiquement :

Charger le modèle depuis un fichier .CONF

C'est la façon la plus courante d'utiliser Casbin. Il est facile à comprendre pour les débutants et pratique à partager lorsque vous demandez de l'aide à l'équipe de Casbin.

Le contenu du fichier .CONF exemples/rbac_model.conf:

[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act

[role_definition]
g = _, _

[policy_effect]
e = some(where (p.eft == allow))

[matchers]
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act

Ensuite, vous pouvez charger le fichier modèle en tant que :

e := casbin.NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")

Charger le modèle à partir du code

Le modèle peut être initialisé dynamiquement à partir du code au lieu d'utiliser le fichier .CONF . Voici un exemple pour le modèle RBAC :

import (
    "github.com/casbin/casbin/v2"
    "github.com/casbin/casbin/v2/model"
    "github.com/casbin/casbin/v2/persist/file-adapter"
)

// Initialise le modèle à partir du code Go.
m := model.NewModel()
m.AddDef("r", "r", "sub, obj, act")
m.AddDef("p", "p", "sub, obj, act")
m.AddDef("g", "g", "_, _")
m.AddDef("e", "e", "e", "some(où (p. ft == allow)")
m.AddDef("m", "m", "g(r.sub, p.sub) && r.obj == p. bj && r.act == p.act")

// Charge les règles de régulation depuis l'adaptateur de fichier .CSV.
// Remplacez-le par votre adaptateur pour éviter les fichiers.
a := fileadapter.NewAdapter("examples/rbac_policy.csv")

// Créer le responsable.
e := casbin.NewEnforcer(m, a)

Charger le modèle depuis une chaîne de caractères

Ou vous pouvez simplement charger tout le texte du modèle à partir d'une chaîne de caractères multi-lignes. Le point positif de cette façon est que vous n'avez pas besoin de maintenir un fichier modèle.

import (
    "github.com/casbin/casbin/v2"
    "github.com/casbin/casbin/v2/model"
)

// Initialise le modèle à partir d'une chaîne de caractères.
text :=
`
[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act

[role_definition]
g = _, _

[policy_effect]
e = quelque part (où (p. ft == allow))

[matchers]
m = g(r.sub, p. ub) && r.obj == p.obj && r.act == p. ct
`
m, _ := model.NewModelFromString(text)

// Charge les règles de régulation depuis l'adaptateur de fichier .CSV.
// Remplacez-le par votre adaptateur pour éviter les fichiers.
a := fileadapter.NewAdapter("examples/rbac_policy.csv")

// Créer le responsable.
e := casbin.NewEnforcer(m, a)
← Super AdminStockage de la politique →
  • Charger le modèle depuis un fichier .CONF
  • Charger le modèle à partir du code
  • Charger le modèle depuis une chaîne de caractères
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization