Spring ACLについて読んだことがありますが、あまり有能ではないようです。例えば:
- タイプXのすべてのオブジェクトを権限Yでリストする方法はありません
- 新しいデプロイメントのスキーマを自動的に作成する方法はありません
ACLには何を使用していますか?ACLをドメインモデルから切り離すのは賢いですか?
Spring ACLについて読んだことがありますが、あまり有能ではないようです。例えば:
ACLには何を使用していますか?ACLをドメインモデルから切り離すのは賢いですか?
Spring ACLモデルを使用しようとしましたが、扱いにくいことがわかりました。最終的には、独自のはるかに単純な(ただし一般的ではない)実装をロールバックし、スキーマを処理するためのSpring Securityピース(accessDecisionManagers、Voters、Interceptors)を作成しました。お役に立てば幸いです。
ApacheShiroをご覧になることをお勧めします。
サイトから:Apache Shiroは、認証、承認、暗号化、およびセッション管理を実行する、強力で使いやすいJavaセキュリティフレームワークです。ShiroのわかりやすいAPIを使用すると、最小のモバイルアプリケーションから最大のWebおよびエンタープライズアプリケーションまで、あらゆるアプリケーションをすばやく簡単に保護できます。
多くの人は、Shiroが権限を処理する方法を好みます
persistence.xml
Hibernateを使用している場合は、これを次のように追加することで、dbに対してaclスキーマを自動的に実行できます。
<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
次のように、権限Yを持つタイプ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は、ページネーションの問題により、行のセキュリティに関して根本的に欠陥があります。データベースで行セキュリティがサポートされている場合は、ビューまたは組み込みツールを使用してデータベースで行セキュリティを実行する必要があります。