Policy Storage
Casbin의 정책 저장은 adapters에 의해 처리됩니다. 인포서는 어댑터 API를 통해 정책을 로드하고 (선택적으로) 저장합니다.
CSV 파일에서 정책 로드하기
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을 참조하세요.
Adapter API
| Method | Type | Description |
|---|---|---|
| LoadPolicy() | basic | 스토리지에서 모든 정책 규칙을 로드합니다. |
| SavePolicy() | basic | 모든 정책 규칙을 스토리지에 저장합니다. |
| AddPolicy() | optional | 스토리지에 정책 규칙을 추가합니다. |
| RemovePolicy() | optional | 스토리지에서 정책 규칙을 제거합니다. |
| RemoveFilteredPolicy() | optional | 필터와 일치하는 정책 규칙을 스토리지에서 제거합니다. |
데이터베이스 저장 형식
예시 정책 (CSV)
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 |
열(Column)
- id — 기본 키 (어댑터별로 다름; Casbin 정책의 일부가 아님).
- ptype — 정책 유형:
p,g,g2등. - v0–v5 — 순서대로 나열된 정책 필드 (CSV에서 왼쪽에서 오른쪽으로). 대부분의 어댑터는 6개의 열을 사용하며, 일부는 더 많은 열을 지원합니다. 추가 필드가 필요한 경우 어댑터 문서를 확인하세요.
전체 어댑터 API 및 설계 세부 사항은 Adapters를 참조하세요.
Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.