Policy Storage
Casbin'de, politika depolama bir adapter olarak uygulanmıştır.
Politika yükleme bir .CSV dosyasından
Casbin'i kullanmanın en yaygın yolu budur. Başlangıç seviyesi kullanıcılar için anlaşılması kolaydır ve Casbin ekibine yardım istediğinizde paylaşım açısından uygundur.
.CSV
dosyasının examples/rbac_policy.csv içeriği şu şekildedir:
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
Dosyanız virgüller içeriyorsa, bunları çift tırnak içine almalısınız. Örneğin:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
Dosyanız virgül ve çift tırnak içeriyorsa, alanı çift tırnak içine almalı ve gömülü çift tırnakları çiftlemeniz gerekir.
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")
İlgili konu: casbin#886
Adaptör API'si
Metod | Tip | Açıklama |
---|---|---|
LoadPolicy() | temel | Tüm politikaları depolamadan yükle |
SavePolicy() | temel | Tüm politika kurallarını depolamaya kaydet |
AddPolicy() | isteğe bağlı | Depolamaya bir politika kuralı ekle |
RemovePolicy() | isteğe bağlı | Depolamadan bir politika kuralını kaldır |
RemoveFilteredPolicy() | isteğe bağlı | Depodan filtreye uyan politikayı kuralını kaldır |
Veritabanı Depolama Biçimi
Politika dosyanız
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin
İlgili veritabanı yapısı (ör. MySQL)
id | ptype | v0 | v1 | v2 | v3 | v4 | v5 |
---|---|---|---|---|---|---|---|
1 | p | data2_admin | data2 | oku | |||
2 | p | data2_admin | data2 | yaz | |||
3 | g | alice | admin |
Her sütunun anlamı
id
: Veritabanındaki birincil anahtar.casbin politika
'nın bir parçası olarak mevcut değildir. Oluşturma şekli, belirli adaptöre göre değişir.ptype
:p
,g
,g2
vb. ile ilgilidir.v0-v5
: Sütun adlarının belirli bir anlamı yoktur vepolicy csv
'deki değerlerle soldan sağa doğru eşleşir. Sütun sayısı, kendi tanımlamanıza bağlıdır. Teoride, sonsuz sayıda sütun olabilir, ancak genellikle adaptörde sadece 6 sütun uygulanır. Eğer bu yeterli değilse, lütfen ilgili adaptör deposuna bir konu gönderin.
Adaptör Ayrıntıları
Adaptör API'si kullanımı ve veritabanı tablo yapısı tasarımı hakkında daha fazla ayrıntı için, lütfen şu adrese gidin: /docs/adapters