Richtlinien-Speicher
In Casbin wird der Richtlinienspeicher als -Adapter implementiert.
Richtlinien aus .CSV-Datei laden
Dies ist die häufigste Art Casbin zu benutzen. Es ist einfach für Anfänger zu verstehen und praktisch, wenn Sie das Casbin Team um Hilfe bitten.
Der Inhalt der .CSV
Datei examples/rbac_policy.csv:
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
note
Wenn Ihre Datei Kommas,
enthält, sollten Sie sie in doppelte Anführungszeichen einbinden, zum Beispiel:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect ("data1,data2" should be a total)
Wenn Ihre Datei Kommas,
und doppelte Anführungszeichen"
enthält, sollten Sie das Feld in doppelte Anführungszeichen einfügen und alle eingebetteten doppelten Anführungszeichen verdoppeln.
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, Daten, "r.act in ("get", "post")" --incorrect (sollte "" verwenden, um "") zu escapen
Ähnliches Problem: casbin#886
Adapter-API
Methode | Typ | Beschreibung |
---|---|---|
LoadPolicy() | einfach | Lade alle Regeln aus dem Speicher |
SavePolicy() | einfach | Alle Richtlinien-Regeln im Speicher speichern |
AddPolicy() | optional | Richtlinien-Regel zum Speicher hinzufügen |
RemovePolicy() | optional | Eine Richtlinien-Regel vom Speicher entfernen |
FilteredPolicy() entfernen | optional | Regeln, die dem Filter entsprechen, vom Speicher entfernen |
Datenbankspeicherformat
deine Richtlinien-Datei
p, data2_admin, data2, lesen
p, data2_admin, data2, schreiben
g, alice, admin
entsprechende Datenbankstruktur (wie MySQL)
id | ptype | v0 | v1 | v2 | v3 | v4 | v5 |
---|---|---|---|---|---|---|---|
1 | p | data2_admin | data2 | gelesen | |||
2 | p | data2_admin | data2 | schreiben | |||
3 | g | alice | admin |
Die Bedeutung jeder Spalte
id
: Es existiert nur in der Datenbank als Primärschlüssel. Nicht als Teil derCasbin-Richtlinie
. Die Art und Weise, wie sie generiert wird, hängt vom jeweiligen Adapter abptype
: Es entsprichtp
,g
,g2
, etc.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. In der Regel werden aber nur 6 Spalten in Adapter implementiert. Falls es für Sie nicht ausreicht, schicken Sie bitte ein Problem in das entsprechende Adapter-Repository.
Adapter-Details
Weitere Details zur Verwendung von Adapterapi und Datenbanktabellen-Struktur finden Sie unter: /docs/de/adapters