Policy Storage
En Casbin, el almacenamiento de políticas se implementa como un adaptador.
Cargando política desde un archivo .CSV
Esta es la forma más común de usar Casbin. Es fácil de entender para principiantes y conveniente para compartir cuando pides ayuda al equipo de Casbin.
El contenido del archivo .CSV
examples/rbac_policy.csv es el siguiente:
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
Si tu archivo contiene comas, debes envolverlas en comillas dobles. Por ejemplo:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
Si tu archivo contiene comas y comillas dobles, debes encerrar el campo en comillas dobles y duplicar cualquier comilla doble incrustada.
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")
Problema relacionado: casbin#886
API de Adaptador
Método | Tipo | Descripción |
---|---|---|
LoadPolicy() | básico | Cargar todas las reglas de política desde el almacenamiento |
SavePolicy() | básico | Guardar todas las reglas de política en el almacenamiento |
AddPolicy() | opcional | Añadir una regla de política al almacenamiento |
RemovePolicy() | opcional | Eliminar una regla de política del almacenamiento |
RemoveFilteredPolicy() | opcional | Eliminar reglas de política que coincidan con el filtro del almacenamiento |
Formato de Almacenamiento de Base de Datos
Tu archivo de política
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin
Estructura de base de datos correspondiente (como MySQL)
id | ptype | v0 | v1 | v2 | v3 | v4 | v5 |
---|---|---|---|---|---|---|---|
1 | p | data2_admin | data2 | read | |||
2 | p | data2_admin | data2 | write | |||
3 | g | alice | admin |
Significado de cada columna
id
: La clave primaria en la base de datos. No existe como parte de lapolítica de casbin
. La forma en que se genera depende del adaptador específico.ptype
: Corresponde ap
,g
,g2
, etc.v0-v5
: Los nombres de las columnas no tienen un significado específico y corresponden a los valores en elpolicy csv
de izquierda a derecha. El número de columnas depende de cuántas definas tú mismo. En teoría, puede haber un número infinito de columnas, pero generalmente solo se implementan 6 columnas en el adaptador. Si esto no es suficiente para ti, por favor envía un problema al repositorio del adaptador correspondiente.
Detalles del Adaptador
Para más detalles sobre el uso de la API del adaptador y el diseño de la estructura de la tabla de la base de datos, por favor visita: /docs/adapters