Policy Storage
Casbinでは、ポリシーストレージはアダプタとして実装されています。
.CSVファイルからポリシーを読み込む
これはCasbinを使用する最も一般的な方法です。 これは初心者にとって理解しやすく、Casbinチームに助けを求めるときに共有するのに便利です。
.CSV
ファイルexamples/rbac_policy.csvの内容は以下の通りです:
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
メモ
ファイルにカンマが含まれている場合は、それらをダブルクォートで囲む必要があります。 例えば:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
ファイルにカンマとダブルクォートが含まれている場合、フィールドをダブルクォートで囲み、埋め込まれたダブルクォートを二重にする必要があります。
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")
関連する問題:casbin#886
アダプタAPI
メソッド | タイプ | 説明 |
---|---|---|
LoadPolicy() | 基本 | ストレージからすべてのポリシールールを読み込む |
SavePolicy() | 基本 | すべてのポリシールールをストレージに保存する |
AddPolicy() | オプション | ストレージにポリシールールを追加する |
RemovePolicy() | オプション | ストレージからポリシールールを削除する |
RemoveFilteredPolicy() | オプション | フィルターに一致するポリシールールをストレージから削除する |
データベースストレージフォーマット
あなたのポリシーファイル
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin
対応するデータベース構造(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 |
各列の意味
id
: データベースの主キーです。casbin policy
の一部として存在しません。 生成方法は特定のアダプターによります。ptype
:p
、g
、g2
などに対応します。v0-v5
: 列名に特定の意味はなく、policy csv
の左から右への値に対応します。 列の数は、自分で定義する数によります。 理論的には、列の数は無限になることがありますが、一般的にはアダプターには6列が実装されています。 これがあなたにとって十分でない場合は、対応するアダプターリポジトリに問題を提出してください。
アダプターの詳細
アダプターAPIの使用とデータベーステーブル構造の設計についての詳細は、次をご覧ください:/docs/adapters