JAVA_LDAP:从组中删除用户

JAVA_LDAP:从组中删除用户,java,ldap,jndi,Java,Ldap,Jndi,我正在尝试使用java代码从LDAP组中删除用户。虽然它看起来很简单,但它在member和uniquemember属性中抛出了错误 public String removeGroupMembership(InitialDirContext ctx, String sGroup, String sMember){ String status = ""; System.out.println("entered removeGroupMembership:"+sGroup);

我正在尝试使用java代码从LDAP组中删除用户。虽然它看起来很简单,但它在
member
uniquemember
属性中抛出了错误

    public String removeGroupMembership(InitialDirContext ctx, String sGroup, String sMember){
    String status = "";
    System.out.println("entered removeGroupMembership:"+sGroup);
    System.out.println("The memeber to be added is: "+sMember);
    ModificationItem mods[] = new ModificationItem[1];
    mods[0]= new ModificationItem(InitialDirContext.REMOVE_ATTRIBUTE, new BasicAttribute("member", sMember));
      try {
        ctx.modifyAttributes(sGroup,mods);
        System.out.println("Group Modified");
错误- 1.就议员而言—

javax.naming.directory.SchemaViolationException:[LDAP:错误代码65-在强制或可选属性列表中找不到成员。]; 剩余名称“cn=………”位于 com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3166)位于 com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3081)位于 com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2888)位于 com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1475)位于 com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:277) 在 com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:192) 在 com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:181) 在 javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:167) 在 test.bulk.RemoveGroupFromUser.removeGroupMembership(RemoveGroupFromUser.java:69) 位于test.bulk.RemoveGroupFromUser.main(RemoveGroupFromUser.java:32)

  • 唯一会员-
  • javax.naming.directory.NoSuchAttributeException:[LDAP:错误代码16-属性uniquemember的一个或多个值不存在]; 剩余名称“cn=………”位于 com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3156)位于 com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3081)位于 com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2888)位于 com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1475)位于 com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:277) 在 com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:192) 在 com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:181) 在 javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:167) 在 test.bulk.RemoveGroupFromUser.removeGroupMembership(RemoveGroupFromUser.java:69) 位于test.bulk.RemoveGroupFromUser.main(RemoveGroupFromUser.java:32)

  • 确保组条目具有“uniquemember”或“member”属性
  • 确保传递要删除的成员的完整DN。 例如:cn=userMember,ou=xy,dc=xyx,dc=xzx
  • 确保您有权(拥有管理员权限)删除/更新目录项。例如,对于SunOne LDAP,只有cn=目录管理器有权创建/删除/更新条目