ldap数据库(ldap是什么意思)
本文目录
ldap是什么意思
LDAP指轻型目录访问协议。
轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP,/ˈɛldæp/)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
目录服务在开发内部网和与互联网程序共享用户、系统、网络、服务和应用的过程中占据了重要地位。例如,目录服务可能提供了组织有序的记录集合,通常有层级结构,例如公司电子邮件目录。同理,也可以提供包含了地址和电话号码的电话簿。
协议内容
LDAP目录与普通数据库的主要不同之处在于数据的组织方式,它是一种有层次的、树形结构。所有条目的属性的定义是对象类object class的组成部分,并组成在一起构成schema;那些在组织内代表个人的schema被命名为white pages schema。
如何使用java链接ldap数据库
public static void main(String args) { String url = “ldap://10.0.0.10:389/“; String domain = “dc=dtas,dc=com“; String user = “cn=administrator,cn=users“; String password = “111111“; 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); //queryUser(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 = “ou=myDeptSubDept,ou=myDept,dc=DS-66,dc=com“; 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(“=====================“); } } }
更多文章:
VR虚拟现实与VM虚拟制造有什么区别?VM虚拟机怎么新建虚拟机
2024年6月10日 19:55
maintain短语(英语maintain its effectiveness怎么翻译)
2024年6月21日 12:54
电脑显示shell什么意思(计算机上的“shell”是什么)
2024年10月18日 23:10
canvas保存psd(为什么我的openCanvas无法保存文件)
2024年5月16日 16:31
decode函数用法python(为什么python decode每效果)
2023年10月30日 10:00
accessory怎么记(auxiliary和accessery 的区别)
2024年7月19日 04:46
phonegap和eclipse(eclipse怎么配置phonegap完成nfc插件)
2024年5月16日 20:21
【计算机系统】进程和线程(process and thread)?进程 [jìn chéng]什么意思近义词和反义词是什么英文翻译是什么
2024年7月13日 05:10
特斯拉刹车失灵有几例(女子喇叭喊话特斯拉刹车失灵致追尾,特斯拉车辆都出过哪些事故)
2024年6月22日 02:52
脚本多线程是什么意思(Unity3d中的脚本是多线程还是单线程)
2024年7月5日 09:24
zookeeper官网(【ZooKeeper】ZooKeeper 3.4.14安装配置及简单使用)
2024年7月24日 01:10