openldap 比起其他商业目录服务器(比如 IBM Directory Server),特别的轻巧,十分适合于本地开发测试用,在产品环境中的表现也很优秀。

openldap 软件在它的官方网站 http://www.openldap.org, 不过下载过来是源代码,并没有包含 win32 下的 Makefile 文件,只提供了在 Unix/Linux 下编译用的 Makefile。所以相应的在网上介绍在 windows 下安装使用 openldap 的资料比较少,而在 Unix/Linux 下应用文档却很丰富。

本文实践了在 Windows 下安装配 openldap,并添加一个条目,LdapBrowser 浏览,及 Java 程序连接 openldap 的全过程。

1. 下载安装 openldap for windows,当前版本2.2.29
    下载地址:http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe
    相关链接:http://lucas.bergmans.us/hacks/openldap/
   安装很简单,一路 next 即可,假设我们安装在 c:\openldap

2. 配置 openldap,编辑 slapd.conf 文件
   1) 打开 c:\openldap\slapd.conf,找到
    include  ./schema/core.schema,在它后面添加
    include  ./schema/cosine.schema
    include  ./schema/inetorgperson.schema

接下来的例子只需要用到以上三个 schema,当然,如果你觉得需要的话,你可以把其他的 schema 全部添加进来
    include  ./schema/corba.schema
    include  ./schema/dyngroup.schema
    include  ./schema/java.schema
    include  ./schema/misc.schema
    include  ./schema/nis.schema
    include  ./schema/openldap.schema

2) 还是在 slapd.conf 文件中,找到
    suffix  "dc=my-domain,dc=com"
    rootdn  "cn=Manager,dc=my-domain,dc=com"
    把这两行改为
    suffix "o=tcl,c=cn"  
    rootdn "cn=Manager,o=tcl,c=cn"

suffix 就是看自己如何定义了,后面步骤的 ldif 文件就必须与它定义了。还要注意到这个配置文件中有一个 rootpw  secret,这个 secret 是 cn=Manager 的密码,以后会用到,不过这里是明文密码,你可以用命令: slappasswd -h {MD5} -s secret 算出加密的密码 {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ== 取代配置中的 secret。

3. 启动 openldap
    CMD 进入到 c:\openldap 下,运行命令 slapd -d 1
    用可以看到控制台下打印一片信息,openldap 默认是用的 Berkeley DB 数据库存储目录数据的。
    如果你安装时选择了安装 install OpenLDAP-slapd as NT service 服务,你可以在系统服务中启动 OpenLDAP Directory Service。

4. 建立条目,编辑导入 ldif 文件
   1) 新建一个 ldif(LDAP Data Interchanged Format) 文件(纯文本格式),例如 test.ldif,文件内容如下:
    
dn: o=tcl,c=cn
objectClass: dcObject
objectClass: organization
o: tcl
dc: com

dn: uid=Unmi, o=tcl,c=cn
uid: Unmi
objectClass: inetOrgPerson
mail: fantasia@sina.com
userPassword:: MTIzNDU2
labeledURI: http://unmi.blogcn.com
sn: Qiu
cn:: 6ZqU5Y+26buE6I66

2) 执行命令:ldapadd -x -D "cn=manager,o=tcl,c=cn" -w secret -f test.ldif
    导入组织信息和一个用户 uid=Unmi 
    你可以用 LdapBrower 来导入这个 ldif 文件。

5. LdapBrowser 浏览
可点击链接 http://www.blogjava.net/Files/Unmi/LdapBrowser282.rar 下载,其中已配置好了 OpenLdap_Localhost

1) 设置如下图所示:

指定了 Host 为 localhost 之后,可以点击 Fetch DNs 按钮显示出 o=tcl,c=cn 来,如果要能在 LdapBrowser 中对数据能修改就不能用 Anonymous bind, 必须填上 User DN: cn=manager,Passwer: secret。

2) 看到的效果是:

6. Java 连接 openldap

  1. import  java.util.Hashtable;
  2. import  javax.naming.Context;
  3. import  javax.naming.NamingException;
  4. import  javax.naming.directory.DirContext;
  5. import  javax.naming.directory.InitialDirContext;
  6. public   class  LDAPTest {
  7. public   static   void  main(String[] args) {
  8. LDAPTest LDAPTest1 =  new  LDAPTest();
  9. String root =  "o=tcl,c=cn" ;  //root
  10. Hashtable env =  new  Hashtable();
  11. env.put(Context.INITIAL_CONTEXT_FACTORY,  "com.sun.jndi.ldap.LdapCtxFactory" );
  12. env.put(Context.PROVIDER_URL,  "ldap://localhost/"  + root);
  13. env.put(Context.SECURITY_AUTHENTICATION,  "simple" );
  14. env.put(Context.SECURITY_PRINCIPAL,  "cn=Manager,o=tcl,c=cn" );
  15. env.put(Context.SECURITY_CREDENTIALS,  "secret" );
  16. DirContext ctx =  null ;
  17. try  {
  18. ctx =  new  InitialDirContext(env);
  19. System.out.println( "认证成功" );
  20. }
  21. catch  (javax.naming.AuthenticationException e) {
  22. e.printStackTrace();
  23. System.out.println( "认证失败" );
  24. }
  25. catch  (Exception e) {
  26. System.out.println( "认证出错:" );
  27. e.printStackTrace();
  28. }
  29. if  (ctx !=  null ) {
  30. try  {
  31. ctx.close();
  32. }
  33. catch  (NamingException e) {
  34. //ignore
  35. }
  36. }
  37. }
  38. }

