Наблюдатели
We support the use of distributed messaging systems like etcd to maintain consistency between multiple Casbin enforcer instances. This allows our users to concurrently use multiple Casbin enforcers to handle a large number of permission checking requests.
Similar to policy storage adapters, we do not include watcher code in the main library. Любая поддержка новой системы обмена сообщениями должна осуществляться в качестве наблюдателя. A complete list of Casbin watchers is provided below. We welcome any third-party contributions for a new watcher, please inform us and we will add it to this list:)
- Go
- Java
- Node.js
- Python
- .NET
- Ruby
- PHP
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
PostgreSQL WatcherEx | Database | @IguteChung | WatcherEx for PostgreSQL |
Redis WatcherEx | Магазин KV | Casbin | WatcherEx for Redis |
Наблюдатель Redis | Магазин KV | @billcobbler | Наблюдатель для Redis |
Наблюдатель Etcd | Магазин KV | Casbin | Наблюдатель для и т.д. |
Наблюдатель TiKV | Магазин KV | Casbin | Наблюдатель от TiKV |
Кафка Наблюдатель | Система сообщений | @wgarunap | Наблюдатель от Apache Kafka |
Наблюдатель NATS | Система сообщений | Солюто | Наблюдатель для NATS |
Наблюдатель ZooKeeper | Система сообщений | Grepsr | Наблюдатель от Apache ZooKeeper |
NATS, RabbitMQ, GCP Pub/Sub, AWS SNS & SQS, Kafka, InMemory | Система сообщений | @rusenask | Наблюдатель основан на Go Cloud Dev Kit , который работает с облачными провайдерами и самоуправляющейся инфраструктурой |
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 | Система сообщений | @fmyxyz | Наблюдатель от Apache RocketMQ |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Адаптер Etcd | Магазин KV | @mapleafgo | Наблюдатель для и т.д. |
Наблюдатель Redis | KV store | Casbin | Наблюдатель для Redis |
Lettuce-Based Redis Watcher | Магазин KV | Casbin | Watcher for Redis based on Lettuce) |
Кафка Наблюдатель | Система сообщений | Casbin | Наблюдатель от Apache Kafka |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Etcd | KV store | Casbin | Наблюдатель для и т.д. |
Наблюдатель Redis | Магазин KV | Casbin | Наблюдатель для Redis |
Наблюдатель | Система сообщений | Casbin | Наблюдатель для Google Cloud Pub/Sub |
MongoDB Change Streams Watcher | База данных | Casbin | Watcher for MongoDB Change Streams |
Наблюдатель Postgres | Database | @mcollina | Наблюдатель от PostgreSQL |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Etcd | KV store | Casbin | Наблюдатель для и т.д. |
Наблюдатель Redis | Магазин KV | Casbin | Наблюдатель для Redis |
Redis Watcher | Магазин KV | Логика | Watcher for Redis |
Redis Async Watcher | KV store | @kevinkelin | Watcher for Redis |
Наблюдатель PostgreSQL | Database | Casbin | Наблюдатель от PostgreSQL |
Наблюдатель RabbitMQ | Система сообщений | Casbin | Наблюдатель за RabbitMQ |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Redis | Магазин KV | @Sbou | Наблюдатель для Redis |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Redis | KV store | CasbinRuby | Наблюдатель для Redis |
RabbitMQ Watcher | Messaging system | CasbinRuby | Watcher for RabbitMQ |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Redis | KV store | @Tinywan | Watcher for Redis |
Наблюдатель Экс
Чтобы поддерживать инкрементальную синхронизацию между несколькими экземплярами, мы предоставляем интерфейс WatcherEx
. Мы надеемся, что он может уведомить другие случаи изменения политики, но в настоящее время реализация WatcherEx
не осуществляется. Мы рекомендуем использовать диспетчер для достижения этой цели.
По сравнению с интерфейсом Watcher
, WatcherEx
может определить, какой тип действия по обновлению получен, e. ., AddPolicy
и RemovePolicy
.
Наблюдатель Апс:
API | Описание |
---|---|
SetUpdateCallback(func(string)) error | SetUpdateCallback sets the callback function that the watcher will call, when the policy in DB has been changed by other instances. Классический обратный вызов Enforcer.LoadPolicy(). |
Update() error | Update calls the update callback of other instances to synchronize their policy. Обычно это вызывается после изменения политики в БД, например Enforcer.SavePolicy(), Enforcer.AddPolicy(), Enforcer.RemovePolicy() и т.д. |
Close() | Close stops and releases the watcher, the callback function will not be called any more. |
UpdateForAddPolicy(sec, ptype string, params ...string) error | UpdateForAddPolicy calls the update callback of other instances to synchronize their policy. Он вызывается после добавления политики через Enforcer.AddPolicy(), Enforcer.AddNamedPolicy(), Enforcer.AddGroupingPolicy() и Enforcer.AddNamedGroupingPolicy(). |
UpdateForRemovePolicy(sec, ptype string, params ...string) error | UPdateForRemovePolicy calls the update callback of other instances to synchronize their policy. Он вызывается после удаления политики Enforcer.RemovePolicy(), Enforcer.RemoveNamedPolicy(), Enforcer.RemoveGroupingPolicy() и Enforcer.RemoveNamedGroupingPolicy(). |
UpdateForRemoveFilteredPolicy(sec, ptype string, fieldIndex int, fieldValues ...string) error | UpdateForRemoveFilteredPolicy calls the update callback of other instances to synchronize their policy. Он вызывается после Enforcer.RemoveFilteredPolicy(), Enforcer.RemoveFilteredNamedPolicy(), Enforcer.RemoveFilteredGroupingPolicy() и Enforcer.RemoveFilteredNamedGroupingPolicy(). |
UpdateForSavePolicy(model model.Model) error | UpdateForSavePolicy calls the update callback of other instances to synchronize their policy. Вызывается после Enforcer.SavePolicy() |
UpdateForAddPolicies(sec string, ptype string, rules ...[]string) error | UpdateForAddPolicies calls the update callback of other instances to synchronize their policy. Он вызывается после Enforcer.AddPolicies(), Enforcer.AddNamedPolicies(), Enforcer.AddGroupingPolicies() и Enforcer.AddNamedGroupingPolicies(). |
UpdateForRemovePolicies(sec string, ptype string, rules ...[]string) error | UpdateForRemovePolicies calls the update callback of other instances to synchronize their policy. Он вызывается после Enforcer.RemovePolicies(), Enforcer.RemoveNamedPolicies(), Enforcer.RemoveGroupingPolicies() и Enforcer.RemoveNamedGroupingPolicies(). |