编写LDAP访问程序; a) JAVA i. JNDI(JAVA 命名及目录接口) JNDI是JAVA为命名及目录服务访问制定的基础接口标准,用于访问包括DNS,NIS,LDAP,文件系统等任何以树目录形式存在目标对象,并且基本上可保持访问方式的一致(意味着代码共用)。对于不同的目录类型,JNDI通过使用不同的目录驱动,以保证访问方式的一致。
以下连接可获得较详细的讲解和例程:http://java.sun.com/products/jndi/tutorial/
经常使用的LDAP驱动有JDK自带的LDAP provider,还有IBM的PROVIDER,以及NOVEL的JNDI产品。需要提醒的是,JNDI中最重要的概念是上下文context,即定位从那一个入口开始操作,相当于openldap命令行中的-D开关的作用。其他的操作都是该上下文对象的调用。
LDAP通过JNDI添加条目是基于DirContext类的操作。由于JAVA只能以对象方式向LDAP添加条目,因此,必须首先具备实现DirContext接口的类,或使用DirContext(扩充了context接口)代替context,然后才能通过ctx.bind()的方法把该类添加到目录中。
JAVA-LDAP-ADD的操作可以有三种方式:
Context.bind()或ctx.createSubcontext("name");
或DirContext.bind(“dn”,attrs,object)的方式。对于没有预先编写实现DirContext接口的类对象的添加,这是唯一的办法。
ii. JLDAP
JLDAP是由novel开发的,原是针对Novel的NDS目录设计的JAVA访问工具。NOVEL的NDS和网景(NETSCAPE)的目录是工具界最早的目录产品。JLDAP并非JNDI的服务供应者,而是同一抽象层次下的访问工具集。与JNDI-LDAP相比,JLDAP更接近于类关系数据库的访问方式。
NDS是遵守LDAP协议的并进行了扩展的类MAD产品。而NOVEL也已把JLDAP捐献给了OPENLDAP开源项目,可以世界范围内自由使用。与JNDI相比,JLDAP无须继承DirContext才能实现添加,也无需预先生成添加的类,可以象普通数据访问那样,生成连接,然后使用::add方法添加。这样,添加的灵活性要强于JNDI。
但由于JLDAP目前是访问NDS,因此,它不具备JNDI完全面向对象存储的能力,对于高级的LDAP应用,JLDAP不是合适的选择。
例:
java 代码
- import com.novell.ldap.*;
-
- public class AddEntry
-
- {
-
- public static void main( String[] args )
-
- {
-
- if (args.length != 4) {
-
- System.err.println("Usage: java AddEntry
-
- + " " );
-
- System.err.println("Example: java AddEntry Acme.com"
-
- + " \"cn=admin,o=Acme\" secret \"ou=Sales,o=Acme\"");
-
- System.exit(1);
-
- }
-
-
-
- int ldapPort = LDAPConnection.DEFAULT_PORT;
-
- int ldapVersion = LDAPConnection.LDAP_V3;
-
- String ldapHost = args[0];
-
- String loginDN = args[1];
-
- String password = args[2];
-
- String containerName = args[3];
-
- LDAPConnection lc = new LDAPConnection();
-
- LDAPAttribute attribute = null;
-
- LDAPAttributeSet attributeSet = new LDAPAttributeSet();
-
-
-
-
-
-
-
-
- String objectclass_values[] = { "inetOrgPerson" };
-
- attribute = new LDAPAttribute( "objectclass", objectclass_values );
-
- attributeSet.add( attribute );
-
- String cn_values[] = { "James Smith", "Jim Smith", "Jimmy Smith" };
-
- attribute = new LDAPAttribute( "cn", cn_values );
-
- attributeSet.add( attribute );
-
- String givenname_values[] = { "James", "Jim", "Jimmy" };
-
- attribute = new LDAPAttribute( "givenname", givenname_values );
-
- attributeSet.add( attribute );
-
- attributeSet.add( new LDAPAttribute( "sn", "Smith" ) );
-
- attributeSet.add( new LDAPAttribute( "telephonenumber",
-
- "1 801 555 1212" ) );
-
- attributeSet.add( new LDAPAttribute( "mail", "JSmith@Acme.com" ) );
-
- String dn = "cn=JSmith," + containerName;
-
- LDAPEntry newEntry = new LDAPEntry( dn, attributeSet );
-
- try {
-
-
-
- lc.connect( ldapHost, ldapPort );
-
-
-
- lc.bind( ldapVersion, loginDN, password );
-
- lc.add( newEntry );
-
- System.out.println( "\nAdded object: " + dn + " successfully." );
-
-
-
- lc.disconnect();
-
- }
-
- catch( LDAPException e ) {
-
- System.out.println( "Error: " + e.toString());
-
- }
-
- System.exit(0);
-
- }
-
- }
分享到:
相关推荐
**标题与描述解析** 标题"RFC1823 LDAP应用程序接口中文版"表明这是一个关于轻量级目录访问协议...中文版的出现,使更多非英语背景的开发者能更方便地掌握这一核心技术,推动了全球特别是中文社区的LDAP应用发展。
**LDAP 应用程序接口 (RFC1823)** LDAP (Lightweight Directory Access Protocol) 是一种用于访问和管理分布式目录服务的协议,通常用于存储和检索用户、组、资源等信息。RFC1823 提供了关于 LDAP 应用程序接口...
### LDAP应用概述与qmail+LDAP安装配置 #### 一、LDAP基础知识介绍 **LDAP**(Lightweight Directory Access Protocol)是一种基于X.500标准的目录访问协议,但进行了简化以便更适合互联网环境下的轻量级目录服务...
【基于Linux的LDAP应用环境研究与目录服务实现】 在信息技术领域,目录服务是管理和存储组织信息的一种高效方式,尤其在大型网络环境中。轻量级目录访问协议(LDAP)作为目录服务的标准,因其轻便和高效而被广泛...
【LDAP(Lightweight Directory Access Protocol)理解与应用】 LDAP,全称为轻量级目录访问协议,是一种用于存储和检索信息的协议,常用于构建企业级的目录服务。它允许用户和应用程序快速查找、修改和管理分布式...
LDAP应用程序接口官方文档 LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种目录服务协议,用于存储和管理分布式目录信息。LDAP应用程序接口(LDAP API)是开发者使用LDAP协议与目录服务...
在实际应用中,LDAP和SSO的结合还涉及到以下关键技术: 1. 认证机制:包括简单绑定(Simple Bind)、匿名绑定、以及更安全的SASL(Simple Authentication and Security Layer)协议,这些机制确保了用户身份验证的...
总的来说,使用Golang编写基于LDAP的Web应用程序涉及网络编程、身份验证、目录服务交互等多个技术领域。通过学习和实践,你可以利用Go语言的强大功能,构建出高效、可靠的Web应用,满足企业级的身份管理和访问控制...
1. **图形化界面**:LdapBrowser提供了直观的图形用户界面,使得非技术用户也能轻松理解和操作LDAP目录。 2. **连接管理**:支持创建、保存和管理多个LDAP服务器连接,适应多环境下的工作需求。 3. **目录浏览**:...
综上所述,这个"ldap.zip"压缩包中的项目是一个结合了DELPHI和LDAP技术的电话簿应用,涵盖了从连接LDAP服务器、查询和操作数据,到设计用户界面等多个方面的知识。开发者在实现这个应用时,需要熟练掌握DELPHI编程和...
**LDAP技术概述** LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,用于管理和检索分布式目录服务中的数据。这种协议设计的目标是提供一种快速、简单的方式,以供用户和应用程序查找、...
【LDAP(轻量级目录访问协议)的理解与应用】 LDAP是一种用于访问和管理分布式目录服务的协议,主要用于存储和检索用户、组、网络资源等信息。尽管“轻量级”可能让人误解其复杂性,但事实上,LDAP简化了目录服务的...
**LDAP技术概述** LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,用于管理和检索分布式目录服务中的数据。这种协议广泛应用于企业环境中,尤其是那些需要集中存储和管理用户身份信息、...
**LDAP技术概述** LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,用于存储和检索分布式目录服务中的信息。它基于X.500标准,但设计得更为简洁,适合互联网环境。LDAP允许用户通过简单的...
目录服务则通过信息的集中存储解决了现实中面临的管理和维护的...为了在实际中应用和部署LDAP,本文讨论了LDAP应用部署的详细过程,并简要介绍了三种LDAP编程模型LDAPCAPI、ADSI、JNDI。文章的后面是LDAP应用方案实例。
它主要用于存储和检索用户、组织、资源等信息,广泛应用于身份验证、权限控制、邮件系统以及企业资源管理等领域。 **LdapBrowser 2.82版** LdapBrowser是一款开源的LDAP客户端工具,适用于系统管理员和开发者。它...
**LDAP统一安全身份管理系统:应用开发培训** **一、什么是LDAP** LDAP(Lightweight Directory ...通过这样的培训,开发者可以掌握构建基于LDAP的身份管理系统的关键技术和实践方法,提升企业信息安全管理能力。
- **开发人员**:在开发 LDAP 集成的应用程序时,LdapBrowser282可以作为调试工具,帮助验证数据结构和查询逻辑。 - **故障排查**:当遇到 LDAP 相关的问题时,使用LdapBrowser282检查目录状态,定位问题源头。 ###...