App Engine Datastore と組み合わせて Spring Security ACL インフラストラクチャを使用しています。低レベルの Datastore API は使用せず、Objectify フレームワークを使用して Datatstore にアクセスします。Spring Security ACL モデル (RDBMS に適している) を、スキーマのないオブジェクト指向のデータストアにより適したモデルに変換する必要があります。これまでのところ、以下に説明する 2 つのエンティティに行き着きました。
Acl
- id:ロング
- domainObject: キー (先祖/親)
- エントリ: List<AclEntry> (埋め込み)
- 所有者: 文字列
AclEntry
- sid: 文字列
- プリンシパル: ブール値
- マスク: int
- 付与: ブール値
ほとんどの場合、ACL は (ACL id ではなく) 既知の domainObject によって取得されるため、指定された ACL の祖先としてドメイン オブジェクトを使用することに決めました。 ACL の場合に重要な最新データ
問題は、そのようなモデルは、「指定されたユーザー (sid) がアクセスできる [エンティティ] は?」のようなクエリには十分ではないということです。ここで、[entities] はプロジェクト、グループなどの使用可能な任意のエンティティにすることができます...
特に App Engine Datastore で NoSQL データベースで Spring Security ACL を実行した経験のある人はいますか? ヒントをいただければ幸いです。