动态添加新的领域

使用此过程可在运行时动态地向当前配置中添加新领域。

关于此任务

注: 进行此动态调用时,仅会更新内存中的配置。不会更新配置文件。
事件类型
DYNA_CONFIG_EVENT_ADD_REALM
配置数据
DYNA_CONFIG_KEY_REALM_CONFIG (required) - [DataObject]
根据 wimconfig.xsd 文件来指定领域配置数据对象。
以下是一个样本任务:

过程

  1. 请确保 virtual member manager 正在运行。
  2. 向 virtual member manager 配置中添加一个新领域。 例如:
    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);


使用条款 | 反馈