クラス 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 void
setAclClassIdSupported
(boolean aclClassIdSupported) final void
setBatchSize
(int batchSize) final void
setConversionService
(org.springframework.core.convert.ConversionService conversionService) final void
setLookupObjectIdentitiesWhereClause
(StringSE lookupObjectIdentitiesWhereClause) lookupObjectIdentities メソッドで使用される where 句の SQL。final void
setLookupPrimaryKeysWhereClause
(StringSE lookupPrimaryKeysWhereClause) lookupPrimaryKey メソッドで使用される where 句の SQL。final void
setObjectIdentityGenerator
(ObjectIdentityGenerator objectIdentityGenerator) final void
setOrderByClause
(StringSE orderByClause) 両方のクエリで使用される "orderby" 句の SQL。final void
setPermissionFactory
(PermissionFactory permissionFactory) ロードされたパーミッションデータ値をPermission
に変換するために使用されるPermissionFactory
インスタンスを設定します。final void
setSelectClause
(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)