Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java™ System Identity Manager 7.0 ワークフロー、フォーム、およびビュー 

第 4 章
FormUtil メソッド

この章では、もっともよく使用される FormUtil メソッドについて説明します。

FormUtil クラスは、フォームオブジェクト内の XPRESS 式から呼び出せるユーティリティーメソッドの集合です。FormUtil メソッドは、通常、Select フィールドと MultiSelect フィールドの valueMap 内で、使用できる値のリストを制限するために使用されます。また、日付やディレクトリ DN などの文字列値をフォーマットするための追加メソッドも用意されています。

関連する章


メソッドの呼び出し

フォーム内から FormUtil メソッドを呼び出すときは、次の構文を使用します。

<invoke class = 'com.waveset.ui.FormUtil'

   name = 'method_name'>

      <ref>:display.session</ref>

      <s>arg2</s>

</invoke>

name フィールドには、メソッドの名前を指定します。

ほとんどの FormUtil メソッドでは、ビュー属性 display.session を参照し、最初の引数として LighthouseContext または Session オブジェクトを渡す必要があります。フォームは、ベースコンテキストプレフィックスとともに使用されることが多いので、ベースコンテキストプレフィックスを削除できるように、display.session を参照する際には先頭に常にコロンを付けて参照することをお勧めします。


メソッド

ここでは、もっともよく使用される FormUtil メソッドを紹介します。

callResourceMethod メソッド

