查询 DirContext ctx = ... SearchControls constraints = new SearchControls(); constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); //constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE); //NamingEnumeration en = ctx.search( " ", "uid=* ", constraints); //查询所有用户 NamingEnumeration en = ctx.search("", "uid=*", constraints); while (en != null && en.hasMoreElements()) { Object obj = en.nextElement(); if(obj instanceof SearchResult) { SearchResult si = (SearchResult) obj; System.out.println( "name: " + si.getName()); Attributes attrs = si.getAttributes(); if (attrs == null) { System.out.println( "No attributes "); } else { for (NamingEnumeration ae = attrs.getAll(); ae.hasMoreElements();) { Attribute attr = (Attribute) ae.next(); String attrId = attr.getID(); for (Enumeration vals = attr.getAll();vals.hasMoreElements();) { System.out.print(attrId + ": "); Object o = vals.nextElement(); if(o instanceof byte[]) System.out.println(new String((byte[])o)); else System.out.println(o); } } } } else { System.out.println(obj); } System.out.println(); } ... ctx.close(); 添加 DirContext ctx = ...; String newUserName = "user2 "; BasicAttributes attrs = new BasicAttributes(); BasicAttribute objclassSet = new BasicAttribute( "objectclass "); objclassSet.add( "person "); objclassSet.add( "top "); objclassSet.add( "organizationalPerson "); objclassSet.add( "inetOrgPerson "); attrs.put(objclassSet); attrs.put( "sn ", newUserName); attrs.put( "uid ", newUserName); ctx.createSubcontext( "uid= " + newUserName, attributes); ... 删除 String account = "user2 "; DirContext ctx = ...; ctx.destroySubcontext( "uid= " + account); 修改 String account = "user2 "; String newDisplayName = "newDisplayName "; ModificationItem modificationItem[] = new ModificationItem[1]; modificationItem[0] = new ModificationItem( DirContext.REPLACE_ATTRIBUTE, new BasicAttribute( "displayName ", newDisplayName); DirContext ctx = ...; ctx.modifyAttributes( "uid= " + account, modificationItem);
|
|