2

我正在使用 ApacheDS 版本 2.0.0-M3(我不太熟悉它的工作原理)。我创建了一个新的分区类,扩展了 AbstractPartition。我能够创建此类的实例,并将其添加到 ApacheDsService 实例。

    File instancePath = new File( param[0] );
    ApacheDsService service = new ApacheDsService();
    InstanceLayout layout = new InstanceLayout( instancePath );

    try
    {
        service.start(layout);
        //
        TestPartition partition = new TestPartition ( layout );
        partition.setSuffix( "ou=test" );
        partition.setSchemaManager( service.getDirectoryService().getSchemaManager() );
        partition.initialize();
        service.getDirectoryService().addPartition( partition );
    }
    catch (Exception x)
    {
        LOG.error("Failed to start the service.", x);
        System.exit(1);
    }

但是,当我使用 Apache Directory Studio 连接到我的服务器时,我看不到我的分区。

我发现了这个问题: How to create a partition in the root in ApacheDS server programmatically using JNDI/LDAP? kayyagari 说有必要“在 ou=config 区域配置分区 ...”。

我不确定这到底是什么意思,并且没有太多运气在网上搜索详细信息。

我可以在 Apache Directory Studio 中看到 ou=config 分区。我可以在那里看到其他分区:ads-partitionId=system 和 ads-partitionId=example。查看 objectClass 属性,我可以看到它们都有一个值为 ads-jdbmPartition。我不确定我的分区是否应该有这样的条目(因为它不是 jdbm 分区,而是从 Web 服务获取其数据)。

(不幸的是,ApacheDS 站点上 2.0.0-M3 的文档链接给出了 404。)我的自定义分区的 LDIF 条目应该是什么样子?我无法正确输入,也不知道我是否遗漏了某些内容,或者我是否输入了错误的内容。

任何帮助,将不胜感激。

谢谢。

4

1 回答 1

1

ApacheDS 版本 2.0.0-M3(和 2.0.0-M4)似乎正在进行中。根据ApacheDS 存储库版本 2.0.0-M3 自 2011 年 8 月以来没有看到任何活动。2011 年 8 月,提出了缺少文档的问题(请参阅:网站中的断开链接(ApacheDS 2.0 页面上的“基本用户指南”))。

从存储库中,您还可以看到当前正在开发版本 2.0.0-M4(具有最近的活动)。有一些关于 2.0.0-M3 的文档。2.0.0M3 Maven 生成的文档可用。也可以下载包含大量单元测试的2.0.0-M3 源代码,您可以使用它们来破译正确的方法 - 源代码可从Emmanuel Lécharny 个人页面获得(但似乎不在 ApacheDS 站点本身上)。Emmanuel Lécharny 似乎是 2.0.0-M3 版本的主要提交者(而 Kiran Ayyagari ( kayyagari ) 似乎也是 ApacheDS 提交者)。

希望您现在有足够的信息,如果您愿意,可以让您继续 2.0.0-M3/M4 路线。


由于缺少 2.x 分支的文档,我认为使用 ApacheDS 1.5.7 版会更容易(至少在 2.x 分支被记录之前)。1.5.7 版本包括文档和工作示例,例如将 ApacheDS 嵌入到应用程序和 Web 应用程序中。

我已经尝试了嵌入式服务器示例,并且能够使用 Apache Directory Studio 访问生成的目录服务器。有趣的是,对于嵌入式示例示例,包含shared-ldap-schema文件的模块被排除在类路径之外(我猜这是因为该示例是最小实现,而不是完全符合标准的 LDAP 服务器)。

于 2012-01-12T23:10:51.813 回答