管理 推荐控制

当执行 LDAP 操作时,管理 引荐控件(RFC 3296)可以将引荐和其他特殊对象作为普通对象进行操作。换句话说,“管理 引荐”控件告诉 LDAP 服务器将引荐条目作为普通条目返回,而不是返回“引荐”错误响应或 continue 引用。下面的 JDK 5.0 中的新类使您可以将 Manage Referral Control 与 LDAP 请求一起发送:

javax.naming.ldap.ManageReferralControl

JDK 中的 LDAP 服务提供商将自动发送此控件以及任何请求。您还可以显式启用它,将 Context.REFERRAL 环境属性设置为“忽略”。有关引荐处理的更多信息,请参见 JNDI 教程的JNDI 中的引荐部分。

这是一个将“管理 引荐”控件与 LDAP 请求一起发送的示例。

// Create initial context
         LdapContext ctx = (LdapContext) new InitialDirContext(env);
         ctx.setRequestControl(new Control[] new ManageReferralControl());

         // Set controls for performing subtree search
         SearchControls ctls = new SearchControls();
         ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);

         // Perform search
         NamingEnumeration answer = ctx.search("", "(objectclass=*)", ctls);

         // Print the answer
         while (answer.hasMore()) {
             System.out.println(">>>" + 
                 ((SearchResult)answer.next()).getName());
          }

          // Close the context when we're done
          ctx.close();

完整的示例可以找到here


注 1: 上面的示例将要求您使用配置文件refserver.ldif设置第二台服务器。服务器必须支持 LDAP v3 和 RFC3296.如果服务器不以这种方式支持引用,则该示例将无法显示。配置文件包含指向已设置的原始服务器的引用。假定原始服务器在本地计算机上的端口 389 上。如果已在另一台计算机或端口上设置了服务器,则需要编辑 refserver.ldif 文件中的“ ref”条目,并将“ localhost:389”替换为适当的设置。第二台服务器将在本地计算机的端口 489 上设置。如果在另一台计算机或端口上设置第二台服务器,则需要相应地为初始上下文调整 Context.PROVIDER_URL 环境属性的设置。

设置目录服务器通常由目录或系统 管理 员执行。有关更多信息,请参见Software Setup类。

注 2: Windows Active Directory:由于 Active Directory 不支持“管理 引荐”控件,因此本类中的所有示例均不适用于 Active Directory。