Policy Storage
Dans Casbin, le stockage de la politique est implémenté comme un adaptateur.
Chargement de la politique à partir d'un fichier .CSV
C'est la façon la plus courante d'utiliser Casbin. C'est facile à comprendre pour les débutants et pratique pour partager lorsque vous demandez de l'aide à l'équipe Casbin.
Le contenu du fichier .CSV
examples/rbac_policy.csv est le suivant :
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
Si votre fichier contient des virgules, vous devez les entourer de guillemets doubles. Par exemple :
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
Si votre fichier contient des virgules et des guillemets doubles, vous devez entourer le champ de guillemets doubles et doubler tous les guillemets doubles intégrés.
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")
Problème lié : casbin#886
API de l'adaptateur
Méthode | Type | Description |
---|---|---|
LoadPolicy() | basique | Charger toutes les règles de politique à partir du stockage |
SavePolicy() | basique | Enregistrer toutes les règles de politique dans le stockage |
AddPolicy() | optionnel | Ajouter une règle de politique au stockage |
RemovePolicy() | optionnel | Supprimer une règle de politique du stockage |
RemoveFilteredPolicy() | optionnel | Supprimer les règles de politique qui correspondent au filtre du stockage |
Format de stockage de la base de données
Votre fichier de politique
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin
Structure de base de données correspondante (comme MySQL)
id | ptype | v0 | v1 | v2 | v3 | v4 | v5 |
---|---|---|---|---|---|---|---|
1 | p | data2_admin | data2 | lire | |||
2 | p | data2_admin | data2 | écrire | |||
3 | g | alice | admin |
Signification de chaque colonne
id
: La clé primaire dans la base de données. Il n'existe pas en tant que partie de lapolitique casbin
. La façon dont il est généré dépend de l'adaptateur spécifique.ptype
: Il correspond àp
,g
,g2
, etc.v0-v5
: Les noms de colonnes n'ont pas de signification spécifique et correspondent aux valeurs dans lepolicy csv
de gauche à droite. Le nombre de colonnes dépend de combien vous en définissez vous-même. En théorie, il peut y avoir un nombre infini de colonnes, mais généralement seulement 6 colonnes sont implémentées dans l'adaptateur. Si cela ne vous suffit pas, veuillez soumettre un problème au dépôt correspondant de l'adaptateur.
Détails de l'adaptateur
Pour plus de détails sur l'utilisation de l'API de l'adaptateur et la conception de la structure de la table de base de données, veuillez visiter : /docs/adapters