クラス BasicLookupStrategy
- java.lang.Object
-
- org.springframework.security.acls.jdbc.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 句をカスタマイズできますが、それらは互いに一致している必要があり、デフォルト値によって生成される予想される結果セットとも一致している必要があります。
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static java.lang.String
DEFAULT_ACL_CLASS_ID_SELECT_CLAUSE
static java.lang.String
DEFAULT_ORDER_BY_CLAUSE
static java.lang.String
DEFAULT_SELECT_CLAUSE
コンストラクターのサマリー
コンストラクター コンストラクター 説明 BasicLookupStrategy(javax.sql.DataSource dataSource, AclCache aclCache, AclAuthorizationStrategy aclAuthorizationStrategy, AuditLogger auditLogger)
必須の引数を受け入れるコンストラクターBasicLookupStrategy(javax.sql.DataSource dataSource, AclCache aclCache, AclAuthorizationStrategy aclAuthorizationStrategy, PermissionGrantingStrategy grantingStrategy)
新しいインスタンスを作成します
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 protected Sid
createSid(boolean isPrincipal, java.lang.String sid)
引数に応じて、Sid
の特定の実装を作成します。java.util.Map<ObjectIdentity,Acl>
readAclsById(java.util.List<ObjectIdentity> objects, java.util.List<Sid> sids)
主なメソッド。void
setAclClassIdSupported(boolean aclClassIdSupported)
void
setBatchSize(int batchSize)
void
setConversionService(org.springframework.core.convert.ConversionService conversionService)
void
setLookupObjectIdentitiesWhereClause(java.lang.String lookupObjectIdentitiesWhereClause)
lookupObjectIdentities メソッドで使用される where 句の SQL。void
setLookupPrimaryKeysWhereClause(java.lang.String lookupPrimaryKeysWhereClause)
lookupPrimaryKey メソッドで使用される where 句の SQL。void
setObjectIdentityGenerator(ObjectIdentityGenerator objectIdentityGenerator)
void
setOrderByClause(java.lang.String orderByClause)
両方のクエリで使用される "orderby" 句の SQL。void
setPermissionFactory(PermissionFactory permissionFactory)
ロードされたパーミッションデータ値をPermission
に変換するために使用されるPermissionFactory
インスタンスを設定します。void
setSelectClause(java.lang.String selectClause)
select 句の SQL。
フィールドの詳細
DEFAULT_SELECT_CLAUSE
public static final java.lang.String DEFAULT_SELECT_CLAUSE
- 関連事項:
- 定数フィールド値
DEFAULT_ACL_CLASS_ID_SELECT_CLAUSE
public static final java.lang.String DEFAULT_ACL_CLASS_ID_SELECT_CLAUSE
- 関連事項:
- 定数フィールド値
DEFAULT_ORDER_BY_CLAUSE
public static final java.lang.String DEFAULT_ORDER_BY_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
で指定されたバッチサイズで機能します。- 次で指定:
- インターフェース
LookupStrategy
のreadAclsById
- パラメーター:
objects
- 検索する ID (必須)sids
- ID が必要な SID (この実装では無視されます)- 戻り値:
- マップここで、キーは配置された
Acl
のObjectIdentity
を表し、値は配置された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)