Наблюдатели
Мы поддерживаем использование распределенных систем обмена сообщениями, таких как и т.д., для поддержания связи между несколькими информер Casbin. Таким образом, наши пользователи могут одновременно использовать несколько караулов для обработки большого количества запросов проверки разрешений.
Подобно адаптерам хранения политики, мы не ставим код наблюдателя в основную библиотеку. Любая поддержка новой системы обмена сообщениями должна осуществляться в качестве наблюдателя. Полный список наблюдателей Casbin представлен ниже. Любой вклад сторонних наблюдателей приветствуется, пожалуйста, сообщите нам и я поместим его в этот список:)
- 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 , который работает с облачными провайдерами и самоуправляющейся инфраструктурой |
Наблюдатель RocketMQ | Система сообщений | @fmyxyz | Наблюдатель от Apache RocketMQ |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Адаптер Etcd | Магазин KV | @mapleafgo | Наблюдатель для и т.д. |
Наблюдатель Redis | Магазин KV | Casbin | Наблюдатель для Redis |
Кафка Наблюдатель | Система сообщений | Casbin | Наблюдатель от Apache Kafka |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Etcd | Магазин KV | Casbin | Наблюдатель для и т.д. |
Наблюдатель Redis | Магазин KV | Casbin | Наблюдатель для Redis |
Наблюдатель | Система сообщений | Casbin | Наблюдатель для Google Cloud Pub/Sub |
MongoDB Change Streams Watcher | База данных | Casbin | Watcher for MongoDB Change Streams |
Наблюдатель Postgres | База данных | Matteo Collina | Наблюдатель от PostgreSQL |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Etcd | Магазин KV | Casbin | Наблюдатель для и т.д. |
Наблюдатель Redis | Магазин KV | Casbin | Наблюдатель для Redis |
Redis Watcher | KV store | Логика | Watcher for Redis |
Наблюдатель PostgreSQL | Database | Casbin | Наблюдатель от PostgreSQL |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Redis | Магазин KV | @Sbou | Наблюдатель для Redis |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Redis | Магазин KV | CasbinRuby | Наблюдатель для Redis |
Наблюдатель RabbitMQ | Система сообщений | CasbinRuby | Наблюдатель за RabbitMQ |
Наблюдатель | Тип | Автор | Описание |
---|---|---|---|
Наблюдатель Redis | Магазин KV | @Tinywan | Наблюдатель для 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(). |