Bỏ qua đến nội dung chính

Watchers

Chúng tôi hỗ trợ việc sử dụng các hệ thống truyền tin phân tán như etcd để duy trì tính nhất quán giữa nhiều phiên bản Casbin enforcer. Điều này cho phép người dùng của chúng tôi sử dụng đồng thời nhiều Casbin enforcers để xử lý một số lượng lớn yêu cầu kiểm tra quyền.

Tương tự như các bộ điều hợp lưu trữ chính sách, chúng tôi không bao gồm mã người theo dõi trong thư viện chính. Bất kỳ hỗ trợ cho một hệ thống tin nhắn mới nên được triển khai như một trình theo dõi. Danh sách đầy đủ các trình theo dõi Casbin được cung cấp dưới đây. Chúng tôi hoan nghênh bất kỳ đóng góp của bên thứ ba cho một trình theo dõi mới, vui lòng thông báo cho chúng tôi và chúng tôi sẽ thêm nó vào danh sách này:

WatcherTypeAuthorDescription
PostgreSQL WatcherExDatabase@IguteChungWatcherEx for PostgreSQL
Redis WatcherExKV storeCasbinWatcherEx for Redis
Redis WatcherKV store@billcobblerWatcher for Redis
Etcd WatcherKV storeCasbinWatcher for etcd
TiKV WatcherKV storeCasbinWatcher for TiKV
Kafka WatcherMessaging system@wgarunapWatcher for Apache Kafka
NATS WatcherMessaging systemSolutoWatcher for NATS
ZooKeeper WatcherMessaging systemGrepsrWatcher for Apache ZooKeeper
NATS, RabbitMQ, GCP Pub/Sub, AWS SNS & SQS, Kafka, InMemoryMessaging System@rusenaskWatcher based on Go Cloud Dev Kit that works with leading cloud providers and self-hosted infrastructure
NATS, RabbitMQ, GCP Pub/Sub, AWS SNS & SQS, Kafka, InMemoryMessaging System@bartventerWatcherEx based on Go Cloud Dev Kit that works with leading cloud providers and self-hosted infrastructure
RocketMQ WatcherMessaging system@fmyxyzWatcher for Apache RocketMQ

WatcherEx

Để hỗ trợ đồng bộ hóa tăng dần giữa nhiều phiên bản, chúng tôi cung cấp giao diện WatcherEx. Chúng tôi hy vọng nó có thể thông báo cho các phiên bản khác khi chính sách thay đổi, nhưng hiện tại chưa có triển khai của WatcherEx. Chúng tôi khuyến nghị bạn sử dụng bộ phân phối để đạt được điều này.

So với giao diện Watcher, WatcherEx có thể phân biệt loại hành động cập nhật nào được nhận, ví dụ, AddPolicyRemovePolicy.

WatcherEx Apis:

APIMô tả
SetUpdateCallback(func(string)) errorSetUpdateCallback thiết lập hàm callback mà watcher sẽ gọi khi chính sách trong DB được thay đổi bởi các instance khác. Một callback cổ điển là Enforcer.LoadPolicy().
Update() errorUpdate gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó thường được gọi sau khi thay đổi chính sách trong DB, như Enforcer.SavePolicy(), Enforcer.AddPolicy(), Enforcer.RemovePolicy(), v.v.
Close()Close dừng và giải phóng watcher, hàm callback sẽ không được gọi nữa.
UpdateForAddPolicy(sec, ptype string, params ...string) errorUpdateForAddPolicy gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau khi một chính sách được thêm vào thông qua Enforcer.AddPolicy(), Enforcer.AddNamedPolicy(), Enforcer.AddGroupingPolicy() và Enforcer.AddNamedGroupingPolicy().
UpdateForRemovePolicy(sec, ptype string, params ...string) errorUpdateForRemovePolicy gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau khi một chính sách bị xóa bởi Enforcer.RemovePolicy(), Enforcer.RemoveNamedPolicy(), Enforcer.RemoveGroupingPolicy() và Enforcer.RemoveNamedGroupingPolicy().
UpdateForRemoveFilteredPolicy(sec, ptype string, fieldIndex int, fieldValues ...string) errorUpdateForRemoveFilteredPolicy gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau khi Enforcer.RemoveFilteredPolicy(), Enforcer.RemoveFilteredNamedPolicy(), Enforcer.RemoveFilteredGroupingPolicy() và Enforcer.RemoveFilteredNamedGroupingPolicy().
UpdateForSavePolicy(model model.Model) errorUpdateForSavePolicy gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau Enforcer.SavePolicy()
UpdateForAddPolicies(sec string, ptype string, rules ...[]string) errorUpdateForAddPolicies gọi callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau Enforcer.AddPolicies(), Enforcer.AddNamedPolicies(), Enforcer.AddGroupingPolicies() và Enforcer.AddNamedGroupingPolicies().
UpdateForRemovePolicies(sec string, ptype string, rules ...[]string) errorUpdateForRemovePolicies gọi callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau Enforcer.RemovePolicies(), Enforcer.RemoveNamedPolicies(), Enforcer.RemoveGroupingPolicies() và Enforcer.RemoveNamedGroupingPolicies().