クラス BasicLookupStrategy

  • 実装されたすべてのインターフェース:
    LookupStrategy

    public class BasicLookupStrategy
    extends java.lang.Object
    implements LookupStrategy
    ANSI SQL と互換性のある方法でルックアップを実行します。

    NB: この実装は、正規化されたデータベースと標準の ANSI SQL 機能の制約内で、合理的に最適化されたルックアップを提供しようとします。これらの制約のいずれかを犠牲にする場合(たとえば、階層クエリやマテリアルビューなどの特定のデータベース機能を使用する場合、または正規化を減らす場合)、パフォーマンスが向上する可能性があります。このような状況では、独自のカスタム LookupStrategy を提供する必要があります。このクラスは、将来のリリースで変更される可能性があり、サブクラス化がサポートされていないため、サブクラス化をサポートしていません。

    実行される SQL クエリは 2 つあり、1 つは lookupPrimaryKeys メソッドで、もう 1 つは lookupObjectIdentities です。これらは同じ select 句と "order by" 句から作成され、それぞれ異なる where 句を使用しています。カスタムスキーマまたは列名を使用するには、これらの各 SQL 句をカスタマイズできますが、それらは互いに一致している必要があり、デフォルト値によって生成される予想される結果セットとも一致している必要があります。

    • フィールドの詳細

      • DEFAULT_ACL_CLASS_ID_SELECT_CLAUSE

        public static final java.lang.String DEFAULT_ACL_CLASS_ID_SELECT_CLAUSE
        関連事項:
        定数フィールド値
    • コンストラクターの詳細

      • BasicLookupStrategy

        public BasicLookupStrategy​(javax.sql.DataSource dataSource,
                                   AclCache aclCache,
                                   AclAuthorizationStrategy aclAuthorizationStrategy,
                                   AuditLogger auditLogger)
        必須の引数を受け入れるコンストラクター
        パラメーター:
        dataSource - データベースにアクセスするには
        aclCache - 完全にロードされた要素を格納できるキャッシュ
        aclAuthorizationStrategy - 認可戦略 (必須)
      • BasicLookupStrategy

        public BasicLookupStrategy​(javax.sql.DataSource dataSource,
                                   AclCache aclCache,
                                   AclAuthorizationStrategy aclAuthorizationStrategy,
                                   PermissionGrantingStrategy grantingStrategy)
        新しいインスタンスを作成します
        パラメーター:
        dataSource - データベースにアクセスするには
        aclCache - 完全にロードされた要素を格納できるキャッシュ
        aclAuthorizationStrategy - 認可戦略 (必須)
        grantingStrategy - PermissionGrantingStrategy
    • メソッドの詳細

      • readAclsById

        public final java.util.Map<ObjectIdentity,​Acl> readAclsById​(java.util.List<ObjectIdentity> objects,
                                                                          java.util.List<Sid> sids)
        主なメソッド。

        WARNING: この実装は、"sids" 引数を完全に無視します。キャッシュ内のすべてのアイテムには、すべての SID が含まれている必要があります。深刻なパフォーマンスのニーズがある場合(たとえば、オブジェクト ID ごとに非常に多数の SID がある場合)、代わりにカスタム LookupStrategy 実装を開発することをお勧めします。

        実装は、batchSize で指定されたバッチサイズで機能します。

        次で指定:
        インターフェース LookupStrategyreadAclsById 
        パラメーター:
        objects - 検索する ID (必須)
        sids - ID が必要な SID (この実装では無視されます)
        戻り値:
        マップここで、キーは配置された AclObjectIdentity を表し、値は配置された Acl です。(一部のエントリが欠落している可能性がありますが、決して null はありません。必要に応じて LookupStrategy のチェーンを使用してエントリを自動的に作成できるため、このメソッドは NotFoundException をスローしないでください。)
      • createSid

        protected Sid createSid​(boolean isPrincipal,
                                java.lang.String sid)
        引数に応じて、Sid の特定の実装を作成します。
        パラメーター:
        sid - 一意の識別子を表す sid の名前。通常の ACL データベーススキーマでは、テーブル acl_sid テーブルの sid 列にあります。
        isPrincipal - それがユーザーであるか、ロールのような権限を付与されているかどうか
        戻り値:
        識別子として sidName を持つ Sid のインスタンス
      • setPermissionFactory

        public final void setPermissionFactory​(PermissionFactory permissionFactory)
        ロードされたパーミッションデータ値を Permission に変換するために使用される PermissionFactory インスタンスを設定します。デフォルトでは DefaultPermissionFactory が使用されます。
        パラメーター:
        permissionFactory -
      • setBatchSize

        public final void setBatchSize​(int batchSize)
      • setSelectClause

        public final void setSelectClause​(java.lang.String selectClause)
        select 句の SQL。列名、スキーマなどを変更するためにカスタマイズする場合は、他の SQL カスタマイズフィールドも一致するように設定する必要があります。
        パラメーター:
        selectClause - select 句。デフォルトは DEFAULT_SELECT_CLAUSE です。
      • setLookupPrimaryKeysWhereClause

        public final void setLookupPrimaryKeysWhereClause​(java.lang.String lookupPrimaryKeysWhereClause)
        lookupPrimaryKey メソッドで使用される where 句の SQL。
      • setLookupObjectIdentitiesWhereClause

        public final void setLookupObjectIdentitiesWhereClause​(java.lang.String lookupObjectIdentitiesWhereClause)
        lookupObjectIdentities メソッドで使用される where 句の SQL。
      • setOrderByClause

        public final void setOrderByClause​(java.lang.String orderByClause)
        両方のクエリで使用される "orderby" 句の SQL。
      • setAclClassIdSupported

        public final void setAclClassIdSupported​(boolean aclClassIdSupported)
      • setObjectIdentityGenerator

        public final void setObjectIdentityGenerator​(ObjectIdentityGenerator objectIdentityGenerator)
      • setConversionService

        public final void setConversionService​(org.springframework.core.convert.ConversionService conversionService)