クラス BasicLookupStrategy
java.lang.ObjectSE
org.springframework.security.acls.jdbc.BasicLookupStrategy
- 実装されているすべてのインターフェース:
LookupStrategy
ANSI SQL と互換性のある方法でルックアップを実行します。
NB: この実装は、正規化されたデータベースと標準 ANSI SQL 機能の制約の範囲内で、合理的に最適化された検索を提供するよう努めています。これらの制約のいずれかを犠牲にできる場合(たとえば、階層クエリやマテリアライズドビューなどの特定のデータベース機能を使用する、あるいは正規化を少なくするなど)、パフォーマンスが向上する可能性があります。そのような状況では、独自のカスタム LookupStrategy を提供する必要があります。このクラスはサブクラス化をサポートしていません。将来のリリースで変更される可能性があるため、サブクラス化はサポートされていません。
実行される SQL クエリは 2 つあり、1 つは lookupPrimaryKeys メソッドで、もう 1 つは lookupObjectIdentities です。これらは同じ select 句と "order by" 句から作成され、それぞれ異なる where 句を使用しています。カスタムスキーマまたは列名を使用するには、これらの各 SQL 句をカスタマイズできますが、それらは互いに一致している必要があり、デフォルト値によって生成される予想される結果セットとも一致している必要があります。
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターコンストラクター説明BasicLookupStrategy(DataSourceSE dataSource, AclCache aclCache, AclAuthorizationStrategy aclAuthorizationStrategy, AuditLogger auditLogger) 必須の引数を受け入れるコンストラクターBasicLookupStrategy(DataSourceSE dataSource, AclCache aclCache, AclAuthorizationStrategy aclAuthorizationStrategy, PermissionGrantingStrategy grantingStrategy) 新しいインスタンスを作成しますメソッドのサマリー
修飾子と型メソッド説明protected Sid引数に応じて、Sidの特定の実装を作成します。final MapSE<ObjectIdentity,Acl> readAclsById(ListSE<ObjectIdentity> objects, ListSE<Sid> sids) 主なメソッド。final voidsetAclClassIdSupported(boolean aclClassIdSupported) final voidsetBatchSize(int batchSize) final voidsetConversionService(org.springframework.core.convert.ConversionService conversionService) final voidsetLookupObjectIdentitiesWhereClause(StringSE lookupObjectIdentitiesWhereClause) lookupObjectIdentities メソッドで使用される where 句の SQL。final voidsetLookupPrimaryKeysWhereClause(StringSE lookupPrimaryKeysWhereClause) lookupPrimaryKey メソッドで使用される where 句の SQL。final voidsetObjectIdentityGenerator(ObjectIdentityGenerator objectIdentityGenerator) final voidsetOrderByClause(StringSE orderByClause) 両方のクエリで使用される "orderby" 句の SQL。final voidsetPermissionFactory(PermissionFactory permissionFactory) ロードされたパーミッションデータ値をPermissionに変換するために使用されるPermissionFactoryインスタンスを設定します。final voidsetSelectClause(StringSE selectClause) select 句の 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で指定されたバッチサイズで機能します。- 次で指定:
- インターフェース
LookupStrategyのreadAclsById - パラメーター:
objects- 検索する ID (必須)sids- ID が必要な SID (この実装では無視されます)- 戻り値:
- マップここで、キーは配置された
AclのObjectIdentityを表し、値は配置されたAclです。(一部のエントリが欠落している可能性がありますが、決して null はありません。必要に応じてLookupStrategyのチェーンを使用してエントリを自動的に作成できるため、このメソッドはNotFoundExceptionをスローしないでください。)
createSid
引数に応じて、Sidの特定の実装を作成します。- パラメーター:
sid- 一意の識別子を表す sid の名前。通常の ACL データベーススキーマでは、テーブルacl_sidテーブルのsid列にあります。isPrincipal- それがユーザーであるか、ロールのような権限を付与されているかどうか- 戻り値:
- 識別子として
sidNameを持つ Sid のインスタンス
setPermissionFactory
ロードされたパーミッションデータ値をPermissionに変換するために使用されるPermissionFactoryインスタンスを設定します。デフォルトではDefaultPermissionFactoryが使用されます。- パラメーター:
permissionFactory-
setBatchSize
public final void setBatchSize(int batchSize) setSelectClause
select 句の SQL。列名、スキーマなどを変更するためにカスタマイズする場合は、他の SQL カスタマイズフィールドも一致するように設定する必要があります。- パラメーター:
selectClause- select 句。デフォルトはDEFAULT_SELECT_CLAUSEです。
setLookupPrimaryKeysWhereClause
lookupPrimaryKey メソッドで使用される where 句の SQL。setLookupObjectIdentitiesWhereClause
lookupObjectIdentities メソッドで使用される where 句の SQL。setOrderByClause
両方のクエリで使用される "orderby" 句の SQL。setAclClassIdSupported
public final void setAclClassIdSupported(boolean aclClassIdSupported) setObjectIdentityGenerator
setConversionService
public final void setConversionService(org.springframework.core.convert.ConversionService conversionService)