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);