問題タブ [spring-security-acl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-security - 春のセキュリティでフィールドに acl を実装する
オブジェクト フィールドに spring acl を実装したいと思います。
誰かが私がそれのために何を実装しなければならないか考えていますか?
たとえば、購入オブジェクトがあります。
admin_role にはすべてのフィールドを読み取り、secretary_role にはユーザー名とアドレス フィールドのみを読み取りたい
java - Spring ACLは優れたACL実装ですか?
Spring ACLについて読んだことがありますが、あまり有能ではないようです。例えば:
- タイプXのすべてのオブジェクトを権限Yでリストする方法はありません
- 新しいデプロイメントのスキーマを自動的に作成する方法はありません
ACLには何を使用していますか?ACLをドメインモデルから切り離すのは賢いですか?
spring - Spring ACL 有権者の構成
そのため、プロジェクトに単純な ACL の例を実装しようとしましたが、すべてが正常に機能します。私は次の構成を持っています:
現在、プロジェクトには約 30 個のエンティティがあり、それぞれに少なくとも 4 つのロール (作成、読み取り、書き込み、管理) を定義したいと考えています。エンティティとロールのペアごとに Bean を定義する必要がありますか? これを行う簡単な方法はありますか?を使用して投票者に特定のクラスを設定する必要がありますか?
このプロジェクトでは、新しい機能と新しいエンティティと役割も期待されます。構成ファイルで新しいエンティティとロールをそれぞれ構成する必要がありますか、またはこれを行うためのより一般的な方法はありますか? いくつかの例やドキュメントを教えてください。
現在、Spring Security 3.1 を使用しています。
ありがとう
PS私はすでにSpring Security Forumに質問を投稿しましたが、これも試してみると思いました
spring-security - 春の ACL に関する質問
新しい Spring Security 3.1 を使用していますが、Spring Security ACL についていくつか質問があります。
オブジェクトがあり、そのオブジェクトの ACL を定義したいとします。ACL エントリを作成し、それをユーザーのグループに割り当てたいと考えています。ロール (
GrantedAuthoritySid
) ではなく、1 人のユーザー (PrincipalSid
) ではなく、ユーザーのグループです。例を求めてあらゆる場所を調査しましたが、見つけることができませんでした。このシナリオで役立つ例またはクラスを教えてください。そこで、最初のオブジェクトに関連する 2 番目のオブジェクトを作成したいと思います (同じユーザーに適用する必要があります)。これは、たとえば、最初のオブジェクトのステータス更新である可能性があります。私の
GrantedAuthority
またPrincipal
はは、2 番目のオブジェクトのアクセス許可のマスクが異なります。また、最初のオブジェクトには 2GrantedAuthorities
(2ACLEntries
) があり、ステータス更新には 1 つしかありません。ACL 継承を使用すると、最初のオブジェクトの権限セットが 2 番目のオブジェクトの権限セットと一致しません。GrantedAuthorities
私の質問は、異なる許可マスクを保持しながら、2 つのオブジェクトの for が自動的に一貫性を保つように、これをモデル化するにはどうすればよいかということです。1 つのアイデアは、複合パターンを使用して、(ユーザーにリンクするのではなく) 最初のオブジェクトのGrantedAuthority
に 2 番目のオブジェクトをリンクすることです。GrantedAuthority
ACL には所有者がいます。所有者は何のためですか?ACL または ACL エントリに対してどのような役割を果たしますか?
java - Spring セキュリティ ACL を使用しない Spring オブジェクト レベルのアクセス許可
プロジェクトにオブジェクト レベルのアクセス許可を実装したいと考えています。より具体的には、User、School、および Student クラスがあります。各生徒は 1 つの学校に所属します。システムの各ユーザーも学校に所属します。したがって、システムの各ユーザーは、自分の学校に所属する生徒にのみアクセスできます。
spring security ACL の助けを借りてこれを実行できることを多くの場所で読みました。これには、データベースに多数の ACL_ テーブルを作成し (間違っていなければ 4 つ)、オブジェクトごとに特定の権限を持たせる必要があります。したがって、 ACL_ENTRY にはオブジェクトと同じ数の行があります。
オブジェクトは、誰がアクセス権を持っていて、誰がアクセス権を持っていないかを既に知っているため、これは私のアプリケーションにとってやり過ぎです。私が欲しいのは、更新するオブジェクトが特定のユーザーに属しているかどうかを確認し、それを許可するかどうかを返すことです。同じことが選択にも当てはまります - 特定のユーザーに属するオブジェクトを返すだけです。
私が理解していることから、これはデータアクセスレイヤーで行う必要があります-他の場所で行うと、クエリで問題が発生します(すべてのオブジェクトを1つずつチェックして、それらが特定のユーザー)。私のデータ アクセスには、JpaRepository を拡張するインターフェイスを備えたspring-dataを使用しています。保存/選択のための独自のメソッドを追加できますか? これらのメソッドから User オブジェクトを取得するにはどうすればよいですか? 私が始めるのを助けるために誰かが似たようなことをしましたか?
google-app-engine - App Engine データストアの Spring セキュリティ ACL
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 を実行した経験のある人はいますか? ヒントをいただければ幸いです。
spring - Spring Security ACL を使用して既存のオブジェクト ID にアクセス許可を付与する
私は Spring Security ACL 実装を使用していますが、既存のオブジェクト ID のロール/ユーザー (セキュリティ ID - SID) に新しいアクセス許可を付与する最良の方法は何か疑問に思っています。
たとえば、次のようなものがあるとします (ほとんどの場合、主キーとその他の列を省略し、読みやすくするために文字列値で参照するだけです)。
- ACL_SID:
ROLE_TEST
- ACL_CLASS:
test_class
- ACL_OBJECT_IDENTITY:
- ID:
1
- object_id_class:
test_class
- object_id_identity:
someObjectInstanceId
- ID:
- ACL_ENTRY:
- acl_object_identity:
1
- シド:
ROLE_TEST
- mask:
CREATE
(これはデータベース内の整数になります)
- acl_object_identity:
ここで、 class の将来および既存のすべてのオブジェクトのWRITE
役割に権限を付与したいと考えています。今後作成されるオブジェクトについては、役割の権限を確認して付与するだけです。しかし、既存のオブジェクトはどうですか?ROLE_TEST
test_class
Spring はこれを簡単に行うための何かを提供していますか、それとも次のことを行うために独自のカスタム コードを作成する必要がありますか?
- 新しいアクセス許可を付与するロール/ユーザーの SID を持つすべての ACL エントリを取得し、適切な を持つオブジェクト ID を参照します
object_id_class
。 - 結果ごとに、新しいアクセス許可を反映するマスクを除いて、結果と同じ新しい ACL エントリを作成します。
spring - Spring Security ACL アノテーションでアノテーションが付けられたメソッドを単体テストする最良の方法は何ですか?
次のようなメソッドがあるとします。
認証の「読み取り」権限をモック/付与/拒否する簡単な方法はありますか?
hibernate - Spring Security、Hibernate、および行レベルの ACL を使用してページ分割するにはどうすればよいですか
Spring Security について読んでいて、Spring ACL を休止状態とページネーションと一緒に使用できるかどうか疑問に思っています。結果の SQL は確かに恐ろしいものですが、自動生成される可能性があります。データベースが再帰クエリ評価をサポートしている場合は、階層型 ACL を使用することもできます。
ポスト フィルターの使用は、ページネーションを壊し、データベース内の ACL フィルタリングと比較して不要なオーバーヘッドになるため、解決策にはなりません。
だから私は実際にソリューションを構築するためのピースを持っています。誰かがすでにそれを行っているかどうか知りたいです。
リンク:
- 2012年からの同様の質問 回答なし
- この質問に関するリンクリスト