分享

windows下OpenLDAP的安装_随风天涯

 荷露叮咚 2008-11-25
2007年08月17日 星期五 上午 10:50

1.openldap的下载:
可以通过 openldap for windows 在google上搜索到。
目前最新版本是:2.2.29
下载地址:
http://download./openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe
相关联接:
http://lucas./hacks/openldap/

2.运行openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe安装,一路next就可以了安装ldap for windows到D:\openldap\。

3.假设我们使用的域名是 rover828.com 对应的主机IP是168.160.12.77

4.修改C:\WINNT\system32\drivers\etc\下的host文件
添加下面一行
168.160.12.77    rover828.com


5.配置openldap,修改D:\openldap\slapd.conf里的内容

把下面两行(57,58行)

suffix   "dc=my-domain,dc=com"
rootdn   "cn=Manager,dc=my-domain,dc=com"

改成

suffix   "dc=rover828,dc=com"
rootdn   "cn=Manager,dc=rover828,dc=com"

运行

D:\openldap>slappasswd -h {MD5}
New password: Re-enter new password: {MD5}z3muat26YK0Bg0c1m9FE0g==
(我输入的密码是8888)
然后继续修改slapd.conf

把下面这行(62行)

rootpw   secret

改成

rootpw   {MD5}z3muat26YK0Bg0c1m9FE0g==

接下来运行D:\openldap\slapd.exe来启动LDAP服务。
或者运行slapd -d 1
可以看到日志信息。

测试认证

import java.util.*;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

public class LDAPTest {
   public LDAPTest() {
   }

   public static void main(String[] args) {
     LDAPTest LDAPTest1 = new LDAPTest();
     String root = "dc=rover828,dc=com"; //root

     Hashtable env = new Hashtable();
     env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
     env.put(Context.PROVIDER_URL, "ldap://168.160.12.77/" + root);    
     env.put(Context.SECURITY_AUTHENTICATION, "simple");
     env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=rover828,dc=com");
     env.put(Context.SECURITY_CREDENTIALS, "z3muat26YK0Bg0c1m9FE0g==");//密码
     DirContext ctx = null;
     try {
       ctx = new InitialDirContext(env);
       System.out.println("认证成功");
      
        }
     catch (javax.naming.AuthenticationException e) {
       e.printStackTrace();
       System.out.println("认证失败");
     }
     catch (Exception e) {
       System.out.println("认证出错:");
       e.printStackTrace();
     }

     if (ctx != null) {
       try {
         ctx.close();
       }
       catch (NamingException e) {
         //ignore
       }
     }
     System.exit(0);
   }

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多