Ir al contenido principal

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
nota

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étodoTipoDescripción
LoadPolicy()básicoCargar todas las reglas de política desde el almacenamiento
SavePolicy()básicoGuardar todas las reglas de política en el almacenamiento
AddPolicy()opcionalAñadir una regla de política al almacenamiento
RemovePolicy()opcionalEliminar una regla de política del almacenamiento
RemoveFilteredPolicy()opcionalEliminar 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)

idptypev0v1v2v3v4v5
1pdata2_admindata2read
2pdata2_admindata2write
3galiceadmin

Significado de cada columna

  • id: La clave primaria en la base de datos. No existe como parte de la política de casbin. La forma en que se genera depende del adaptador específico.

  • ptype: Corresponde a p, g, g2, etc.

  • v0-v5: Los nombres de las columnas no tienen un significado específico y corresponden a los valores en el policy 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