动态添加新的实体类型配置

使用此过程可动态添加新的受支持实体类型配置。

开始之前

模式中必须已存在此实体类型。

关于此任务

注: 进行此动态调用时,仅会更新内存中的配置。不会更新配置文件。
事件类型
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 - [散列表]
指定散列表的密钥,即存储库标识。 散列表的值是一个数据对象。例如,如果存储库是 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);


使用条款 | 反馈