通过使用 GroupMembershipControl,使用样本代码片段和数据图从组中移除用户。
以下样本代码片段显示如何通过使用 update() 方法和 GroupMembershipControl 从组中移除用户。有关使用 GroupMemberControl 从组中移除用户的样本代码,请参阅“处理用户、组、组成员和组成员资格的样本代码”主题。
确保您已阅读了“编程先决条件”主题中的信息并完成了其中描述的步骤。
在您执行以下样本代码之前,请确保您已创建了用户和组,并将用户分配为组成员。有关可执行此操作的样本代码,请参阅“处理用户、组、组成员和组成员资格的样本代码”主题。
请将以下代码片段添加到您的应用程序代码,并将变量替换为您要使用的实际值。
/**
* rmMemberFromGroupUsingGroupMembershipControl
* Removes the user from the group using the group membership control
* @param memberDn uniqueName of the user
* @param groupDn uniqueame of the group
*/
public static void rmMemberFromGroupUsingGroupMembershipControl(String memberDn, String groupDn)
{
try
{
DataObject root = SDOHelper.createRootDataObject(); DataObject entity = SDOHelper.createEntityDataObject(root, null, SchemaConstants.DO_GROUP);
// Set the group uniqueName
entity.createDataObject(SchemaConstants.DO_IDENTIFIER).set(SchemaConstants.PROP_UNIQUE_NAME,
groupDn);
DataObject member1 = SDOHelper.createDataObject(SchemaConstants.WIM_NS_URI,
SchemaConstants.DO_ENTITY);
// Set the member uniqueName
member1.createDataObject(SchemaConstants.DO_IDENTIFIER).setString(SchemaConstants.PROP_UNIQUE_NAME,
memberDn);
// Get the member of the group that need to be unassigned
entity.getList(SchemaConstants.DO_MEMBERS).add(member1);
// Set the Group membership control
DataObject grpMbrCtrl = SDOHelper.createControlDataObject(root, null,
SchemaConstants.DO_GROUP_MEMBERSHIP_CONTROL);
// Unassign mode to remove member from the group
grpMbrCtrl.setInt(SchemaConstants.PROP_MODIFY_MODE, SchemaConstants.VALUE_MODIFY_MODE_UNASSIGN);
System.out.println("Input datagraph before removing user from group using Group Membership control"
+ printDO(root));
// Update the group to remove its member
root = service.update(root); System.out.println("Output datagraph after removing user from group using Group Membership control"
+ printDO(root));
}
catch (Exception e) {
e.printStackTrace();
}
}
用于通过使用 GroupMembershipControl 从组中移除成员的输入数据图:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sdo="commonj.sdo" xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:Root>
<wim:entities xsi:type="wim:Group">
<wim:identifier uniqueName="cn=group2,o=defaultWIMFileBasedRealm"/>
<wim:members>
<wim:identifier uniqueName="uid=user2,o=defaultWIMFileBasedRealm"/>
</wim:members>
</wim:entities>
<wim:controls xsi:type="wim:GroupMembershipControl" modifyMode="3"/>
</wim:Root>
</sdo:datagraph>
通过使用 GroupMembershipControl 从组中移除成员之后的输出数据图:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sdo="commonj.sdo" xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:Root>
<wim:entities xsi:type="wim:Group">
<wim:identifier externalName="cn=group2,o=defaultWIMFileBasedRealm" repositoryId="InternalFileRepository"
uniqueId="5187a438-cacc-4fe7-8aa7-c06aa76cec11" uniqueName="cn=group2,o=defaultWIMFileBasedRealm"/>
</wim:entities>
</wim:Root>
</sdo:datagraph>