Vai al contenuto principale

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
nota

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

MetodoTipoDescrizione
LoadPolicy()baseCarica tutte le regole di policy dallo storage
SalvaPolitica()baseSalva tutte le regole di policy nella memoria di archiviazione
AggiungiPolitica()opzionaleAggiungi una regola di policy alla memoria di archiviazione
RimuoviPolitica()opzionaleRimuovi una regola di policy dalla memoria di archiviazione
RimuoviPoliticaFiltrata()opzionaleRimuovi 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)

idptypev0v1v2v3v4v5
1pdata2_admindata2leggi
2pdata2_admindata2scrivi
3galiceadmin

Significato di ogni colonna

  • id: La chiave primaria nel database. Non esiste come parte della politica di casbin. Il modo in cui viene generato dipende dall'adattatore specifico.

  • ptype: Corrisponde a p, g, g2, ecc.

  • v0-v5: I nomi delle colonne non hanno un significato specifico e corrispondono ai valori nel policy 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