Spring ACLは優れたACL実装ですか? [閉まっている
-
09-10-2019 - |
質問
私はSpring ACLについて読んだことがありますが、それはあまり有能ではないようです。例えば:
- 許可を得てタイプXのすべてのオブジェクトをリストする方法はありませんy
- 新しい展開のスキーマを自動的に作成する方法はありません
ACLに何を使用していますか? ACLをドメインモデルから切り離すことは賢いですか?
解決
Spring ACLモデルを使用しようとしましたが、扱いにくいと感じました。最終的には、独自の、よりシンプルな(一般的ではない)、実装を行い、スプリングセキュリティピース(AccessDecisionManagers、有権者、インターセプター)を作成してスキーマを処理しました。それが役立つことを願っています。
他のヒント
Hibernateを使用している場合、これを追加することにより、DBに対してACLスキーマを自動的に実行できます persistence.xml
:
<property name="hibernate.hbm2ddl.import_files" value="/import.sql"/>
<property name="hibernate.hbm2ddl.import_files_sql_extractor" value="org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor" />
にスキーマを追加します /resources/import.sql
このような許可を得て、タイプXのすべてのオブジェクトをリストできます。
select
*
from acl_entry a
join acl_object_identity b on a.acl_object_identity = b.id
join acl_class c on b.object_id_class = c.id
where
class = X
and mask = Y
ただし、Spring Security ACLには、ページネーションの問題により、列のセキュリティの観点から根本的に欠陥があります。 DBがサポートしている場合は、ビューまたはビルトインツールを使用して、データベースでRow Securityを実行する必要があります。
所属していません StackOverflow