Use this procedure to dynamically add a new realm to the current configuration at runtime.
Hashtable configData = new Hashtable();
DataObject realmCfgDO = SDOHelper.createConfigDataObject(null, Service.WIM_CONFIG_NS_URI,
Service.CONFIG_DO_REALM_CONFIG);
DataObject realmDO = SDOHelper.createConfigDataObject(realmCfgDO, Service.WIM_CONFIG_NS_URI,
Service.CONFIG_DO_REALMS);
realmDO.setString(Service.CONFIG_PROP_NAME, "NewRealm");
realmDO.setString(Service.CONFIG_PROP_SECURITY_USE, "active");
realmDO.setString(Service.CONFIG_PROP_DELIMITER, "@");
DataObject partBaseEntry = SDOHelper.createConfigDataObject(realmDO, Service.WIM_CONFIG_NS_URI,
Service.CONFIG_DO_PARTICIPATING_BASE_ENTRIES);
partBaseEntry.set(Service.CONFIG_PROP_NAME, "cn=realmusers,dc=yourco,dc=com");
DataObject defaultParentDO = SDOHelper.createConfigDataObject(realmDO, Service.WIM_CONFIG_NS_URI,
Service.CONFIG_DO_DEFAULT_PARENTS);
defaultParentDO.setString(Service.CONFIG_PROP_ENTITY_TYPE_NAME, "PersonAccount");
defaultParentDO.setString(Service.CONFIG_PROP_PARENTS_UNIQUE_NAME, "cn=realmusers,dc=yourco,dc=com");
DataObject uniqueUserIdMappingDO = SDOHelper.createConfigDataObject(realmDO,
Service.WIM_CONFIG_NS_URI,Service.CONFIG_DO_UNIQUE_USER_ID_MAPPING);
uniqueUserIdMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_INPUT, "uniqueName");
uniqueUserIdMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_OUTPUT, "uniqueName");
DataObject userSecurityNameMappingDO = SDOHelper.createConfigDataObject(realmDO,
Service.WIM_CONFIG_NS_URI,Service.CONFIG_DO_USER_SECURITY_NAME_MAPPING);
userSecurityNameMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_INPUT, "principalName");
userSecurityNameMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_OUTPUT, "externalName");
DataObject userDisplayNameMappingDO = SDOHelper.createConfigDataObject(realmDO,
Service.WIM_CONFIG_NS_URI,Service.CONFIG_DO_USER_DISPLAY_NAME_MAPPING);
userDisplayNameMappingDO.setString(CONIG_PROP_PROPERTY_FOR_INPUT, "principalName");
userDisplayNameMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_OUTPUT, "principalName");
DataObject uniqueGroupIdMappingDO = SDOHelper.createConfigDataObject(realmDO,
Service.WIM_CONFIG_NS_URI,Service.CONFIG_DO_UNIQUE_GROUP_ID_MAPPING);
uniqueGroupIdMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_INPUT, "uniqueName");
uniqueGroupIdMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_OUTPUT, "uniqueName");
DataObject groupSecurityNameMappingDO = SDOHelper.createConfigDataObject(realmDO,
Service.WIM_CONFIG_NS_URI,Service.CONFIG_DO_GROUP_SECURITY_NAME_MAPPING);
groupSecurityNameMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_INPUT, "cn");
groupSecurityNameMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_OUTPUT, "externalName");
DataObject groupDisplayNameMappingDO = SDOHelper.createConfigDataObject(realmDO,
Service.WIM_CONFIG_NS_URI,CONFIG_DO_GROUP_DISPLAY_NAME_MAPPING);
groupDisplayNameMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_INPUT, "cn");
groupDisplayNameMappingDO.setString(Service.CONIG_PROP_PROPERTY_FOR_OUTPUT, "cn");
configData.put(Service.DYNA_CONFIG_KEY_REALM_CONFIG, realmDO);
service.dynamicUpdateConfig(Service.DYNA_CONFIG_EVENT_ADD_REALM, configData);