クラス 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.StringDEFAULT_ACL_CLASS_ID_SELECT_CLAUSEstatic java.lang.StringDEFAULT_ORDER_BY_CLAUSEstatic java.lang.StringDEFAULT_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 SidcreateSid(boolean isPrincipal, java.lang.String sid)引数に応じて、Sidの特定の実装を作成します。java.util.Map<ObjectIdentity,Acl>readAclsById(java.util.List<ObjectIdentity> objects, java.util.List<Sid> sids)主なメソッド。voidsetAclClassIdSupported(boolean aclClassIdSupported)voidsetBatchSize(int batchSize)voidsetConversionService(org.springframework.core.convert.ConversionService conversionService)voidsetLookupObjectIdentitiesWhereClause(java.lang.String lookupObjectIdentitiesWhereClause)lookupObjectIdentities メソッドで使用される where 句の SQL。voidsetLookupPrimaryKeysWhereClause(java.lang.String lookupPrimaryKeysWhereClause)lookupPrimaryKey メソッドで使用される where 句の SQL。voidsetOrderByClause(java.lang.String orderByClause)両方のクエリで使用される "orderby" 句の SQL。voidsetPermissionFactory(PermissionFactory permissionFactory)ロードされたパーミッションデータ値をPermissionに変換するために使用されるPermissionFactoryインスタンスを設定します。voidsetSelectClause(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)
setConversionService
public final void setConversionService(org.springframework.core.convert.ConversionService conversionService)