Zum Hauptinhalt springen

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
notiz

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

MethodeTypBeschreibung
LoadPolicy()GrundlegendLaden Sie alle Richtlinienregeln aus dem Speicher
SavePolicy()GrundlegendSpeichern Sie alle Richtlinienregeln im Speicher
AddPolicy()OptionalFügen Sie eine Richtlinienregel zum Speicher hinzu
RemovePolicy()OptionalEntfernen Sie eine Richtlinienregel aus dem Speicher
RemoveFilteredPolicy()OptionalEntfernen 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)

idptypev0v1v2v3v4v5
1pdata2_admindata2lesen
2pdata2_admindata2schreiben
3galiceadmin

Bedeutung jeder Spalte

  • id: Der Primärschlüssel in der Datenbank. Es existiert nicht als Teil der casbin policy. Die Art und Weise, wie es generiert wird, hängt vom spezifischen Adapter ab.

  • ptype: Es entspricht p, g, g2, usw.

  • v0-v5: Die Spaltennamen haben keine spezifische Bedeutung und entsprechen den Werten in der policy 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