Use este procedimento para incluir dinamicamente uma nova configuração de tipo
de entidade suportada.
Antes de Iniciar
Esse tipo de entidade já deverá existir no esquema.
Sobre Esta Tarefa
Nota: Quando essa chamada dinâmica é
feita, somente a configuração na memória é atualizada. O arquivo de configuração não
é atualizado.
- Tipo de Evento
- DYNA_CONFIG_EVENT_ADD_ENTITY_CONFIG
- Dados de Configuração
- DYNA_CONFIG_KEY_ENTITY_TYPE (required) - [String]
- Especifica o nome qualificado do tipo de entidade a ser incluído.
- DYNA_CONFIG_KEY_RDNS (required) - [List]
- Especifica as propriedades do nome distinto relativo (RDN) do tipo de entidade.
- DYNA_CONFIG_KEY_DEFAULT_PARENT (required) - [String
- Especifica o pai padrão do tipo de entidade.
- DYNA_CONFIG_KEY_ENTITY_CONFIGS - [Hashtable]
- Especifica a chave da hashtable, que é o ID do repositório.
O valor da hashtable é um objeto de dados. Por exemplo, se for um repositório LDAP, o
objeto de dados será LdapEntityTypes, que contém todas as definições de configuração
específicas do adaptador LDAP.
Se o repositório não precisar de nenhuma configuração
específica (como repositório de banco de dados), esse parâmetro não será necessário.
A seguir, uma tarefa de
amostra:
Procedimento
- Assegure-se de que o gerenciador de membro virtual esteja em execução.
- Chame o método da API dynamicUpdateConfig para incluir a nova configuração de
entidade. Por exemplo, para incluir um tipo de entidade PersonAccount:
// atualização dinâmica
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);