メインコンテンツにスキップ

Dispatchers

ディスパッチャーは、ポリシーの増分変更を同期する方法を提供します。 それらは、すべてのエンフォーサーインスタンスの一貫性を保証するために、Raftのような一貫性アルゴリズムに基づいているべきです。 ディスパッチャーを通じて、ユーザーは簡単に分散クラスタを設立することができます。

ディスパッチャーの方法は二つの部分に分けられます。 最初の部分はCasbinと組み合わせた方法です。 これらの方法はCasbin内部で呼び出されるべきです。 ユーザーはCasbin自体が提供するより完全なAPIを使用することができます。

もう一つの部分はディスパッチャー自体によって定義された方法で、ディスパッチャーの初期化方法や、動的メンバーシップや設定変更など、異なるアルゴリズムが提供する異なる機能を含みます。

メモ

ディスパッチャーがランタイムでのCasbinエンフォーサーの一貫性のみを保証することを望んでいます。 したがって、初期化中にポリシーが一貫していない場合、ディスパッチャーは正常に動作しません。 ユーザーは、ディスパッチャーを使用する前に、すべてのインスタンスの状態が一貫していることを確認する必要があります。

以下にCasbinディスパッチャーの完全なリストを提供します。 新しいディスパッチャーに関する第三者からの貢献はいつでも歓迎します。 私たちにお知らせください、そして私たちはそれをこのリストに追加します。

AdapterTypeAuthorDescription
Hashicorp Raft DispatcherRaftCasbinA dispatcher based on Hashicorp Raft
KDKYG/casbin-dispatcherRaft@KDKYGA dispatcher based on Hashicorp Raft

DistributedEnforcer

DistributedEnforcerはディスパッチャーのためにSyncedEnforcerをラップします。

    e, _ := casbin.NewDistributedEnforcer("examples/basic_model.conf", "examples/basic_policy.csv")