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 csv
da 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