Policy Storage
Casbin implements policy storage through adapters.
Caricamento della policy da un file .CSV
Loading from a CSV file is the standard approach. This method is straightforward for beginners and convenient when seeking help from the Casbin team.
Here's an example CSV file 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
When CSV fields contain commas, wrap them in double quotes:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
When fields contain both commas and double quotes, wrap the field in double quotes and escape embedded quotes by doubling them:
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")
Problema correlato: casbin#886
API dell'Adattatore
| Metodo | Tipo | Descrizione |
|---|---|---|
| LoadPolicy() | base | Carica tutte le regole di policy dallo storage |
| SalvaPolitica() | base | Salva tutte le regole di policy nella memoria di archiviazione |
| AggiungiPolitica() | opzionale | Aggiungi una regola di policy alla memoria di archiviazione |
| RimuoviPolitica() | opzionale | Rimuovi una regola di policy dalla memoria di archiviazione |
| RimuoviPoliticaFiltrata() | opzionale | Rimuovi regole di policy che corrispondono al filtro dalla memoria |
Formato di Storage del Database
Il tuo file di policy
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin
Struttura del database corrispondente (come MySQL)
| id | ptype | v0 | v1 | v2 | v3 | v4 | v5 |
|---|---|---|---|---|---|---|---|
| 1 | p | data2_admin | data2 | leggi | |||
| 2 | p | data2_admin | data2 | scrivi | |||
| 3 | g | alice | admin |
Significato di ogni colonna
-
id: Database primary key, not part of the Casbin policy. Generation method depends on the adapter implementation. -
ptype: Corresponds top,g,g2, etc. -
v0-v5: Generic column names that map to policy CSV values from left to right. The number of columns depends on your policy definition. Most adapters implement 6 columns, though theoretically unlimited columns are possible. Submit an issue to the adapter repository if you need more columns.
Dettagli dell'Adattatore
For more information about the adapter API and database structure design, see /docs/adapters.