Watchers
Birden fazla Casbin uygulayıcı örneği arasında tutarlılığı sağlamak için etcd gibi dağıtık mesajlaşma sistemlerinin kullanımını destekliyoruz. Bu, kullanıcılarımızın büyük sayıda izin kontrolü isteğini işlemek için birden fazla Casbin uygulayıcıyı eşzamanlı kullanmalarına olanak tanır.
Politika depolama adaptörlerine benzer şekilde, izleyici kodunu ana kütüphaneye dahil etmiyoruz. Yeni bir mesajlaşma sistemi için herhangi bir destek, bir izleyici olarak uygulanmalıdır. Casbin izleyicilerinin tam listesi aşağıda verilmiştir. Yeni bir izleyici için herhangi bir üçüncü taraf katkısına açığız, lütfen bize bildirin ve bu listeye ekleyeceğiz:
- Go
- Java
- Node.js
- Python
- .NET
- Ruby
- PHP
Watcher | Type | Author | Description |
---|---|---|---|
PostgreSQL WatcherEx | Database | @IguteChung | WatcherEx for PostgreSQL |
Redis WatcherEx | KV store | Casbin | WatcherEx for Redis |
Redis Watcher | KV store | @billcobbler | Watcher for Redis |
Etcd Watcher | KV store | Casbin | Watcher for etcd |
TiKV Watcher | KV store | Casbin | Watcher for TiKV |
Kafka Watcher | Messaging system | @wgarunap | Watcher for Apache Kafka |
NATS Watcher | Messaging system | Soluto | Watcher for NATS |
ZooKeeper Watcher | Messaging system | Grepsr | Watcher for Apache ZooKeeper |
NATS, RabbitMQ, GCP Pub/Sub, AWS SNS & SQS, Kafka, InMemory | Messaging System | @rusenask | Watcher 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, InMemory | Messaging System | @bartventer | WatcherEx based on Go Cloud Dev Kit that works with leading cloud providers and self-hosted infrastructure |
RocketMQ Watcher | Messaging system | @fmyxyz | Watcher for Apache RocketMQ |
Watcher | Type | Author | Description |
---|---|---|---|
Etcd Adapter | KV store | @mapleafgo | Watcher for etcd |
Redis Watcher | KV store | Casbin | Watcher for Redis |
Lettuce-Based Redis Watcher | KV store | Casbin | Watcher for Redis based on Lettuce) |
Kafka Watcher | Messaging system | Casbin | Watcher for Apache Kafka |
Watcher | Type | Author | Description |
---|---|---|---|
Etcd Watcher | KV store | Casbin | Watcher for etcd |
Redis Watcher | KV store | Casbin | Watcher for Redis |
Pub/Sub Watcher | Messaging system | Casbin | Watcher for Google Cloud Pub/Sub |
MongoDB Change Streams Watcher | Database | Casbin | Watcher for MongoDB Change Streams |
Postgres Watcher | Database | @mcollina | Watcher for PostgreSQL |
Watcher | Type | Author | Description |
---|---|---|---|
Etcd Watcher | KV store | Casbin | Watcher for etcd |
Redis Watcher | KV store | Casbin | Watcher for Redis |
Redis Watcher | KV store | ScienceLogic | Watcher for Redis |
Redis Async Watcher | KV store | @kevinkelin | Watcher for Redis |
PostgreSQL Watcher | Database | Casbin | Watcher for PostgreSQL |
RabbitMQ Watcher | Messaging system | Casbin | Watcher for RabbitMQ |
Watcher | Type | Author | Description |
---|---|---|---|
Redis Watcher | KV store | @Sbou | Watcher for Redis |
Watcher | Type | Author | Description |
---|---|---|---|
Redis Watcher | KV store | CasbinRuby | Watcher for Redis |
RabbitMQ Watcher | Messaging system | CasbinRuby | Watcher for RabbitMQ |
Watcher | Type | Author | Description |
---|---|---|---|
Redis Watcher | KV store | @Tinywan | Watcher for Redis |
WatcherEx
Birden fazla örnek arasında artımlı senkronizasyonu desteklemek için WatcherEx
arayüzünü sağlıyoruz. Diğer örnekleri politika değişiklikleri durumunda bilgilendirebileceğini umuyoruz, ancak şu anda WatcherEx
için bir uygulama bulunmamaktadır. Bunu başarmak için dağıtıcı kullanmanızı öneririz.
Watcher
arayüzüne kıyasla, WatcherEx
alınan güncelleme eyleminin türünü ayırt edebilir, örneğin, AddPolicy
ve RemovePolicy
.
WatcherEx API'leri:
API | Açıklama |
---|---|
SetUpdateCallback(func(string)) hata | SetUpdateCallback, izleyici tarafından çağrılacak geri çağırma işlevini ayarlar; bu, DB'deki politikanın diğer örnekler tarafından değiştirilmesi durumunda gerçekleşir. Klasik bir geri çağırma örneği Enforcer.LoadPolicy()'dir. |
Update() hata | Update, politikalarını senkronize etmek için diğer örneklerin güncelleme geri çağırmasını çağırır. Genellikle DB'deki politikayı değiştirdikten sonra, Enforcer.SavePolicy(), Enforcer.AddPolicy(), Enforcer.RemovePolicy() vb. gibi işlemlerden sonra çağrılır. |
Kapat() | Close, izleyiciyi durdurur ve serbest bırakır, geri çağırma işlevi artık çağrılmayacaktır. |
UpdateForAddPolicy(sec, ptype string, params ...string) hata | UpdateForAddPolicy, diğer örneklerin güncelleme geri çağrısını çağırarak politikalarını senkronize eder. Bu, bir politika Enforcer.AddPolicy(), Enforcer.AddNamedPolicy(), Enforcer.AddGroupingPolicy() ve Enforcer.AddNamedGroupingPolicy() yoluyla eklendikten sonra çağrılır. |
UpdateForRemovePolicy(sec, ptype string, params ...string) error | UpdateForRemovePolicy, diğer örneklerin güncelleme geri çağrısını çağırarak politikalarını senkronize eder. Bu, bir politika Enforcer.RemovePolicy(), Enforcer.RemoveNamedPolicy(), Enforcer.RemoveGroupingPolicy() ve Enforcer.RemoveNamedGroupingPolicy() tarafından kaldırıldıktan sonra çağrılır. |
UpdateForRemoveFilteredPolicy(sec, ptype string, fieldIndex int, fieldValues ...string) error | UpdateForRemoveFilteredPolicy, diğer örneklerin güncelleme geri çağrısını çağırarak politikalarını senkronize eder. Bu, Enforcer.RemoveFilteredPolicy(), Enforcer.RemoveFilteredNamedPolicy(), Enforcer.RemoveFilteredGroupingPolicy() ve Enforcer.RemoveFilteredNamedGroupingPolicy() sonrasında çağrılır. |
UpdateForSavePolicy(model model.Model) error | UpdateForSavePolicy, diğer örneklerin güncelleme geri çağrısını çağırarak politikalarını senkronize eder. Enforcer.SavePolicy() sonrası çağrılır. |
UpdateForAddPolicies(sec string, ptype string, rules ...[]string) error | UpdateForAddPolicies, diğer örneklerin güncelleme geri aramasını çağırarak politikalarını senkronize eder. Enforcer.AddPolicies(), Enforcer.AddNamedPolicies(), Enforcer.AddGroupingPolicies() ve Enforcer.AddNamedGroupingPolicies() sonrası çağrılır. |
UpdateForRemovePolicies(sec string, ptype string, rules ...[]string) error | UpdateForRemovePolicies, diğer örneklerin güncelleme geri aramasını çağırarak politikalarını senkronize eder. Enforcer.RemovePolicies(), Enforcer.RemoveNamedPolicies(), Enforcer.RemoveGroupingPolicies() ve Enforcer.RemoveNamedGroupingPolicies() sonrası çağrılır. |