分享

Java连接openldap 增删改查操作

 王守奎的图书馆 2013-04-12
查询
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);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多