Spring Security ACL プラグインを使用してリソースを保護する Grails プロジェクトに取り組んでいます。このアプリケーションでは、リソースの所有者が他のユーザーにアクセス許可を委任することもできます。これらのユーザーは、バイラルな方法で他のユーザーにアクセス許可をさらに委任できます。
これは標準の Spring ACL API で問題なく動作しますが、新しい要件があります。
- 特定のアクセス許可を付与/委任したユーザーを追跡します [ユーザーは、特定のリソースに対する自分のアクセス許可と、そのリソースに対して委任した他のすべてのユーザーのアクセス許可を確認できる必要があります]。
- この権限をさらに委任できるかどうかを示すフラグを設定して、被付与者ごとにウイルスの委任を制御します。
ACL_ENTRY テーブルに 2 つの追加フィールド [1. grantee (SID) 、2. isDelegatable ] を追加することで、これらの要件をサポートする予定です。
Spring ACL コア機能のいずれかに影響するかどうかは疑問です。標準の Spring ACL API を使用してこれらのフィールドにアクセスするにはどうすればよいですか? カスタム Permission オブジェクトにキャストして、それらの拡張フィールドにアクセスできますか?
また、指定された開始時間枠と終了時間枠にのみ適用される時間ベースの有効期限付きのアクセス許可をサポートする予定です。hasPermission() メソッド呼び出しで付与されたアクセス許可の有効期間を考慮するように、この検証ロジックをどこに追加すればよいですか? ご意見をお聞かせください。