2016-05-12 65 views
1

我想从一个使用java代码的LDAP组中删除一个用户。虽然它看起来非常简单,但它与memberuniquemember属性一起抛出错误。JAVA_LDAP:从组中删除用户

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)at com.sun.jndi.ldap.LdapCtx.processReturnCode( LdapCtx.java:3081)at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2888)at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1475)at 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) at 个javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:167) 在 test.bulk.RemoveGroupFromUser.removeGroupMembership(RemoveGroupFromUser.java:69) 在test.bulk.RemoveGroupFromUser.main(RemoveGroupFromUser.java:32)

  • 为uniqueMember -
  • javax.naming.directory.NoSuchAttributeException:[LDAP:错误代码16 - 一个或多个值uniqueMember属性的确没有IST]; 剩余名称'cn = ........'at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3156)at com.sun.jndi.ldap.LdapCtx.processReturnCode( LdapCtx.java:3081)at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2888)at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1475)at 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) at 个javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:167) 在 test.bulk.RemoveGroupFromUser.removeGroupMembership(RemoveGroupFromUser.java:69) 在test.bulk.RemoveGroupFromUser.main(RemoveGroupFromUser.java:32)

    回答

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