質問

私はSpring ACLについて読んだことがありますが、それはあまり有能ではないようです。例えば:

  1. 許可を得てタイプXのすべてのオブジェクトをリストする方法はありませんy
  2. 新しい展開のスキーマを自動的に作成する方法はありません

ACLに何を使用していますか? ACLをドメインモデルから切り離すことは賢いですか?

役に立ちましたか?

解決

Spring ACLモデルを使用しようとしましたが、扱いにくいと感じました。最終的には、独自の、よりシンプルな(一般的ではない)、実装を行い、スプリングセキュリティピース(AccessDecisionManagers、有権者、インターセプター)を作成してスキーマを処理しました。それが役立つことを願っています。

他のヒント

あなたは見たいかもしれません アパッチ・シロ.

サイトから:Apache Shiroは、認証、承認、暗号化、およびセッション管理を実行する強力で使いやすいJavaセキュリティフレームワークです。 Shiroの理解しやすいAPIを使用すると、最小のモバイルアプリケーションから最大のWebおよびエンタープライズアプリケーションまで、あらゆるアプリケーションをすばやく簡単に保護できます。

多くの人がシロの方法を好みます 処理許可

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を実行する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top