代码中还没有实现用户的查找,读取、修改条目属性的操作

Windows下安装使用OpenLDAP相关推荐

  1. Windows下安装使用openldap(zz)

    openldap 比起其他商业目录服务器(比如 IBM Directory Server),特别的轻巧,十分适合于本地开发测试用,在产品环境中的表现也很优秀. openldap 软件在它的官方网站 h ...

  2. Win32 下安装配置OpenLdap

    原文出自:http://www.blogjava.net/Unmi/archive/2007/07/27/132669.html openldap 比起其他商业目录服务器(比如 IBM Directo ...

  3. 基于svnserve的SVN服务器(windows下安装与配置)

    基于svnserve的SVN服务器(windows下安装与配置) 关键字: svn 安装SVNserve 从http://subversion.tigris.org/servlets/ProjectD ...

  4. Windows下安装Z3的Python3版

    文章目录 Windows下安装Z3的Python3版 pip 安装(不推荐,很慢) 使用微软官方构建好的DLL(推荐,快速) Windows下安装Z3的Python3版 GitHub官方仓库地址:Z3 ...

  5. 在windows下安装concurrentlua

    concurrentlua的makefile只提供了unix下的版本,如果直接按make里面得拷贝路径安排文件 在windows下是无法凑效的.这里我把我在windows下安装concurrentlu ...

  6. linux/windows下安装scala

    为什么80%的码农都做不了架构师?>>>    一.linux下安装scala 1.保证jdk安装成功,版本在1.5或者更改版本,java和javac均可用. 2.官网下载scala ...

  7. windows下安装cygwin及配置

    windows下安装cygwin及配置 对于使用Windows操作系统作为开发平台同时又喜欢类unix环境的朋友(Windows不是最方便的开发环境),这里是在Cygwin环境下安装Rails的步骤 ...

  8. Redis第一集:Windows下安装Redis和测试

    Redis第一集:Windows下安装Redis和测试 一.资源 Windows下的Redis的下载地址 点击这里即可下载,如果进不去GitHub的话,可以上网搜一下怎么进GitHub,搭个梯子(●ˇ ...

  9. 如何在windows下安装cygwin

    如何在windows下安装cygwin 转载于:https://www.cnblogs.com/zhujiabin/p/5747580.html

最新文章

  1. No resource identifier found for attribute 'showAsAction' in package 'android'
  2. 自己实现的字符串处理函数
  3. C#单例模式的懒汉与饿汉
  4. POJ1358 Agri-Net
  5. 吃豆豆游戏的C语言程序码,C++实现基于控制台界面的吃豆子游戏
  6. Codeforces Round #507 (Div. 1) D. You Are Given a Tree 根号分治 + dp
  7. 转-Apache kafka 工作原理介绍
  8. python最强脚本工具_8种常用的Python工具
  9. Asp.Net高级知识回顾_HttpModule及应用程序生命周期_1
  10. 计算机原理与接口专科,春福师计算机原理与接口关键技术在线作业二.doc
  11. 硅谷Spring项目组专家教你利用Spring Cloud构建微服务
  12. 计算机集成技术的研究和应用,信息系统集成技术研究
  13. WPS EXCEL 处理字符串转换为日期格式
  14. 如何使用Xposed+JustTrustMe来突破SSL Pinning
  15. 计算机思维在英语专业的应用,英语专业在计算机科学中的重要性
  16. 荒神罪蜀山传 服务器未响应,《DOTA2》荒神罪蜀山传新手攻略
  17. FaWave(发微)-Chrome上的多微博全能插件
  18. Ubuntu18.04装录屏软件OBS-Studio 21.1
  19. 使用Java统计英文文章的单词频率。
  20. mysql-删除语句汇总

热门文章

  1. netflix什么来很_如何使用Netflix的屏幕锁定来禁用播放控件
  2. js判断0==‘‘,判断1==true
  3. avue中crue表单的属性
  4. kivy 028 读取excel 文件
  5. 结构力学程序算法理论基础(一)————虚功原理
  6. 如何学习HTML5?
  7. FISHER控制阀的使用和维修
  8. 《操作系统真象还原》——0.28 MBR、EBR、DBR和OBR各是什么
  9. 数据结构---平均查找长度ASL的相关计算技巧
  10. 共享打印机出现0x00000709错误