Policy Storage
In Casbin, il policy storage è implementato come un adattatore.
Caricamento della policy da un file .CSV
Questo è il modo più comune per utilizzare Casbin. È facile da capire per i principianti e conveniente per la condivisione quando si chiede aiuto al team di Casbin.
Il contenuto del file .CSV examples/rbac_policy.csv è il seguente:
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
Se il tuo file contiene virgole, dovresti racchiuderle tra virgolette doppie. Ad esempio:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
Se il tuo file contiene virgole e virgolette doppie, dovresti racchiudere il campo in virgolette doppie e raddoppiare eventuali virgolette doppie incorporate.
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: La chiave primaria nel database. Non esiste come parte dellapolitica di casbin. Il modo in cui viene generato dipende dall'adattatore specifico.ptype: Corrisponde ap,g,g2, ecc.v0-v5: I nomi delle colonne non hanno un significato specifico e corrispondono ai valori nelpolicy csvda sinistra a destra. Il numero di colonne dipende da quante ne definisci tu stesso. In teoria, ci può essere un numero infinito di colonne, ma generalmente solo 6 colonne sono implementate nell'adattatore. Se questo non è sufficiente per te, ti preghiamo di inviare un problema al repository dell'adattatore corrispondente.
Dettagli dell'Adattatore
Per maggiori dettagli sull'uso dell'API dell'adattatore e sulla progettazione della struttura delle tabelle del database, visita: /docs/adapters