callResourceMethod(LighthouseContext s, String resourceName, String methodName, Map args)  throws WavesetException {

説明

引数を指定して、リソース上の指定メソッドを呼び出します。

表 4-1 callResourceMethod のパラメータ 

パラメータ

説明

s

有効な Identity Manager コンテキストを指定します。通常は、<ref>:display.session</ref> という形式で参照されます

resourceName

呼び出すメソッドのリソース名を指定します

methodName

呼び出すリソースメソッドの名前を指定します

args

リソースメソッドが受け付けるマップを args として指定します

buildDn メソッド

buildDn(String name,

String baseContext)

説明

名前を作成するために名前とベースコンテキストを受け取ります。このメソッドは、完全修飾識別 (DN) 名を返します。たとえば、group1dc=example,dc=com を渡すと、cn=group1, dc=example, dc=com という文字列が返されます。

表 4-2 buildDn のパラメータ

パラメータ

説明

name

ディレクトリオブジェクトの名前を指定します (一般的には、共通名 cn の値を指定します)。

baseContext

ベースコンテキストまたはコンテナを指定します。これは、ディレクトリオブジェクトの完全識別名を形成するために共通名と連結される、ベース識別名の値です。

戻り値

CN=<name>,<baseContext> という形式で、1 つの値を返します。

<invoke name='buildDn' class='com.waveset.ui.FormUtil'>

   <s>North America</s>

   <s>ou=marketing,dc=acme,dc=com</s>

</invoke>

この例の結果として返される内容は次のとおりです。<s>CN=North America,ou=marketing,dc=acme,dc=com</s>

XPRESS では、同じ機能を次のように表現できます。

<concat>

   <s>CN=</s>

   <s>North America</s>

   <s>,</s>

   <s>ou=marketing,dc=acme,dc=com</s>

</concat>

buildDns メソッド

buildDns(List names,

String baseContext)

または

buildDns(String names,

String delimiter,

String baseContext)

説明

リスト内の各トークンに追加する、名前のリストとベースコンテキストを受け取ります。どちらのメソッドでも、完全修飾 DN 名を返します。

たとえば、group1, group2 と dc=example, dc=com を渡した場合は、cn=group1, dc=example, dc=com と cn=group2, dc=example, dc=com とのリストが返されます。

パラメータ

1 つめのメソッドは、次の表で説明する引数を受け取ります。

表 4-3 buildDns のパラメータ (1 つめのメソッド)

パラメータ

説明

names

オブジェクト名のリストを指定します

baseContext

ベースコンテキストを指定します

2 つめのメソッドは、次の表で説明する 3 つの引数を受け取ります。

表 4-4 buildDns のパラメータ (2 つめのメソッド)

パラメータ

説明

names

コンマやセミコロンなどの区切り文字によって区切られた、複数の名前を含む文字列を指定します。

delimiter

複数の名前を含む文字列内で使用される区切り文字を指定します。区切り文字は、通常、コンマ (,) またはピリオド (.) です。

baseContext

ベースコンテキストを指定します。

戻り値

それぞれの値が CN=<name>,<baseContext> の形式の、値または文字列のリストを返します。

例 1: buildDns が返すリスト

<invoke name='buildDns' class='com.waveset.ui.FormUtil'>

   <list>

      <s>North America</s>

      <s>Europe</s>

   </list>

   <s>ou=marketing,dc=acme,dc=com</s>

</invoke>

この例の結果として返される内容は次のとおりです。

<list>

   <s>CN=North America,ou=marketing,dc=acme,dc=com</s>

   <s>CN=Europe,ou=marketing,dc=acme,dc=com</s>

</list>

例 2: buildDns (String names、String delimeter、String baseContext) の返すリスト

<invoke name='buildDns' class='com.waveset.ui.FormUtil'>

   <s>North America,Europe,China</s>

   <s>,</s>

   <s>ou=marketing,dc=acme,dc=com</s>

</invoke>

この例の結果として返される内容は次のとおりです。

<list>

   <s>CN=North America,ou=marketing,dc=acme,dc=com</s>

   <s>CN=Europe,ou=marketing,dc=acme,dc=com</s>

   <s>CN=China,ou=marketing,dc=acme,dc=com</s>

</list>

この機能を、XPRESS を記述することで実現しようとはしないでください。

checkStringQualityPolicy メソッド

checkStringQualityPolicy(LighthouseContext s, String policy, Object value, Map map, List pwdhistory, String owner)

説明

文字列ポリシーに対して、指定された文字列の値を検証します。

表 4-5 checkStringQualityPolicy のパラメータ

パラメータ

説明

S

ユーザーの現在の Lighthouse コンテキストを指定します。

policy

(必須) 文字列の検証に適用されるポリシーの名前を指定します。

value

(必須) 検証する文字列の値を指定します。

map

(省略可能) 文字列に含めることができないデータのマップを指定します。

returnNull -- (省略可能) true に設定すると、このメソッドは成功時に NULL オブジェクトを返します。

pwdhistory

(省略可能) ユーザーの過去のパスワードを、大文字の、暗号化された形式で一覧表示します。

owner

(必須) 調査対象となる文字列値のユーザーを指定します。

戻り値

文字列がポリシーのテストに合格した場合には、このメソッドは true を返します。文字列がポリシーテストに合格しなかった場合、このメソッドはエラーメッセージを返します。map パラメータの returnNull オプションを true に設定した場合は、成功時に NULL オブジェクトが返されます。

controlsAtLeastOneOrganization メソッド

controlsAtLeastOneOrganization(LighthouseContext s, List organizations)

    throws WavesetException {

説明

現在認証されているユーザーが、1 つまたは複数の組織 (ObjectGroup) 名のリストに含まれるいずれかの組織を制御できるかどうかを返します。サポートされる組織リストには、ObjectGroup タイプのすべてのオブジェクトのリスト表示で返される組織が含まれます。

表 4-6 controlsAtLeastOneOrganization のパラメータ

パラメータ

説明

s

ユーザーの現在の Lighthouse コンテキスト (セッション) を指定します。

organizations

1 つまたは複数の組織名のリストを指定します。サポートされる組織リストには、ObjectGroup タイプのすべてのオブジェクトのリスト表示で返される組織が含まれます。

戻り値

true - 現在認証されている Identity Manager ユーザーが、リストに含まれるいずれかの組織を制御できることを表します。

false - 現在認証されている Identity Manager ユーザーが、リストに含まれるどの組織も制御できないことを表します。

getObject メソッド

getObject(LighthouseContext s,

String typeName,

String id)

   throws WavesetException

説明

リポジトリからオブジェクトを取得します (認証されていることが前提)。

表 4-7 getObject のパラメータ

パラメータ

説明

s

有効な Identity Manager セッションを指定します。通常は、<ref>:display.session</ref> という形式で参照されます。

typeName

オブジェクトタイプを指定します。一般的なオブジェクトタイプは、User、Object Group、Resource です。すべてのタイプのリストを知るためには、「デバッグ」ページの「タイプ」オプションリストを参照してください。

id

検索するオブジェクトの ID または名前を指定します。User オブジェクトでは、ここに accountId を指定します。

getObjectNames メソッド

getObjectNames(LighthouseContext  s,

String typeName)

  throws WavesetException

または

getObjectNames(LighthouseContext  s,

String typeName,

Map options)

  throws WavesetException

説明

指定されたタイプのオブジェクトでセッションの所有者 (または現在のログインユーザー) がアクセスできるオブジェクトの名前のリストを返します。オプションマップに追加パラメータを指定し、返される名前のリストを制御できます。

オブジェクト名のリストを返すときは、session.getObjects() を実行するよりも、このメソッドを使用することをお勧めします。メソッドは、まず、ObjectCache を検索し、必要に応じて次にリポジトリを検索します。

表 4-8 getObjectNames のパラメータ

パラメータ

説明

s

有効な Identity Manager セッションを指定します。通常は、<ref>:display.session</ref> という形式で参照されます。

typeName

オブジェクトタイプを指定します。一般的なオブジェクトタイプは、User、Object Group、Resource です。すべてのタイプのリストを知るためには、「デバッグ」ページの「タイプ」オプションリストを参照してください。

options

次の表を参照してください

表 4-9 オプションの値

オプション

conditions

追加オプション」を参照してください。

current

追加オプション」を参照してください。

scopingOrg

追加オプション」を参照してください。

戻り値

このメソッドは、指定されたタイプのオブジェクトでセッションの所有者がアクセスできるオブジェクトの名前のリストを返します。

getOrganizationsDisplayNames メソッド

getOrganizationsDisplayNames(LighthouseContext s)

        throws WavesetException

または

getOrganizationsDisplayNames(LighthouseContext s, Map options)

        throws WavesetException

説明

現在の管理者がアクセスできる、組織ハンドルのリストを返します。組織の選択リストおよび複数選択リストを使用するフォームでは、このメソッドを使用する必要があります。


このメソッドは、getOrganizationsDisplayNames() の呼び出しに pathPrefix オプションが指定されていない場合にのみ、useOrganizationDisplayNames にシステム設定のデフォルト値を適用します。


パラメータ

オプションは、キーと値のペアの引数のマップから構成されます。

表 4-10 getOrganizationsDisplayNames のパラメータ

パラメータ

説明

s

有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。

options

pathprefixes、excluded、current、filterVirtual、conditions、scopingOrg。次の表を参照してください。

表 4-11 オプションの値

オプション

pathPrefixes

true - 組織のパスを含む、返されるハンドルのリスト。

false - 表示名を含む、返されるハンドルのリスト

true 以外 (未指定) - ハンドルタイプに、システムの useOrganizationsDisplaynames の設定のデフォルト値を適用します。

Identity Manager のインストールシステムが重複する組織名を持つ場合は、パスを使用します。

excluded

返される valueMap に含めない組織を指定します。

current

この引数に組織名のリストを指定すると、これらの追加組織を含む list が返されます。パスを要求しているときは、これはパスのリストとなります。表示名を要求しているときは、これは表示名のリストとなります。

conditions

追加オプション」を参照してください。

scopingOrg

追加オプション」を参照してください。

filterVirtual

オプションマップでこの引数を true に設定した場合は、返される valueMap に仮想組織が含まれません。

バージョンに固有の動作

このメソッドの動作は、インストールされている Identity Manager のバージョンが v3.1x 以降であるかどうかによって異なります。バージョン 3.1.x では、このメソッドは同一名の複数の組織をサポートしません。この製品のバージョン 4.x 以降では、同一名の複数の組織がサポートされます。

このメソッドの v3.1.x バージョンを使用する理由

カスタマイズしたインストールシステムが次のような特徴を持つときは、複数の組織をサポートしないように、このメソッドをリセットしてください。

v3.1.x の動作に合わせるためのメソッドの再設定

v3.1.x より後のバージョンの Identity Manager を使用していて、このメソッドを前述のように動作させる必要がある場合は、次のシステム設定オブジェクト属性を、次のように変更します。

<Attribute name='useOrganizationDisplay Names'>

   <Boolean>false</Boolean>

</Attribute>

getResources メソッド

getResources(LighthouseContext s)

throws WavesetException

または

getResources(LighthouseContext s,

List current)

throws WavesetException

または

getResources(LighthouseContext s,

String matchType,

String value)

throws WavesetException

または

getResources(LighthouseContext s,

String matchType,

String value

List current)

または

getResources(LighthouseContext s,

Map Options)

説明

特定のリソース属性値 (type=LDAP など) と一致するリソースの名前リストを作成します。現在のリストを渡すと、リストはマージされます。

サポートされるリソースタイプ名については、「ビュー」を参照してください。

表 4-13 オプションの値

オプション

conditions

追加オプション」を参照してください。

current

追加オプション」を参照してください。

scopingOrg

追加オプション」を参照してください。

matchType パラメータに指定する、クエリー可能な属性の有効なタイプは次のとおりです。

表 4-14 matchType パラメータに指定できる値

matchType パラメータ

説明

type

リソースオブジェクトのタイプを指定します。有効な値については、リソースの XML プロトタイプを参照してください。たとえば、Active Directory を表すオブジェクトタイプは、Windows Active Directory です。Groupwise では、GroupWise となります。

supportsScanning

true に設定すると、リソースがスキャンをサポートすることを表します。

supportsContainerObjectTypes

true に設定すると、リソースがコンテナオブジェクトをサポートすることを表します。

startupType

ActiveSync の起動タイプを指定します。有効な値には、Automatic、Automatic with failover、Manual、および Disabled があります。

getResourceObjects メソッド

getResourceObjects(LighthouseContext session, String objectType, String resourceId, Map options, String cacheList, String cacheTimeout, String clearCacheIfExists)

または

getResourceObjects(LighthouseContext session, String objectType, String resourceId, Map options)

または

getResourceObjects(String subjectString, String objectType, String resourceId, Map options)

または

getResourceObjects(String subjectString, String objectType, String resourceId, Map options, String cacheList, String cacheTimeout, String clearCacheIfExists)

説明

各オブジェクトが、タイプ、名前、ID (DN または完全修飾名)、および要求される searchAttrsToGet の値の属性セットを持つオブジェクトのリストを返します。返される値は、GenericObjects のリストです。それぞれの GenericObject には、マップへのアクセスと同様の方法でアクセスできます。各オブジェクトで get メソッドを呼び出します。このとき、属性名が渡され、属性値が返されます。

パラメータ

表 4-15 getResourceObjects のパラメータ 

パラメータ

説明

session

有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。

subjectString

ユーザーオブジェクトの、シリアル化された XML 表現を指定します。この表現は、現行セッションを持たないワークフローで便利です。たとえば、主体を取得する場合は、次のように指定します。

<invoke name='getSubject'>
   <ref>WF_CONTEXT</ref>

</invoke>

objectType

指定されているこの resId の、有効なオブジェクトクラスの名前を指定します。NULL に設定した場合は、指定検索コンテナおよび検索範囲内の、指定した resId によって定義されるすべてのオブジェクトタイプのオブジェクトが返されます。

resourceId

オブジェクトの取得元となるリソースを指定します。

cacheList

true に設定すると、結果がサーバーにキャッシュされます (これは、メインフレーム上のプロファイルのリストのように、取得に時間がかかるクエリーで不可欠)。

cacheTimeout

true に設定するときは、キャッシュがタイムアウトになるまでの時間をミリ秒単位で指定します。キャッシュがタイムアウトになると、検索結果に含まれるオブジェクトが、次回の要求時に自動的にリソースから取得されます (たとえば、6000 = 1 分間)。

clearCacheIfExists

キャッシュをクリアし、次回の要求時に、検索対象オブジェクトをリソースから再フェッチするように強制します。

options

検索の制限に使用される、リソースに固有の名前と値のペアを指定します。次の表を参照してください。

表 4-16 Option パラメータに指定できる値 

オプション

searchContext

検索対象のコンテキスト (ResourceAdapter.RA_SEARCH_CONTEXT) を指定します。指定しない場合、メソッドは RA_BASE_CONTEXT から値を取得しようとします。値が指定されていない場合は、このメソッドは論理上の上位から検索を行います。

searchFilter

(省略可能) RFC 1558 に規定されている LDAP 検索フィルタフォーマットでは、1 つまたは複数のオブジェクトが and または or で連結されます。規定されていない場合、このメソッドは、指定されている objectType (ResourceAdapter.SEARCH_FILTER) を使用してフィルタを作成します。

searchScope

メソッドの検索対象を、指定した searchContext のコンテキストに含まれる現在のオブジェクト、または指定した searchContext (ResourceAdapter.RA_SEARCH_SCOPE) に含まれるすべてのサブコンテキストに設定します。有効な値には、objectoneLevel、またはsubTree があります。オブジェクトを指定した場合は、searchContext は単一オブジェクトの完全 DN と見なされるため、1 つのオブジェクトのみが返されます。oneLevel は、特定の baseContext (searchContext) 以下の、1 つまたは複数のフェッチを意味します。subTree は、oneLevel 検索の実行を繰り返します。searchContext は、指定した searchContext に含まれるすべてのサブコンテキストを対象に検索を実行することを表します。

searchTimeLimit

検索の制限時間を、ミリ秒単位で指定します (ResourceAdapter.RA_SEARCH_TIME_LIMIT)。検索は、この制限時間内に行われます。

searchAttrsToGet

オブジェクトごとに取得する、objectType に固有の属性名のリストを指定します。

runAsUser

この要求を実行するユーザーの名前を指定します。指定しない場合は、デフォルト値として、リソースプロキシ管理ユーザーが適用されます。

runAsPassword

runAsUser のパスワードを指定します。指定したユーザーとしてリスト要求を実行するために、その権限があることをリソースに対して認証するのに必要とされます。

current

追加オプション」を参照してください。

conditions

追加オプション」を参照してください。

scopingOrg

追加オプション」を参照してください。

このメソッドは、Session の代わりに subjectString を指定して実行することもできます。

getRoles メソッド

getRoles(LighthouseContext s)

または

getRoles(LighthouseContext s, String current)

または

getRoles(LighthouseContext s, List current)

または

getRoles(LighthouseContext s, Map options)

説明

現在の管理者がアクセスできる、ロール名のリストを返します。現在の値、または現在のリストを指定すると、返されるロール名にリスト内のロール名が追加されます。

表 4-17 getRoles のパラメータ

パラメータ

説明

s

有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。

options

currentconditions、および scopingOrg。次の表を参照してください。

表 4-18 オプションの値

オプション

current

追加オプション」を参照してください。

conditions

追加オプション」を参照してください。

scopingOrg

追加オプション」を参照してください。

戻り値

現在の管理者がアクセスできる、ロール名のリストを返します。現在の値、または現在のリストを指定すると、返されるロール名にリスト内のロール名が追加されます。

getUnassignedApplications メソッド

getUnassignedApplications(LighthouseContext s, Map options)

throws WavesetException {

説明

ユーザーのプライベートアプリケーションに適したアプリケーション名のリストを作成します (プライベートアプリケーションは、ユーザーに直接割り当てられているアプリケーション)。これは、ロールを通じてすでにユーザーに割り当てられているアプリケーションの名前を除く、すべての利用可能なアプリケーションのリストです。

作成されるリストは、フォームでのプライベートアプリケーションの割り当てに便利です。

パラメータ

getUnassignedApplications は、次のオプションをとります。

表 4-19 getUnassignedApplications のパラメータ

パラメータ

説明

context

Identity Manager コンテキストオブジェクト

options

currentcurrentRolesconditions。次の表を参照してください。

表 4-20 オプションの値

オプション

current

現在のアプリケーション名のリスト。返されるリストには、その他のオプションに関係なく、これらのアプリケーションのそれぞれが常に含まれます。

currentRoles

現在のロール名のリスト。返されるリストには、現在のリストに名前が指定されているアプリケーションを除き、指定されるいずれかのロールによって割り当てられるアプリケーションは含まれません。

conditions

次のように、マップまたはリストのいずれかを指定できます。

表 4-21 conditions パラメータに指定できる値

パラメータ

説明

<map>

 

最初のマップエントリ - このオブジェクトタイプがサポートする、クエリー可能な属性の名前

2 番目のマップエントリ - 関連付けられているクエリー可能属性を取得するために必要な、このタイプのオブジェクトの値 (演算子は equals と見なされる)

属性名と値の複数のペアを指定した場合は、それらは論理 and で連結されます。

<list>

 

AttributeCondition オブジェクトのリスト。

次に例を示します。

<list>

  <newclass='com.waveset.object.AttributeCondition'>

     <s>MemberObjectGroups</s>

     <s>equals</s>

     <ref>waveset.organization</ref>

   </new>

</list>

複数の AttributeCondition を指定した場合は、それらは論理 and で連結されます。

getSubordinates メソッド

getSubordinates(LighthouseContext s, manager, Map options)

throws WavesetException {

説明

ユーザーの、指定された管理対象部下のリストを取得します。

表 4-22 getSubordinates のパラメータ

パラメータ

説明

s

Identity Manager コンテキストオブジェクト

manager

要求する部下のマネージャーを指定します。

options

firstlevellastLevelconditions。次の表を参照してください。

表 4-23 オプションの値

オプション

firstLevel

結果に含める最上位組織レベルを指定します。

0 は、直接レポートを表します。

lastLevel

結果に含める最下位組織レベルを指定します。

-1 は、すべてのレベルを表します。

conditions

(省略可能) 返されるユーザー名のリストをさらにフィルタリングするための、ユーザー属性条件のマップ。「追加オプション」を参照してください。

戻り値

このメソッドは、部下のソート済みリストを返すか、または WavesetException をスローします。

getSubordinates を使用した規則の例

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE Rule PUBLIC 'waveset.dtd' 'waveset.dtd'>

<Rule name='testGetSubordinates'>

   <invoke name='getSubordinates' class='com.waveset.ui.FormUtil'>

      <ref>:display.session</ref>

      <ref>waveset.accountId</ref>

      <map>

        <s>firstLevel</s>

        <i>0</i>

        <s>lastLevel</s>

        <i>0</i>

        <s>conditions</s>

        <map>

     </map>

    </map>

  </invoke>

</Rule>

getUnassignedResources メソッド

static public List getUnassignedResources(LighthouseContext s, Map

options) throws WavesetException

説明

ユーザーのプライベートリソースに適したリソース名のリストを作成します (プライベートリソースは、ユーザーに直接割り当てられているリソース)。これは、ロールを通じてすでにユーザーに割り当てられているリソースの名前を除く、すべての利用可能なリソースのリストです。

作成されるリストは、フォームでのプライベートリソースの割り当てに便利です。

表 4-24 getUnassignedResources のパラメータ

パラメータ

説明

context

Identity Manager コンテキストオブジェクト

options

availableToOrgScopecurrentcurrentRolescurrentResourceGroupsconditionsscopingOrg。次の表を参照してください。

表 4-25 オプションの値 

オプション

availableToOrgScope

(リスト) 組織名 (または、一意の場合は paths または displayNames) を指定します。このリストに含まれる組織が利用できる、または組織階層でその組織より下位レベルにある組織が利用できるリソースが返されます。現在のリストに含まれるリソースも常に返されます。

current

追加オプション」を参照してください。

currentRoles

(リスト) 現在のロール名を指定します。返されるリストには、現在のリストに名前が指定されているリソースを除き、指定されるいずれかのロールによって割り当てられるリソースは含まれません。

currentResourceGroups

(リスト) 現在のリソースグループの名前を指定します。返されるリストには、現在のリストに名前が指定されているリソースを除き、指定されるいずれかのリソースグループによって割り当てられるリソースは含まれません。

conditions

追加オプション」を参照してください。

scopingOrg

追加オプション」を参照してください。

戻り値

このメソッドは、ユーザーのプライベートリソースに適したリソース名のリストを返します。

getUsers メソッド

getUsers(LighthouseContext s)

または

getusers(LighthouseContext s, Map options)

説明

このメソッドの最初の変数は、すべてのユーザーを返します。2 番目の変数は、デフォルトではすべてのユーザーを返しますが、リストをさらにフィルタリングするためのオプションのマップを指定できます。

表 4-26 getUsers のパラメータ

パラメータ

説明

s

有効な Identity Manager コンテキストを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。

options

current、conditions、exclude、scopingOrg。次の表を参照してください。

表 4-27 オプションの値

オプション

current

追加オプション」を参照してください。

conditions

追加オプション」を参照してください。サポートされるユーザーのクエリー可能属性名のほかに、擬似属性 userTypesimilarTo も使用できます。詳細については、FomUtil の Javadoc を参照してください。

exclude

返されるリストから除外するユーザーのタイプを指定します。値は、administratorsendUsers のいずれかです。

administrators -- 返されるユーザーのリストには、直接的または間接的に 1 つまたは複数の機能が割り当てられ (AdminRoles の設定)、1 つまたは複数の組織を制御するユーザーは含まれません。

endUsers -- 返されるリストには、1 つまたは複数の機能と、制御対象組織が直接的または間接的に割り当てられているユーザーのみが含まれます。

scopingOrg

追加オプション」を参照してください。

listResourceObjects メソッド

listResourceObjects(LighthouseContext s,

String objectType,

List resourceList,

Map options,

String cacheList)

または

listResourceObjects(LighthouseContext s,

String objectType,

List resourceList,

Map options,

String cacheList,

String clearCacheIfExists}

2 番目のメソッドがキャッシュをクリアする点を除き、最初の 2 つの変数は同じです。

listResourceObjects(String subjectString,

String resourceObjectType,

List resourceList,

Map options,

String cacheList)

または

listResourceObjects(String subjectString,

String objectType,

String resourceId,

Map options,

String cacheList)

String clearCacheIfExists)

または

listResourceObjects(String subjectString,

String objectType,

String resourceID,

Map options,

String cacheList)

または

listResourceObjects(String subjectString,

String objectType,

String resourceID,

Map options,

String cacheList)

String cacheTimeout

String clearCacheIfExists)

2 番目のメソッドがキャッシュをクリアする点を除き、最初の 2 つの変数は同じです。

listResourceObjects(LighthouseContext session,

String objectType,

String resourceId,

Map options,

String cacheList,

String clearCacheIfExists)

        throws WavesetException {

または

listResourceObjects(LighthouseContext session,

String objectType,

String resourceId,

Map options,

String cacheList)

        throws WavesetException {

または

listResourceObjects(LighthouseContext session,

String objectType,

String resourceId,

Map options,

String cacheList)

String cacheTimeout

String clearCacheIfExists

        throws WavesetException

または

listResourceObjects (String subjectString, String objectType, List resourceList, Map options, String cacheList, String clearCacheIfExists)

説明

指定したタイプ (たとえば、group) のリソースオブジェクトのリストを取得します。このメソッドの最初の試行では、サーバーの resourceObjectListCache からリストが取得されます。見つかった場合は、リストが返されます。

リストが見つからなかった場合は、メソッドは各リソースで listResourceObjects メソッドを呼び出し、結果リストのマージ、ソート、および重複削除を行います。最後に、同じリソースからの同じリソースオブジェクトタイプを求める次回以後の要求に備えて、この新しいリストをサーバーの resourceObjectListCache にキャッシュします。

このメソッドは、現在認証されている管理者 (たとえば、subject) として実行されます。変数は、単一のリソース ID、または subject 文字列と既存のセッションを値としてとります。

このメソッドは、次の条件に応じて、異なる複数の変数をとります。

戻り値

このメソッドは、リソースのリスト (ID または名前の resourceList) から、指定されたリソースオブジェクトタイプのリソースオブジェクト名のリストを返します。

testObject メソッド

testObject(LighthouseContext  s,

String typeName,

String id)

説明

主体がオブジェクトの表示を認証されていない場合でも、指定したオブジェクトが存在するかどうかを確認します。ツリー全体を表示できない管理者がユーザーの新規作成プロセスを開始するときは、このメソッドを使用して、重複オブジェクトの作成を防止してください。

表 4-29 testObject のパラメータ

パラメータ

説明

s

有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。

typeName

メソッドによって検証されるオブジェクトのタイプを指定します。

id

名前または ID を入力して、オブジェクトを指定します。ID を指定した場合は、typeName の値は無視されます。このパラメータを NULL にすることはできません。

戻り値

このメソッドが返す値は次のとおりです。

true - オブジェクトが存在する

null - オブジェクトは存在しない

testUser メソッド

testUser(LighthouseContext  s,

String id)

説明

主体がオブジェクトの表示を認証されていない場合でも、指定したユーザーが存在するかどうかを確認します。ツリー全体を表示できない管理者がユーザーの新規作成プロセスを開始するときは、このメソッドを使用して、重複オブジェクトの作成を防止してください。

表 4-30 testUser のパラメータ

パラメータ

説明

s

有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。

id

名前または ID を入力して、ユーザーを指定します。このパラメータを NULL にすることはできません。

戻り値

このメソッドが返す値は次のとおりです。

true - ユーザーが存在する

null - ユーザーは存在しない

hasCapability メソッド

hasCapability(LighthouseContext s, String capability)

throws WavesetException {

説明

ユーザーが指定された機能 (文字列) を持つかどうかを確認します。このメソッドは、直接割り当てられている機能、または AdminGroups、AdminRoles、またはその両方によって間接的に割り当てられている機能を調べます。session の値が必要です。

表 4-31 hasCapability のパラメータ

パラメータ

説明

s

有効な Identity Manager コンテキストを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。

capabilities

クエリー対象となる機能を指定します。

戻り値

true - 現在認証されている Identity Manager ユーザーが、指定された機能を持つことを意味します。

false - 現在のユーザーが、指定された機能を持たないことを意味します。

hasCapabilities メソッド

hasCapabilities(LighthouseContext s, List capabilities)

throws WavesetException {

説明

ユーザーが、指定された機能 (文字列) のリストを持つかどうかを確認します。これらの機能は、直接割り当てるか、AdminGroups、AdminRoles、またはその両方を使用して間接的に割り当てることができます。session の値が必要です。

表 4-32 hasCapabilities のパラメータ

パラメータ

説明

s

有効な Identity Manager コンテキストを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。

capabilities

クエリー対象となる機能のリストを指定します。

戻り値

true - 現在認証されている Identity Manager ユーザーが、指定されたすべての機能を持つことを意味します。

false - ユーザーが、指定されているすべての機能を持たないことを意味します。

追加オプション

FormUtil メソッドのサブセットでは、次のオプションが使用されます。

scopingOrg

ユーザーに複数の AdminRoles が割り当てられている場合に使用されます。値には、組織名を指定します。この値は、scopingOrg 組織を制御する、また、ログイン中のユーザーに割り当てられている AdminRole によって制御される組織が使用できる名前のみを返すように指定します。

このオプションは、通常、ユーザーが別のユーザーを作成または編集するときに割り当てる名前 (たとえば、Resourcenames) が、必ず編集対象ユーザーが属す組織に適した名前となるようにするために使用されます。

scopingOrg パラメータの使用

次のような状況では、この属性を設定します。

たとえば、管理者に Engineering AdminRole と Marketing AdminRole が割り当てられ、その管理者が Engineering 組織に属すユーザーを編集する場合、そのユーザーに割り当てることができるリソースは、Engineering AdminRole によって制御される組織で使用できるリソースに制限されます。

scopingOrg 属性の実装

前述の動作を実装するには、ユーザーフォームの waveset.resources フィールドに scopingOrg 属性を追加します。

現在の組織で使用できる値を参照する方法は次のとおりです。

<Field name='waveset.resources'>

   <Display class='MultiSelect'>

      <Property name='title' value='_FM_PRIVATE_RESOURCES'/>

      <Property name='availableTitle'

          value='_FM_AVAILABLE_RESOURCES'/>

      <Property name='selectedTitle' value='_FM_SELECTED_RESOURCES'/>

      <Property name='allowedValues'>

         <invoke class='com.waveset.ui.FormUtil'

           name='getUnassignedResources'>

             <ref>:display.session</ref>

               <map>

                  <s>currentRoles</s>

                  <ref>waveset.roles</ref>

                  <s>currentResourceGroups</s>

                  <ref>waveset.applications</ref>

                  <s>current</s>

                  <ref>waveset.original.resources</ref>

                  <s>scopingOrg</s>

                  <ref>waveset.organization</ref>

               </map>

         </invoke>

      </Property>

   </Display>

</Field>

current

返される値とマージされる名前のリストを指定します。たとえば、選択されたすべての名前が必ず複数選択リストから選択できるようにするときは、通常、MultiSelect フィールドで選択される名前のリストを指定します。

conditions

この値は、3 つの方法で指定できます。

表 4-33 conditions 属性の値 

値の形式

説明

Map

<MapEntry> キーは、このタイプのオブジェクトがクエリーできる属性の名前で、2 番目は、関連付けられているクエリー可能属性を取得するために必要な、このタイプのオブジェクトの値です (演算子は「equals」と見なされる)。属性名と値の複数のペアを指定した場合は、それらは論理 and で連結されます。

<Map>

   <MapEntry key='memberObjectGroups' value='Top'/>

</Map>

map

最初のエントリは、このオブジェクトタイプがサポートする、クエリー可能な属性の名前です。2 番目のエントリは、関連付けられているクエリー可能属性を取得するために必要な、このタイプのオブジェクトの値です (演算子は「equals」と見なされる)。

属性名と値の複数のペアを指定した場合は、それらは論理 and で連結されます。

<map>

   <s>memberObjectGroups</s>

<ref>waveset.organizations</ref>

</map>

list

AttributeCondition オブジェクトを一覧表示します。複数の AttributeCondition を指定した場合は、それらは論理 and で連結されます。

<list>

  <newclass= 'com.waveset.object.AttributeCondition'>

     <s>MemberObjectGroups</s>

     <s>equals</s>

      <ref>waveset.organization</ref>

  </new>

</list>

conditions 属性の使用

オブジェクトタイプに固有の、1 つまたは複数のクエリー属性条件のリストを指定して、特定の FormUtil メソッドから返される名前のリストをフィルタリングできます。これらのメソッドには、引数として options マップを受け付けるメソッドが含まれます。これらのクエリー属性条件を、conditions をキーとしたクエリーオプションとして指定することができます。オプションの値にはマップ、または AttributeConditions のリストを指定できます。

例: condition 属性による名前のフィルタリング

次の例は、conditions 属性を使用して、オプションマップを引数として受け付ける FormUtil メソッドから返される名前のリストに、追加のフィルタを適用する方法を示しています。

例 1

<Field name='waveset.resources'>

   <Display class='MultiSelect' action='true'>

      ...

     <Property name='allowedValues'>

       <invoke class='com.waveset.ui.FormUtil'

         name='getUnassignedResources'>

           <ref>:display.session</ref>

               <map>

               <s>currentRoles</s>

               <ref>waveset.roles</ref>

               <s>currentResourceGroups</s>

               <ref>waveset.applications</ref>

               <s>current</s>

               <ref>waveset.original.resources</ref>

               <s>conditions</s>

                 <map>

               <s>supportsContainerObjectTypes</s>

               <s>true</s>

               <s>type</s>

               <s>LDAP</s>

                 </map>

               </map>

       </invoke>

     </Property>

   </Display>

</Field>

例 2

<Field name='orgResource'>

   <Display class='Select' action='true'>

       ...

      <Property name='allowedValues'>

        <invoke class='com.waveset.ui.FormUtil'

           name='getResourcesSupportingContainerObjectTypes'>

           <ref>:display.session</ref>

             <map>

                <s>conditions</s>

                <list>

                   <new class='com.waveset.object.AttributeCondition'>

                      <s>name</s>

                      <s>starts with</s>

                      <s>ldap</s>

                   </new>

                </list>

             </map>

        </invoke>

      </Property>

   </Display>

</Field>

例 3

<Field name='accounts[Lighthouse].capabilities'>

   <Display class='MultiSelect'>

         ...

     <Property name='allowedValues'>

        <invoke class='com.waveset.ui.FormUtil'

           name='getUnassignedCapabilities'>

           <ref>:display.session</ref>

           <ref>waveset.original.capabilities</ref>

             <map>

             <s>conditions</s>

               <list>

                  <new class='com.waveset.object.AttributeCondition'>

                    <s>name</s>

                    <s>starts with</s>

                    <s>bulk</s>

                  </new>

               </list>

             </map>

        </invoke>

     </Property>

   </Display>

</Field>

サポートされるクエリー可能属性の名前

サポートされるクエリー可能属性の名前は、オブジェクトタイプごとに次のように分類されます。

上記以外のクエリー可能属性の名前は UIConfig.xml に定義されます (たとえば、firstnamelastname)。

表 4-34 すべてのオブジェクトタイプ

クエリー可能な属性

説明

authType

該当する場合に、認証タイプを指定します (たとえば、Configuration や Rule などのタイプ)

id

このオブジェクトのリポジトリ ID を指定します

name

このオブジェクトの名前を指定します

memberObjectGroups

このオブジェクトにアクセスできる、またはこのオブジェクトが属す ObjectGroups を指定します

表 4-35 Account 

クエリー可能な属性

説明

accountId

リソースの accountId を指定します

accountExists

アカウントが存在するかどうかを指定します (true|false)

disabled

アカウントが無効化されているかどうかを指定します (true|false)

discoveredSituation

調整中に検出された初期状態を指定します。この状態は、confirmed と deleted が含まれます。

owner

このユーザーのリポジトリ ID を指定します (表示名は userid)

nativeGUID

リソースがこの属性をサポートする場合に、アカウントの GUID を指定します

resource

リソース名を指定します

resourceId

このリソースのリポジトリ ID を指定します (表示名は resource)

situation

検出された状況に応答が適用されたあとの、アカウントの状態を指定します。この状態は、confirmed、missing、deleted が含まれます。

situationChanged

状況が最後に変更された日時を指定します。

typeString

リソースタイプを指定します (たとえば、LDAP)

userid

このアカウントが割り当てられている Identity Manager ユーザーを一意に指定します

表 4-36 AdminGroup

クエリー可能な属性

説明

hidden

AdminGroup を非表示にするかどうかを指定します

memberAdminGroups

この AdminGroup に直接割り当てられる AdminGroups を一覧表示します

表 4-37 AdminRole

クエリー可能な属性

説明

controlledObjectGroups

この AdminRole によって制御される ObjectGroups を一覧表示します

memberAdminGroups

この AdminRole に割り当てられている AdminGroups を一覧表示します

adminGroupsRule

機能規則の名前を指定します

controlledObjectGroupsRule

制御される組織規則の名前を指定します

表 4-38 Configuration

クエリー可能な属性

説明

configType

設定を拡張するクラスの Java クラス名を指定します (たとえば、UserUIConfig、UserForm)

表 4-39 Event

クエリー可能な属性

説明

eventType

 

類似したイベントをグループ化するために、イベントタイプを指定します

表 4-40 LoginApp

クエリー可能な属性

説明

hidden

LoginApp を非表示にするかどうかを指定します

表 4-41 LoginModGroup

クエリー可能な属性

説明

hidden

 

LoginModGroup を非表示にするかどうかを指定します

表 4-42 ObjectGroup

クエリー可能な属性

説明

directoryJunction

ObjectGroup がディレクトリジャンクションであるかどうかを指定します

(true|false)

displayName

オブジェクトグループのユーザーの、判読可能な名前を指定します

表 4-43 Policy

クエリー可能な属性

説明

class

このポリシーを実装する Java クラスを指定します (たとえば、StringQualityPolicy)

typeString

ポリシーのタイプを指定します (たとえば、password または accountId)

表 4-44 Resource

クエリー可能な属性

説明

startupType

startupType を指定します。これには、disabled と automatic があります

supportsContainerObjectTypes

このリソースが、コンテナオブジェクトタイプをサポートするかどうかを指定します (true|false)

supportedObjectTypes

サポートされるオブジェクトタイプを指定します (たとえば、group、ou、o、domain)

supportsScanning

このリソースがスキャンをサポートするかどうかを指定します

(true|false)

syncSource

このリソースを Active Sync リソースにすることができるかどうかを指定します

(true|false)

type

リソースタイプを指定します (たとえば、LDAP、AIX、RACF)

表 4-45 Role

クエリー可能な属性

説明

role_resources

ロールに割り当てられているリソースを一覧表示します

role_approvers

ロールに割り当てられている承認者を一覧表示します

表 4-46 WorkItem

クエリー可能な属性

説明

dirty

 

itemType

作業項目のタイプを指定します (たとえば、approval または wizard)

owner

この作業項目の所有ユーザーを指定します

taskid

この作業項目を作成したタスクインスタンスのリポジトリ ID を指定します

表 4-47 User 

クエリー可能な属性

説明

adminRoles

このユーザーに割り当てられている AdminRoles のリストを指定します

controlledObjectGroups

このユーザーによって制御されるすべての ObjectGroups を一覧表示します (平常化された文字列)

correlationKey

一括読み込み時にユーザーを識別するためのキーを指定します

dis

現在の無効化状態を表す整数を指定します

0 は、アカウントなしを表します

1 は、一部が無効化されていることを表します

2 は、すべてが無効化されていることを表します

lhdis

Identity Manager ユーザーが無効化されているかどうかを指定します (true|false)

memberAdminGroups

このユーザーに割り当てられている AdminGroups を一覧表示します (平常化された文字列)

prov

現在のプロビジョニング状態を表す整数を指定します

1 は、更新が必要であることを表します

2 は、正常 (OK) 状態を表します

resourceAccountGuids

このユーザーに割り当てられているリソースアカウントの GUID を一覧表示します (accountGUID@resourceId)

resourceAccountIds

このユーザーに割り当てられているリソースアカウントの ID を一覧表示します (accountId@resourceId)

role

このユーザーに割り当てられているロールを一覧表示します

user_resources

このユーザーに割り当てられているリソースを一覧表示します

サポートされる演算子


前へ      目次      索引      次へ     


Part No: 820-1582.   Copyright 2006 Sun Microsystems, Inc. All rights reserved.