クラス DefaultPermissionGrantingStrategy
java.lang.ObjectSE
org.springframework.security.acls.domain.DefaultPermissionGrantingStrategy
- 実装されているすべてのインターフェース:
- PermissionGrantingStrategy
public class DefaultPermissionGrantingStrategy
extends ObjectSE
implements PermissionGrantingStrategy
- コンストラクターの概要コンストラクターコンストラクター説明- DefaultPermissionGrantingStrategy- (AuditLogger auditLogger) リクエストされたアクセス許可の付与と拒否を記録するために使用されるロガーを使用してインスタンスを作成します。
- メソッドのサマリー修飾子と型メソッド説明- protected boolean- isGranted- (AccessControlEntry ace, Permission p) ACE パーミッションを指定されたパーミッションと比較します。- boolean認可を決定します。
- コンストラクターの詳細- DefaultPermissionGrantingStrategyリクエストされたアクセス許可の付与と拒否を記録するために使用されるロガーを使用してインスタンスを作成します。
 
- メソッドの詳細- isGrantedpublic boolean isGranted- (Acl acl, ListSE<Permission> permission, ListSE<Sid> sids, boolean administrativeMode) throws NotFoundException 認可を決定します。- permission引数と- sid引数の順序は非常に重要です。このメソッドは、指定された順序で各- permissionを反復処理します。反復ごとに、すべての- sidが、提示された順序で検討されます。次に、その- permission:sidの組み合わせに直接一致する最初の- AccessControlEntryオブジェクトの検索が実行されます。最初の完全一致が見つかると(つまり、現在検索されている SID と検索されている正確なアクセス認可ビットマスクを持つ ACE)、その ACE の認可または拒否フラグが優先されます。ACE がアクセスを認可するように指定している場合、メソッドは- trueを返します。ACE がアクセスを拒否するように指定した場合、ループは停止し、次の- permission反復が実行されます。各パーミッションがアクセスを拒否することを示している場合、最初に見つかった拒否 ACE が失敗の理由と見なされます(最初に見つかった一致であるため、常にではありませんが、最も論理的に変更が必要なものです)。パーミッションに対して一致する ACE がまったく見つからなかった場合、親 ACL が試行されます(親が存在し、- Acl.isEntriesInheriting()が- trueである場合)。親 ACL は、その親もスキャンします。最終的に一致する ACE が見つからない場合、- NotFoundExceptionがスローされ、呼び出し元はパーミッションチェックの処理方法を決定する必要があります。同様に、メソッドに提示された SID 引数のいずれかが ACL によってロードされなかった場合、- UnloadedSidExceptionがスローされます。- 次で指定:
-  インターフェース PermissionGrantingStrategyのisGranted
- パラメーター:
- permission- スキャンする正確な権限 (順序は重要です)
- sids- スキャンする正確な SID (順序は重要です)
- administrativeMode-- trueがクエリが管理目的であり、監査が行われないことを示している場合
- 戻り値:
-  権限の 1 つが付与されている場合は true、権限の 1 つが明確に取り消されている場合はfalse
- 例外:
- NotFoundException- 許可ビットマスクの 1 つと SID の組み合わせの正確な ACE が見つからなかった場合
 
- isGrantedACE パーミッションを指定されたパーミッションと比較します。デフォルトでは、パーミッションマスクを比較して完全に一致します。この戦略のサブクラスは、この動作をオーバーライドして、より高度な比較を実装できます。アクセスを許可する ACE のビット単位の比較。- if (ace.isGranting() && p.getMask() != 0) { return (ace.getPermission().getMask() & p.getMask()) != 0; } else { return ace.getPermission().getMask() == p.getMask(); }- パラメーター:
- ace- マスクを保持している Acl からの ACE。
- p- チェックしている許可。
- 戻り値:
- それぞれのマスクが等しいと見なされる場合は true。