Policy Storage
In Casbin wird der Richtlinienspeicher als Adapter implementiert.
Laden der Richtlinie aus einer .CSV-Datei
Dies ist die gebräuchlichste Art, Casbin zu verwenden. Es ist leicht zu verstehen für Anfänger und praktisch zum Teilen, wenn Sie das Casbin-Team um Hilfe bitten.
Der Inhalt der .CSV
-Datei examples/rbac_policy.csv ist wie folgt:
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
Wenn Ihre Datei Kommas enthält, sollten Sie diese in doppelte Anführungszeichen setzen. Zum Beispiel:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
Wenn Ihre Datei Kommas und doppelte Anführungszeichen enthält, sollten Sie das Feld in doppelte Anführungszeichen setzen und alle eingebetteten doppelten Anführungszeichen verdoppeln.
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")
Verwandtes Problem: casbin#886
Adapter API
Methode | Typ | Beschreibung |
---|---|---|
LoadPolicy() | Grundlegend | Laden Sie alle Richtlinienregeln aus dem Speicher |
SavePolicy() | Grundlegend | Speichern Sie alle Richtlinienregeln im Speicher |
AddPolicy() | Optional | Fügen Sie eine Richtlinienregel zum Speicher hinzu |
RemovePolicy() | Optional | Entfernen Sie eine Richtlinienregel aus dem Speicher |
RemoveFilteredPolicy() | Optional | Entfernen Sie Richtlinienregeln, die dem Filter entsprechen, aus dem Speicher |
Datenbankspeicherformat
Ihre Richtliniendatei
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin
Entsprechende Datenbankstruktur (wie MySQL)
id | ptype | v0 | v1 | v2 | v3 | v4 | v5 |
---|---|---|---|---|---|---|---|
1 | p | data2_admin | data2 | lesen | |||
2 | p | data2_admin | data2 | schreiben | |||
3 | g | alice | admin |
Bedeutung jeder Spalte
id
: Der Primärschlüssel in der Datenbank. Es existiert nicht als Teil dercasbin policy
. Die Art und Weise, wie es generiert wird, hängt vom spezifischen Adapter ab.ptype
: Es entsprichtp
,g
,g2
, usw.v0-v5
: Die Spaltennamen haben keine spezifische Bedeutung und entsprechen den Werten in derpolicy csv
von links nach rechts. Die Anzahl der Spalten hängt davon ab, wie viele Sie selbst definieren. Theoretisch kann es eine unendliche Anzahl von Spalten geben, aber in der Regel werden im Adapter nur 6 Spalten implementiert. Wenn das für Sie nicht ausreicht, reichen Sie bitte ein Problem im entsprechenden Adapter-Repository ein.
Adapter Details
Für weitere Details zur Verwendung der Adapter-API und zum Design der Datenbanktabellenstruktur besuchen Sie bitte: /docs/adapters