当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>J2EE

JNDI目录服务及LDAO服务器使用入门教程


  JNDI目录服务入门教程
  本教程讲述下面内容:
  
  1.  iPlanet Directory Server5.1目录服务器
  iPlanet Directory Server5.1的下载
  iPlanet Directory Server5.1的安装
  iPlanet Directory5.1的启动,关闭
  iPlanet Directory5.1的管理员指南
  
  2.  安装编程环境所需的类库
  JNDI类库下载
  LDAP类库下载
  
  3.  一些基本的目录服务操作
  目录服务器建立连接(匿名访问方式)
  目录服务器建立连接(简单验证方式Simple)
  获取目录服务器指定条目的属性值
  按条目属性值的搜索条件搜索目录服务器上的条目
  删除,添加,修改目录服务器指定条目的属性值
  删除,添加目录服务器上的条目,重命名目录服务器上的条目识别名(DN)
  
  1 iPlanet Directory Server5.1目录服务器简述
  iPlanet Directory Server 产品包括管理多个目录的 iPlanet Directory Server 和通过图形界面管理这两个服务器的 iPlanet Console。本章概述有关 iPlanetDirectory Server 的信息以及使用控制台建立目录管理服务所需的最基本的任务。
  iPlanet Directory Server 的运行平台包括:widnows 和 Linux
  iPlanet Directory Server 目前最高版本为V5.2
  
  2 iPlanet Directory Server5.1的下载
  下载网址:http://www.iplanet.com/
  目前已更新为http://wwws.sun.com/software/
  
  3 iPlanet Directory Server5.1的安装
  以下为iPlanet Directory Server5.1的安装步骤
  步骤1
  启动iPlanet Directory Server5.1的安装界面
  欢迎界面及软件许可界面
  在出现的界面中,单击“下一步”按钮
  1.gif?http://www.xvna.com
  
  步骤2
  许可协议界面
  在出现的界面单击“是”
  2.gif?http://www.xvna.com
  
  步骤3
  选择安装的组件,包装两个安装类型
  iPlanet服务器软件
  包括iPlanet目录服务器,iPlanet控制台及其它相关组件
  iPlanet控制台
  只安装iPlanet控制台,用于安装在客户端
  出现选择安装类型时,选择Iplanet 服务器软件
  3.gif?http://www.xvna.com
  
  步骤4
  选择安装类型
  在出现的界面选择“典型”安装
  4.gif?http://www.xvna.com
  
  步骤5
  选择安装位置
  出现的界面选择安装位置
  5.gif?http://www.xvna.com
  
  步骤6
  选择安装组件
  出现的界面选择你所需要安装的组件,我们所有的都安装
  6.gif?http://www.xvna.com
  
  步骤7
  配置目录服务器
  建一个新的目录服务器
  使用现有的目录服备器
  7.gif?http://www.xvna.com
  
  步骤8
  目录数据库的存储选择
  建一个新的目录数据库
  使用现有的目录数据库
  8.gif?http://www.xvna.com
  
  步骤9
  填写目录服务器的标识符,连接端口号,及后缀
  9.gif?http://www.xvna.com
  
  步骤10
  目录服务器控制台的管理员ID及口令
  10.gif?http://www.xvna.com
  
  步骤11
  设置目录服务器的管理域
  11.gif?http://www.xvna.com
  
  步骤12
  设置连接目录服务器的目录管理员识别名(DN)
  及口令
  12.gif?http://www.xvna.com
  
  步骤13
  设置管理目录服务器服务的端口号
  13.gif?http://www.xvna.com
  
  步骤14
  显示以上的用户选项信息
  14.gif?http://www.xvna.com
  
  步骤15
  安装进程
  15.gif?http://www.xvna.com
  
  步骤16
  注意,安装后,需重启计算机服务才有效.
  16.gif?http://www.xvna.com
  
  iPlanet Directory5.1管理控制台的启动,关闭
  单击命令%iPlanet%\Servers\start-admin.cmd
  启动管理进程
  单击命令%iPlanet%\Servers\ startconsole.exe
  启动管理控制台
  A1.gif?http://www.xvna.com
  
  4 iPlanet Directory5.1的管理员指南
  关于这个指南,你可以到网上找或给我发邮件([email protected]),我可以发给你哦。
  
  5 安装编程环境类库
  基本编程环境类库
  只需安装J2EE1.3版以上即可,下载网址http://java.sun.com
  JNDI类库下载
  下载类库jndi.jar
  下载网址:http://java.sun.com/jndi/
  LDAP类库下载
  下载类库jaas.jar, ldap.jar, ldapbp.jar, ldapsec.jar, providerutil.jar
  下载网址:http://java.sun.com/jndi/
  
  6 一些基本的目录服务操作
  1 目录服务器建立连接( 匿名访问方式)
  程序段:
  /*实例化一个Hashtable,用于存储连接属性*/
  Hashtable env = new Hashtable(5, 0.75f);
  /*设置连接Ldap的实现工厂*/
  env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
  /*设置连接URL*/
  env.put(Context.PROVIDER_URL,“ldap://localhost:389”);
  /*实例化一个目录上下文*/
  LdapContext ctx = new InitialLdapContext(env, null);
  
  2 目录服务器建立连接(简单验证方式Simple)
  程序段:
  /*实例化一个Hashtable,用于存储连接属性*/
  Hashtable env = new Hashtable(5, 0.75f);
  /*设置连接Ldap的实现工厂*/
  env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
  /*设置连接URL*/
  env.put(Context.PROVIDER_URL,“ldap://localhost:389”);
  /*设置验证方式为简单验证simple*/
  env.put(Context.SECURITY_AUTHENTICATION, "simple");
  /*进入的目录识别名DN
  Env.MGR_DN为进入的目录识别名*/
  env.put(Context.SECURITY_PRINCIPAL, Env.MGR_DN);
  /*进入的目录密码password
  Env.MGR_PW为进入的目录密码*/
  env.put(Context.SECURITY_CREDENTIALS, Env.MGR_PW);
  /*实例化一个目录上下文*/
  LdapContext ctx = new InitialLdapContext(env, null);
  
  3 获取目录服务器指定条目的属性值
  /*定义需获取的属性名*/
  
  String[] attrs = new String[5];
  attrs[ 0 ] = "cn";       /* 获取属性”cn” */
  attrs[ 1 ] = "sn";       /* 获取属性”sn” */
  attrs[ 2 ] = "mail";      /* 获取属性”mail” */
  attrs[ 3 ] = "telephonenumber"; /* 获取属性”telephonenumber” */
  attrs[ 4 ] ="title";      /* 获取属性”title” */
  /*获取指定条目*/
  Attributes result = ctx.getAttributes(Env.ENTRYDN, attrs);
  /*获取指定属性*/
  Attribute attr = result.get("cn");
  
  按条目属性值的搜索条件搜索目录服务器上的条目
  /*实例化一个搜索器*/
  SearchControls constraints = new SearchControls();
  /*设置搜索器的搜索范围*/
  constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
  
  /* 在基目录中搜索条件为Env.MY_FILTER的所有属性
  Env.MY_SEARCHBASE为搜索的基目录
  Env.MY_FILTER为搜索的过渡器
  注意:这里返回是的所有的条目集合*/
  NamingEnumeration results
  = ctx.search(Env.MY_SEARCHBASE, Env.MY_FILTER, constraints);
  
  /* 打印条目的识别名(DN)及其所有的属性名,值*/
  while (results != null && results.hasMore())
  {
  /*取一个条目*/
  SearchResult si = (SearchResult)results.next();
  
  /* 打印条目识别名(DN) */
  System.out.println("name: " + si.getName());
  /*获取条目的所有属性集合*/
  Attributes attrs = si.getAttributes();
  if (attrs == null)
  {
  System.out.println("No attributes");
  } else {
  /* 打印所有属性值 */
  for (NamingEnumeration ae = attrs.getAll();
  ae.hasMoreElements();) {
  /*获取一个属性*/
  Attribute attr = (Attribute)ae.next();
  String attrId = attr.getID();
  
  /* 打印这个属性的所有属性值 */
  for (Enumeration vals = attr.getAll();
  vals.hasMoreElements();
  System.out.println(attrId + ": " + vals.nextElement()))
  ;
  }
  }
  4 删除,添加,修改目录服务器指定条目的属性值
  /* 实例化一个用于修改属性的数组*/
  ModificationItem[] mods = new ModificationItem[3];
  /*实例化一个BasicAttribute基本属性对象
  其第一个参数为属性名,
  第二个参数为属性值*/
  Attribute mod0 = new BasicAttribute("mail", "babs@eng");
  // 定义一个修改的属性条
  mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod0);
  
  /*实例化一个BasicAttribute基本属性对象
  其第一个参数为属性名,
  第二个参数为属性值*/
  Attribute mod1 =
  new BasicAttribute("description",
  "This entry was modified with the Modattrs program on " +
  (new Date()).toString());
  // 定义一个增加的属性条
  mods[1] = new ModificationItem(DirContext.ADD_ATTRIBUTE, mod1);
  
  /*实例化一个BasicAttribute基本属性对象
  其第一个参数为属性名/
  
  Attribute mod2 = new BasicAttribute("description");
  // 定义一个删除的属性条
  mods[2] = new ModificationItem(DirContext.REM
相关内容
赞助商链接