java连接Ldap
来源:互联网 发布:win7和ubuntu双系统 编辑:程序博客网 时间:2024/04/27 17:47
java连接Ldap 仅做个人学习之用
package com.nxw.test;import java.util.Enumeration;import java.util.Hashtable; import java.util.UUID;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.DirContext; import javax.naming.directory.InitialDirContext; import javax.naming.directory.SearchControls;import javax.naming.directory.SearchResult;import javax.naming.ldap.InitialLdapContext;import javax.naming.ldap.LdapContext;public class Ldap { public static void main(String[] args) { String url = "ldap://127.0.0.1:389/"; String domain = "dc=nxw,dc=org"; String user = "cn=manager"; String password = "secret"; Hashtable<String, String> env = new Hashtable<String, String>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); // LDAP 工厂 env.put(Context.SECURITY_AUTHENTICATION, "simple"); // LDAP访问安全级别 env.put(Context.PROVIDER_URL, url); env.put(Context.SECURITY_PRINCIPAL, user+","+domain); // 填DN env.put(Context.SECURITY_CREDENTIALS, password); // AD Password env.put("java.naming.ldap.attributes.binary", "objectSid objectGUID"); LdapContext ldapCtx = null; try { ldapCtx = new InitialLdapContext(env , null); queryGroup(ldapCtx); } catch (NamingException e) { e.printStackTrace(); } finally { if(ldapCtx != null) { try { ldapCtx.close(); } catch (NamingException e) { } } } } private static void queryGroup(LdapContext ldapCtx) throws NamingException { SearchControls searchCtls = new SearchControls(); searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); String searchFilter = "objectClass=organizationalUnit"; String searchBase = "dc=nxw,dc=org"; String returnedAtts[] = {"distinguishedName", "objectGUID", "name"}; searchCtls.setReturningAttributes(returnedAtts); NamingEnumeration<SearchResult> answer = ldapCtx.search(searchBase, searchFilter, searchCtls); while (answer.hasMoreElements()) { SearchResult sr = answer.next(); Attributes Attrs = sr.getAttributes(); if (Attrs != null) { NamingEnumeration<?> ne = Attrs.getAll(); while(ne.hasMore()) { Attribute Attr = (Attribute)ne.next(); String name = Attr.getID(); Enumeration<?> values = Attr.getAll(); if (values != null) { // 迭代 while (values.hasMoreElements()) { String value = ""; if("objectGUID".equals(name)) { value = UUID.nameUUIDFromBytes((byte[]) values.nextElement()).toString(); } else { value = (String)values.nextElement(); } System.out.println(name + " " + value); } } } System.out.println("=====================success!"); } } }}
通过java实现对Ldap的增删改操作 http://blog.csdn.net/nxw_tsp/article/details/52690376
所需jar包 http://download.csdn.net/detail/nxw_tsp/9642131
本博文参考 http://blog.csdn.net/zfpigpig/article/details/21176697
1 0
- 【Java】java连接ldap
- java连接到LDAP
- java连接Ldap
- JAVA实现LDAP连接验证
- JAVA实现LDAP连接验证
- 如何使用Java操作LDAP之LDAP连接(一)
- java连接微软AD(LDAP)
- java连接Ldap特定错误【error code】
- java+LDAP
- JAVA LDAP
- java ldap
- java 连接 LDAP 进行登录验证初接触
- LDAP SSL 连接
- JNDI 连接 LDAP
- LDAP连接配置
- Spring LDAP连接方式
- LDAP 与 Zeppelin 连接之一 ----- LDAP 搭建
- java通过ssl连接LDAP服务器(包括LDAP服务器搭建、openssl数字证书生成、openldap服务器配置启动)
- 解决Android中TextView首行缩进的问题
- 从一个小例子来初步认识递归,迭代,动态规划。
- Web前端面试指导(十六):为什么要初始化CSS样式?
- 第五周项目4 —— 数制转换
- iOS 一些总结
- java连接Ldap
- WebSocket的原理,以及和Http的关系
- MD5算法原理
- ThinkPHP 自动验证
- windbg连接不上vmware的问题
- jquery Table 基本的表格操作,增加,隐藏,删除!
- Android Studio如何生成APK文件
- java for循环里面的数组,并打印出来
- IO多路复用 --select、poll、epoll模式