Policy Storage
No Casbin, o armazenamento de política é implementado como um adaptador.
Carregando política de um arquivo .CSV
Esta é a maneira mais comum de usar o Casbin. É fácil de entender para iniciantes e conveniente para compartilhar quando você pede ajuda à equipe do Casbin.
O conteúdo do arquivo .CSV
examples/rbac_policy.csv é o seguinte:
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
Se o seu arquivo contém vírgulas, você deve envolvê-las em aspas duplas. Por exemplo:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
Se o seu arquivo contém vírgulas e aspas duplas, você deve envolver o campo em aspas duplas e duplicar quaisquer aspas duplas incorporadas.
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 do Adaptador
Método | Tipo | Descrição |
---|---|---|
LoadPolicy() | básico | Carregar todas as regras de política do armazenamento |
SavePolicy() | básico | Salvar todas as regras de política no armazenamento |
AddPolicy() | opcional | Adicionar uma regra de política ao armazenamento |
RemovePolicy() | opcional | Remover uma regra de política do armazenamento |
RemoveFilteredPolicy() | opcional | Remover regras de política que correspondam ao filtro do armazenamento |
Formato de Armazenamento de Banco de Dados
Seu arquivo de política
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin
Estrutura de banco de dados correspondente (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 coluna
id
: A chave primária no banco de dados. Não existe como parte dapolítica casbin
. A forma como é gerado depende do adaptador específico.ptype
: Corresponde ap
,g
,g2
, etc.v0-v5
: Os nomes das colunas não têm um significado específico e correspondem aos valores nopolicy csv
da esquerda para a direita. O número de colunas depende de quantas você define por si mesmo. Em teoria, pode haver um número infinito de colunas, mas geralmente apenas 6 colunas são implementadas no adaptador. Se isso não for suficiente para você, por favor, envie um problema para o repositório do adaptador correspondente.
Detalhes do Adaptador
Para mais detalhes sobre o uso da API do adaptador e o design da estrutura da tabela do banco de dados, por favor, visite: /docs/adapters