Utilice este procedimiento para añadir dinámicamente una nueva configuración
de tipo de entidad soportada.
Antes de empezar
Este tipo de entidad ya debe existir en el esquema.
Acerca de esta tarea
Nota: Cuando se realiza esta llamada dinámica, sólo se actualiza la
configuración en la memoria. El archivo de configuración no se actualiza.
- Tipo de suceso
- DYNA_CONFIG_EVENT_ADD_ENTITY_CONFIG
- Datos de configuración
- DYNA_CONFIG_KEY_ENTITY_TYPE (necesario) - [Serie]
- Especifica el nombre calificado del tipo de entidad que debe añadirse.
- DYNA_CONFIG_KEY_RDNS (necesario) - [Lista]
- Especifica las propiedades de nombre distinguido relativo (RDN) del tipo de entidad.
- DYNA_CONFIG_KEY_DEFAULT_PARENT (necesario) - [Serie
- Especifica el padre predeterminado del tipo de entidad.
- DYNA_CONFIG_KEY_ENTITY_CONFIGS - [Tabla hash]
- Especifica la clave de la tabla hash, que es el ID de depósito.
El valor de la tabla hash es un objeto de datos. Por ejemplo, si el depósito es un
depósito LDAP, el objeto de datos es LdapEntityTypes, que contiene los valores de
todas las configuraciones específicas del adaptador LDAP.
Si el depósito no necesita ningún valor específico (como el depósito de base
de datos), este parámetro no es necesario.
A
continuación se proporciona una tarea de ejemplo:
Procedimiento
- Asegúrese de que virtual member manager se esté ejecutando.
- Invoque el método de API dynamicUpdateConfig para añadir la nueva configuración de
entidad. Por ejemplo, para añadir un tipo de entidad PersonAccount:
// actualización 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);