クラス BasicLookupStrategy

java.lang.ObjectSE
org.springframework.security.acls.jdbc.BasicLookupStrategy
実装されたすべてのインターフェース:
LookupStrategy

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

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

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

  • フィールドの詳細

  • コンストラクターの詳細

    • BasicLookupStrategy

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

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

    • readAclsById

      public final MapSE<ObjectIdentity,Acl> readAclsById(ListSE<ObjectIdentity> objects, ListSE<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, StringSE 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(StringSE selectClause)
      select 句の SQL。列名、スキーマなどを変更するためにカスタマイズする場合は、他の SQL カスタマイズフィールドも一致するように設定する必要があります。
      パラメーター:
      selectClause - select 句。デフォルトは DEFAULT_SELECT_CLAUSE です。
    • setLookupPrimaryKeysWhereClause

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

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

      public final void setOrderByClause(StringSE 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)