java测试类调用LDAP服务器客户端信息实行增删改查
来源:互联网 发布:西医综合网络课程 编辑:程序博客网 时间:2024/06/16 17:31
如下是我自写的java测试类调用客户端配置好的用户信息:
package com;import java.io.UnsupportedEncodingException;import java.util.Arrays;import java.util.Hashtable;import javax.naming.Context;import javax.naming.NamingEnumeration;import javax.naming.NamingException;import javax.naming.directory.Attribute;import javax.naming.directory.Attributes;import javax.naming.directory.BasicAttribute;import javax.naming.directory.BasicAttributes;import javax.naming.directory.DirContext;import javax.naming.directory.SearchControls;import javax.naming.directory.SearchResult;import javax.naming.ldap.Control;import javax.naming.ldap.InitialLdapContext;import javax.naming.ldap.LdapContext;public class UserAuthenticate { private String URL = "ldap://localhost:10389"; private String BASEDN = "cn=zhangsan,ou=users,ou=system"; private String FACTORY = "com.sun.jndi.ldap.LdapCtxFactory"; private LdapContext ctx = null; private Hashtable env = null; private Control[] connCtls = null; @SuppressWarnings({ "unchecked", "rawtypes", "unused" }) public void LDAP_connect() { env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, FACTORY); env.put(Context.PROVIDER_URL, URL); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, "cn=lisi;ou=users;ou=system"); env.put(Context.SECURITY_CREDENTIALS, "123456"); // env.put("", "secret"); try { ctx = new InitialLdapContext(env, connCtls); } catch (NamingException e) { e.printStackTrace(); } } public void getUserDN() { String dn = "zhangsan"; SearchControls controls = new SearchControls(); //限制要查询的字段内容 controls.setSearchScope(SearchControls.SUBTREE_SCOPE); //设置过滤条件 String filter = "(&(objectClass=top)(objectClass=person)(cn=" + dn + "))"; //设置被返回的attribute controls.setReturningAttributes(new String[] { "uid", "userPassword", "displayName", "cn", "sn", "mail", "description" }); try { //控制搜索的搜索条件,如果为null则使用默认的搜索控件,要搜索的属性如果为null则返回目标上下文中的所有对象 NamingEnumeration answer = ctx .search("ou=system", filter, controls); while (answer.hasMore()) { SearchResult result = (SearchResult) answer.next(); NamingEnumeration en = result.getAttributes().getAll(); if (en == null) { System.out.println("Have no NamingEnumeration"); } if (!en.hasMoreElements()) { System.out.println("Have no element"); } //输出查询到的结果 while (en.hasMore()) { Attribute attr = (Attribute) en.next(); System.out.println(attr.getID() + "=" + attr.get()); } } } catch (NamingException e) { e.printStackTrace(); } } public void testAdd() throws Exception { Attributes attrs = new BasicAttributes(true); Attribute objclass = new BasicAttribute("objectclass"); String[] attrObjectClassPerson = { "inetOrgPerson", "organizationalPerson", "person", "top" }; Arrays.sort(attrObjectClassPerson); for (String ocp : attrObjectClassPerson) { objclass.add(ocp); } attrs.put(objclass); String uid = "zhangsan"; String userDN = "uid=" + uid + "," + "ou=system"; attrs.put("cn", uid); attrs.put("sn", uid); attrs.put("displayName", "张三"); attrs.put("description", "not null"); attrs.put("mail", "abc@126.com"); attrs.put("userPassword", "11111".getBytes("UTF-8")); ctx.createSubcontext(userDN, attrs); } public void testDelete(){ String uid = "zhangsan"; String userDN = "uid="+ uid +","+"ou=system"; try { ctx.destroySubcontext(userDN); } catch (NamingException e) { e.printStackTrace(); } } public boolean testEdit(){ boolean result = true; String uid = "zhangsan"; String userDN = "uid="+ uid +","+"ou=system"; Attributes attr = new BasicAttributes(true); attr.put("mail","zhangsan@163.com"); try { ctx.modifyAttributes(userDN, DirContext.REPLACE_ATTRIBUTE, attr); } catch (NamingException e) { e.printStackTrace(); } return result; } public static void main(String[] args) { UserAuthenticate test = new UserAuthenticate(); // test.getUserDN("zhangsan;ou=users;ou=system"); try { test.LDAP_connect(); //test.testAdd(); test.getUserDN(); //test.testEdit(); //test.testDelete(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
2 0
- java测试类调用LDAP服务器客户端信息实行增删改查
- ldap 增删改查
- ldap增删改查
- ldap 增删改查
- java ad域 ldap 实现增删改查
- jndi操作Ldap进行增删改查
- 封装LDAP 增删改查 方法
- ldap的增删改查基本操作
- java 调用solr服务器 实现增删改查 及高亮显示
- JPA客户端增删改查
- 增删改查测试点
- java增删改查JDBC封装类
- java代码LDAP操作(增删改查)AD(活动目录)- 修改
- java实现LDAP 部门和用户的增删改查 实现过程
- JAVA API调用elasticsearch实现基本增删改查
- 百度鹰眼Java接口调用增删改查实例
- java连接mysql增删改查测试通过
- java编程Mysql数据库安装以及增删改查测试
- s3c2440 LCD(sony x35)
- 搭建自己的github ---Gitorious
- 文章标题
- wamp环境搭建
- hdu4649 概率dp
- java测试类调用LDAP服务器客户端信息实行增删改查
- 使用MarkDown编辑器
- php页面运行时间记录
- POJ 3090 Visible Lattice Points(欧拉函数)
- vsphere中的evc介绍
- input子系统分析
- android开发之用户头像上传
- hdu5113(dfs+剪枝)
- 安卓 NDK JNI 使用(五) -- so , jar 包