Langkau ke kandungan utama

Watchers

Kami menyokong penggunaan sistem pemesejan teragih seperti etcd untuk menjaga konsistensi antara pelbagai contoh penguat Casbin. Ini membolehkan pengguna kami menggunakan berbilang penguat Casbin secara serentak untuk mengendalikan sejumlah besar permintaan pemeriksaan kebenaran.

Serupa dengan penyesuai penyimpanan dasar, kami tidak memasukkan kod pemerhati dalam pustaka utama. Sebarang sokongan untuk sistem pemesejan baharu harus dilaksanakan sebagai pemerhati. Senarai lengkap pemerhati Casbin diberikan di bawah. Kami mengalu-alukan sumbangan pihak ketiga untuk pemerhati baharu, sila maklumkan kepada kami dan kami akan menambahkannya ke dalam senarai ini:

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

Untuk menyokong sinkronisasi inkremental antara pelbagai contoh, kami menyediakan antara muka PemerhatiEx. Kami berharap ia dapat memberitahu contoh lain apabila polisi berubah, tetapi sekarang belum ada pelaksanaan PemerhatiEx. Kami mengesyorkan anda menggunakan pengirim untuk mencapai ini.

Berbanding dengan antara muka Pemerhati, PemerhatiEx dapat membezakan jenis tindakan kemas kini yang diterima, misalnya, TambahPolisi dan AlihKeluarPolisi.

API PemerhatiEx:

APIPenerangan
SetUpdateCallback(func(string)) ralatSetUpdateCallback menetapkan fungsi panggilan balik yang akan dipanggil oleh penonton, apabila dasar dalam DB telah diubah oleh contoh lain. Panggilan balik klasik adalah Enforcer.LoadPolicy().
Kemaskini() ralatKemaskini memanggil panggilan balik kemas kini contoh lain untuk menyegerakkan dasar mereka. Ia biasanya dipanggil selepas mengubah dasar dalam DB, seperti Enforcer.SavePolicy(), Enforcer.AddPolicy(), Enforcer.RemovePolicy(), dll.
Tutup()Tutup menghentikan dan melepaskan penonton, fungsi panggilan balik tidak akan dipanggil lagi.
UpdateForAddPolicy(sec, ptype string, params ...string) ralatUpdateForAddPolicy memanggil panggilan balik kemas kini daripada contoh-contoh lain untuk menyegerakkan dasar mereka. Ia dipanggil selepas dasar ditambahkan melalui Enforcer.AddPolicy(), Enforcer.AddNamedPolicy(), Enforcer.AddGroupingPolicy() dan Enforcer.AddNamedGroupingPolicy().
UpdateForRemovePolicy(sec, ptype string, params ...string) errorUpdateForRemovePolicy memanggil panggilan balik kemas kini daripada contoh-contoh lain untuk menyegerakkan dasar mereka. Ia dipanggil selepas dasar dikeluarkan oleh Enforcer.RemovePolicy(), Enforcer.RemoveNamedPolicy(), Enforcer.RemoveGroupingPolicy() dan Enforcer.RemoveNamedGroupingPolicy().
UpdateForRemoveFilteredPolicy(sec, ptype string, fieldIndex int, fieldValues ...string) errorUpdateForRemoveFilteredPolicy memanggil panggilan balik kemas kini daripada contoh-contoh lain untuk menyegerakkan dasar mereka. Ia dipanggil selepas Enforcer.RemoveFilteredPolicy(), Enforcer.RemoveFilteredNamedPolicy(), Enforcer.RemoveFilteredGroupingPolicy() dan Enforcer.RemoveFilteredNamedGroupingPolicy().
UpdateForSavePolicy(model model.Model) errorUpdateForSavePolicy memanggil panggilan balik kemas kini daripada contoh-contoh lain untuk menyegerakkan dasar mereka. Ia dipanggil selepas Enforcer.SavePolicy()
UpdateForAddPolicies(sec string, ptype string, rules ...[]string) ralatUpdateForAddPolicies memanggil panggilan balik kemas kini daripada contoh-contoh lain untuk menyegerakkan dasar mereka. Ia dipanggil selepas Enforcer.AddPolicies(), Enforcer.AddNamedPolicies(), Enforcer.AddGroupingPolicies() dan Enforcer.AddNamedGroupingPolicies().
UpdateForRemovePolicies(sec string, ptype string, rules ...[]string) ralatUpdateForRemovePolicies memanggil panggilan balik kemas kini daripada contoh-contoh lain untuk menyegerakkan dasar mereka. Ia dipanggil selepas Enforcer.RemovePolicies(), Enforcer.RemoveNamedPolicies(), Enforcer.RemoveGroupingPolicies() dan Enforcer.RemoveNamedGroupingPolicies().