新規エンティティー・タイプ構成の動的な追加

サポートされている新規エンティティー・タイプ構成を動的に追加するには、以下の手順を使用します。

始める前に

このエンティティー・タイプが既にスキーマに存在している必要があります。

このタスクについて

注: この動的呼び出しが実行されると、メモリー内の構成のみが更新されます。構成ファイルは更新されません。
イベント・タイプ
DYNA_CONFIG_EVENT_ADD_ENTITY_CONFIG
構成データ
DYNA_CONFIG_KEY_ENTITY_TYPE (必須) - [ストリング]
追加するエンティティー・タイプの修飾名を指定します。
DYNA_CONFIG_KEY_RDNS (必須) - [リスト]
エンティティー・タイプの相対識別名 (RDN) プロパティーを指定します。
DYNA_CONFIG_KEY_DEFAULT_PARENT (必須) - [ストリング]
エンティティー・タイプのデフォルトの親を指定します。
DYNA_CONFIG_KEY_ENTITY_CONFIGS - [ハッシュ・テーブル]
ハッシュ・テーブルのキー (リポジトリー ID) を指定します。 ハッシュ・テーブルの値はデータ・オブジェクトです。例えば、リポジトリーが LDAP リポジトリーである場合、データ・オブジェクトは LdapEntityTypes です。このデータ・オブジェクトには LDAP アダプター固有の構成設定がすべて含まれています。 リポジトリーで特別の設定が不要な場合 (データベース・リポジトリーなど)、このパラメーターは必要ありません。
次にサンプル・タスクを示します。

手順

  1. Virtual member manager が稼働していることを確認します。
  2. dynamicUpdateConfig API メソッドを呼び出し、新規エンティティー構成を追加します。 例えば、PersonAccount エンティティー・タイプを追加する場合は以下のようになります。
    // dynamic update
    Hashtable configData = new Hashtable();
    configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_REPOS_ID, "LDAP1");
    configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_ENTITY_TYPE, DO_PERSON_ACCOUNT);
    List rdns = new ArrayList();
    rdns.add("uid");
    configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_RDNS, rdns);
    configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_DEFAULT_PARENT, "cn=users,dc=yourco,dc=com");
    DataObject configProvider = SDOHelper.createConfigProviderDataObject();
    DataObject ldapRepos = SDOHelper.createConfigRepositoryDataObject(configProvider,
                           ConfigConstants.CONFIG_DO_LDAP_REPOSITORY_TYPE);
    DataObject ldapEntity = ldapRepos.createDataObject(ConfigConstants.CONFIG_DO_LDAP_ENTITY_TYPES);
    ldapEntity.setString(ConfigConstants.CONFIG_PROP_NAME, DO_PERSON_ACCOUNT);
    ldapEntity.getList(CONFIG_DO_OBJECTCLASSES).add("ePerson");
    ldapEntity.getList(CONFIG_DO_OBJECTCLASSES_FOR_CREATE).add("inetOrgPerson");
    ldapEntity.getList(CONFIG_DO_OBJECTCLASSES_FOR_CREATE).add("ePerson");
    Hashtable entityConfigs = new Hashtable();
    entityConfigs.put("LDAP1", ldapEntity);
    configData.put(DynamicConfigConstants.DYNA_CONFIG_KEY_ENTITY_CONFIGS, entityConfigs);
    service.dynamicUpdateConfig(DynamicConfigConstants.DYNA_CONFIG_EVENT_ADD_ENTITY_CONFIG, configData);


利用条件 | フィードバック