データソースを構成し、ユーザー・ロールに基づいてデータソースのデータを表示できるユーザーを制御することもできます。
| 設定 | 説明 |
|---|---|
| securityEnabled | データソースへの問合せ用のセキュリティ・フィルタを有効化するかどうか。
trueに設定すると、データソースでは、securityFiltersで構成されたフィルタが使用されます。 |
| securityFilters | データソースで使用されるセキュリティ・フィルタをすべて定義します。
注意: データソース・フィルタは、唯一サポートされているsecurityFilterのタイプです。
|
| rolePermissionsMultiOr | 複数のセキュリティ・ロールを持つユーザーの場合に、論理ORを使用して各ロールからのフィルタを1つに結合されたセキュリティ・ロール・フィルタにするかどうか。
trueに設定した場合は、論理ORが使用され、ユーザーはそのセキュリティ・ロールのフィルタの少なくとも1つに一致するデータにアクセスできます。 falseに設定した場合は(デフォルト値)、論理ANDが使用され、ユーザーはそのすべてのセキュリティ・ロールに関連付けられたフィルタすべてに一致するデータにのみアクセスできます。 論理ORが使用される場合、これは各種セキュリティ・ロールのフィルタを結合するためにのみ使用されます。各ロールのフィルタが別のロールのフィルタに結合されるまでは、論理ANDがそれぞれのフィルタで適用されます。 baseFunctionsのフィルタなど、データソース全体に適用されるその他のセキュリティ以外のフィルタにも、論理ANDが使用されます。 |
| rolePermissions | ユーザー・ロールをセキュリティ・フィルタにマップします。
それぞれのマッピングについて、形式は次のようになります。
"<role name>" : [<filter list>]説明:
|
| inheritSecurity | 子データソースについて、祖先データソースに構成されているセキュリティ・フィルタを継承するかどうか。
trueに設定すると、適用するセキュリティ・フィルタのリストに次の両方が含まれます。
|
次の例では、ロールFrench Wineを持つユーザーは、Bordeaux地域とBurgundy地域のデータのみを表示できます。一方、ロールAustrian Wineを持つユーザーは、Austria、BurgenlandおよびSteiermarkの地域のデータのみを表示できます。
rolePermissionsMultiOrがtrueに設定されているため、これらの両ロールを持つユーザーは、この5地域のレコードを表示できます。
{
"server":"server01.lab.acme.com",
"port":"15000",
"dataDomainName":"acmeDB",
"name":"European Wines",
"description":"Sales transactions for European wines",
"securityEnabled":"true",
"inheritSecurity":"true",
"securityFilters": {
"frenchFilter": {
"class":"com.endeca.portal.data.functions.DataSourceFilter",
"filterString":"Region='Bordeaux' OR Region='Burgundy'"
},
"austrianFilter": {
"class":"com.endeca.portal.data.functions.DataSourceFilter",
"filterString":"Region='Austria' OR Region='Burgenland' OR Region='Steiermark'"
}
},
"rolePermissionsMultiOr":"true",
"rolePermissions": {
"French Wine": ["frenchFilter"],
"Austrian Wine": ["austrianFilter"]
}
}