public class BasicLookupStrategy extends java.lang.Object implements LookupStrategy
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 | setOrderByClause(java.lang.String orderByClause) 両方のクエリで使用される "orderby" 句の SQL。 |
void | setPermissionFactory(PermissionFactory permissionFactory) ロードされたパーミッションデータ値を Permission に変換するために使用される PermissionFactory インスタンスを設定します。 |
void | setSelectClause(java.lang.String selectClause)select 句の SQL。 |
public static final java.lang.String DEFAULT_SELECT_CLAUSE
public static final java.lang.String DEFAULT_ACL_CLASS_ID_SELECT_CLAUSE
public static final java.lang.String DEFAULT_ORDER_BY_CLAUSE
public BasicLookupStrategy(javax.sql.DataSource dataSource,
AclCache aclCache,
AclAuthorizationStrategy aclAuthorizationStrategy,
AuditLogger auditLogger)dataSource - データベースにアクセスするには aclCache - 完全にロードされた要素を格納できるキャッシュ aclAuthorizationStrategy - 認可戦略 (必須)public BasicLookupStrategy(javax.sql.DataSource dataSource,
AclCache aclCache,
AclAuthorizationStrategy aclAuthorizationStrategy,
PermissionGrantingStrategy grantingStrategy)dataSource - データベースにアクセスするには aclCache - 完全にロードされた要素を格納できるキャッシュ aclAuthorizationStrategy - 認可戦略 (必須)grantingStrategy - PermissionGrantingStrategypublic 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 をスローしないでください。)protected Sid createSid(boolean isPrincipal, java.lang.String sid)
Sid の特定の実装を作成します。sid - 一意の識別子を表す sid の名前。通常の ACL データベーススキーマでは、テーブル acl_sid テーブルの sid 列にあります。isPrincipal - それがユーザーであるか、ロールのような権限を付与されているかどうか sidName を持つ Sid のインスタンス public final void setPermissionFactory(PermissionFactory permissionFactory)
Permission に変換するために使用される PermissionFactory インスタンスを設定します。デフォルトでは DefaultPermissionFactory が使用されます。permissionFactory -public final void setBatchSize(int batchSize)
public final void setSelectClause(java.lang.String selectClause)
selectClause - select 句。デフォルトは DEFAULT_SELECT_CLAUSE です。public final void setLookupPrimaryKeysWhereClause(java.lang.String lookupPrimaryKeysWhereClause)
public final void setLookupObjectIdentitiesWhereClause(java.lang.String lookupObjectIdentitiesWhereClause)
public final void setOrderByClause(java.lang.String orderByClause)
public final void setAclClassIdSupported(boolean aclClassIdSupported)
public final void setConversionService(org.springframework.core.convert.ConversionService conversionService)