クラス DefaultPermissionGrantingStrategy

    • コンストラクターのサマリー

      コンストラクター  
      コンストラクター 説明
      DefaultPermissionGrantingStrategy​(AuditLogger auditLogger)
      リクエストされたアクセス許可の付与と拒否を記録するために使用されるロガーを使用してインスタンスを作成します。
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      protected booleanisGranted​(AccessControlEntry ace, Permission p)
      ACE パーミッションを指定されたパーミッションと比較します。
      booleanisGranted​(Acl acl, java.util.List<Permission> permission, java.util.List<Sid> sids, boolean administrativeMode)
      認可を決定します。
      • クラス java.lang.Object から継承されたメソッド

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • コンストラクターの詳細

      • DefaultPermissionGrantingStrategy

        public DefaultPermissionGrantingStrategy​(AuditLogger auditLogger)
        リクエストされたアクセス許可の付与と拒否を記録するために使用されるロガーを使用してインスタンスを作成します。
    • メソッドの詳細

      • isGranted

        public boolean isGranted​(Acl acl,
                                 java.util.List<Permission> permission,
                                 java.util.List<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 がスローされます。
        次で指定:
        インターフェース PermissionGrantingStrategyisGranted 
        パラメーター:
        permission - スキャンする正確な権限 (順序は重要です)
        sids - スキャンする正確な SID (順序は重要です)
        administrativeMode - true がクエリが管理目的であり、監査が行われないことを示している場合
        戻り値:
        権限の 1 つが付与されている場合は true、権限の 1 つが明確に取り消されている場合は false 
        例外:
        NotFoundException - 許可ビットマスクの 1 つと SID の組み合わせの正確な ACE が見つからなかった場合
      • isGranted

        protected boolean isGranted​(AccessControlEntry ace,
                                    Permission p)
        ACE パーミッションを指定されたパーミッションと比較します。デフォルトでは、パーミッションマスクを比較して完全に一致します。この戦略のサブクラスは、この動作をオーバーライドして、より高度な比較を実装できます。アクセスを許可する 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。