【问题标题】:JAVA_LDAP: Removing user from groupJAVA_LDAP:从组中删除用户
【发布时间】:2016-05-12 09:40:04
【问题描述】:

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

    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=........' at 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)

  1. 为 uniqueMember -

javax.naming.directory.NoSuchAttributeException:[LDAP:错误代码 16 - 属性 uniquemember 的一个或多个值不存在]; 剩余名称 'cn=........' at 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)

【问题讨论】:

    标签: java ldap jndi


    【解决方案1】:
    1. 确保组条目具有“uniquemember”或“member”属性。
    2. 确保传递要删除的成员的完整 DN。 例如:cn=userMember,ou=xy,dc=xyx,dc=xzx
    3. 确保您有权(具有管理员权限)删除/更新目录条目。例如。仅适用于 SunOne LDAP cn=Directory Manager 有权创建/删除/更新条目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多