快速业务通道

在Apache目录服务器中存储Java对象,第2部分:(下) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

在Apache目录服务器中存储Java对象,第2部分:(下)

时间:2011-08-13 IBM Bilal Siddiqui

应用程序 4. 搜索存储的数据

先从 ApacheDS 上的一个简单搜索开始。假设在 ApacheDS 中有许多用户。而您想要找到用户 Alice 的所有详细信息。下面列出了关于 Alice 的所有已知事项:

Alice 是一名用户,所以在用户的数据组织单元中应当可以查找她的数据条目。(在第 1 部分已经介 绍了组织单元或 “ou” 的概念。)

Alice 的用户名是 “alice”(不区分大小写)。

Alice 是一个人,所以她的数据条目使用的对象类必须直接或间接地扩展 person 对象类。

现在请参见清单 6,它显示了名为 SearchForAlice 的应用程序。SearchForAlice 演示了一个非常简 单的搜索场景;后面我将扩展这个应用程序,使其适合更高级的搜索场景。

清单 6. SearchForAlice

public class SearchForAlice {    public SearchForAlice() {      try      {        //------------------------------------------        //Step1: Setting up JNDI properties for ApacheDS        //------------------------------------------        InputStream inputStream = new FileInputStream ( "ApacheDS.properties");        Properties properties = new Properties();        properties.load(inputStream);        properties.setProperty("java.naming.security.credentials",  "secret");        //------------------------------------------        // Step2: Fetching a DirContext object        //------------------------------------------        DirContext ctx = new InitialDirContext(properties);        //---------------------------------------------        //Step3: Setting search context        //---------------------------------------------        String searchContext = "ou=users";        //--------------------------------------------        //Step4: Creating search attributes for Alice        //--------------------------------------------        Attribute uid = new BasicAttribute("uid");        Attribute objclass = new BasicAttribute("objectClass");        //adding attribute values        uid.add("Alice");        objclass.add("person");        //Instantiate Attributes object and put search attributes in it.        Attributes attrs = new BasicAttributes(true);        attrs.put(uid);        attrs.put(objclass);        //------------------------------------------        //Step5: Executing search        //------------------------------------------        NamingEnumeration ne = ctx.search(searchContext, attrs);        if (ne != null)        {          //Step 6: Iterating through SearchResults          while (ne.hasMore()) {            //Step 7: Getting individual SearchResult object            SearchResult sr = (SearchResult) ne.next();         

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号