欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java操作openDS,javaopends,[Java]代码publ

来源: javaer 分享于  点击 36845 次 点评:45

java操作openDS,javaopends,[Java]代码publ


[Java]代码

public class OpenDSExamples { public static void main(String[] args) throws NamingException {  DirContext dirContext = createLdapContext();// 连接OpenDS服务器  JNDIDirContextAdaptor adaptor = JNDIDirContextAdaptor.adapt(dirContext);  // do other stuff with the adaptor  try {   String newUserName = "admin";   BasicAttributes attrsbu = new BasicAttributes();   BasicAttribute objclassSet = new BasicAttribute("objectclass");   objclassSet.add("person");   objclassSet.add("top");   objclassSet.add("organizationalPerson");   objclassSet.add("inetOrgPerson");   attrsbu.put(objclassSet);   attrsbu.put("sn", newUserName);   attrsbu.put("uid", newUserName);   attrsbu.put("displayName", "********@163.com");   attrsbu.put("userPassword", "Administrator");   LdapName dn = new LdapName("cn=admin,dc=example,dc=com");   // 增加节点   //adaptor.createEntry(dn, attrsbu);   System.out.println("成功增加cn=admin");   // 修改节点   //attrsbu.put("displayName", "管理员");   //adaptor.modifyEntry(dn, attrsbu);   System.out.println("成功修改cn=admin");   // 查找节点   SearchControls constraints = new SearchControls();   constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);   boolean isExists = adaptor.entryExists(dn);   if (isExists) {    System.out.println("查找:存在cn=admin");   }   else {    System.out.println("查找:不存在cn=admin");   }   java.util.Vector ve = new java.util.Vector();   NamingEnumeration em = getFilter("dc=example,dc=com", "cn=*", 10);   while (em != null && em.hasMoreElements()) {    SearchResult rs = (SearchResult) em.nextElement();    String db = rs.getName();    System.out.println("名称=====" + rs.getName());    System.out.println("全部属性====" + rs.getAttributes());    System.out.println("得到某一个属性===="      + rs.getAttributes().get("displayname"));    if (db.trim().equals(""))     ve.add(dn);    else     ve.add(db + "," + dn);   }   System.out.println("共有几条记录====" + ve.size());   /*    * //删除节点    *     * adaptor.deleteSubtree(dn);    *     * System.out.println("成功删除cn=admin");    *     * isExists = adaptor.entryExists(dn);    *     * if(isExists){    *     * System.out.println("查找:存在cn=admin");    *  }    *     * else{    *     * System.out.println("查找:不存在cn=admin");    *  }    */  } catch (Exception e) {   System.out.println("adaptor操作cn=admin出错");   e.printStackTrace();  } } /**  * 返回用户查询接口  * @param DN  查找范围 ou=test,dc=abcd,dc=com  * @param filter 过滤条件 cn=*  * @param myserach 搜索范围  * @return  LDAP标准接口  * @throws Exception  */ @SuppressWarnings("unchecked") public static javax.naming.NamingEnumeration getFilter(String DN,   String filter, int myserach) throws Exception {  DirContext ctx = createLdapContext();  try {   NamingEnumeration em;   SearchControls con = new SearchControls();   con.setSearchScope(myserach);   em = ctx.search(DN, filter, con);   return em;  } finally {   //  } } /**  * 设置条件查找  * @param dn  查找的根结点  * @param filter 查找条件  * @param level 查找范围  * @return  返回一个由DN组成的JAVA STRING 列表  * @throws Exception  */ @SuppressWarnings("unchecked") public java.util.Vector getfilterNodes(String dn, String filter, int level)   throws Exception {  java.util.Vector ve = new java.util.Vector();  NamingEnumeration em = getFilter(dn, filter, level);  while (em != null && em.hasMoreElements()) {   SearchResult rs = (SearchResult) em.nextElement();   String db = rs.getName();   if (db.trim().equals(""))    ve.add(dn);   else    ve.add(db + "," + dn);  }  return ve; } @SuppressWarnings("unchecked") private static DirContext createLdapContext() throws NamingException {  Hashtable env = new Hashtable();  env.put(Context.INITIAL_CONTEXT_FACTORY,  "com.sun.jndi.ldap.LdapCtxFactory");  env.put(Context.PROVIDER_URL, "ldap://192.168.1.102:389");  env.put(Context.SECURITY_AUTHENTICATION, "simple");  env.put(Context.SECURITY_PRINCIPAL, "cn=root");  env.put(Context.SECURITY_CREDENTIALS, "root");  DirContext ctx = null;  try {   ctx = new InitialLdapContext(env, null);   System.out.println("认证成功");  } catch (Exception e) {   System.out.println("认证出错:");   e.printStackTrace();  }  return ctx; }}
相关栏目:

用户点评