标签: apacheds

运行嵌入在我的应用程序中的Apache DS

我正在尝试在我的应用程序中运行嵌入式ApacheDS.在阅读http://directory.apache.org/apacheds/1.5/41-embedding-apacheds-into-an-application.html后,我构建了这个:

public void startDirectoryService() throws Exception {
    service = new DefaultDirectoryService();
    service.getChangeLog().setEnabled( false );

    Partition apachePartition = addPartition("apache", "dc=apache,dc=org");
    addIndex(apachePartition, "objectClass", "ou", "uid");

    service.startup();

    // Inject the apache root entry if it does not already exist
    try
    {
        service.getAdminSession().lookup( apachePartition.getSuffixDn() );
    }
    catch ( LdapNameNotFoundException lnnfe )
    {
        LdapDN dnApache = new LdapDN( "dc=Apache,dc=Org" );
        ServerEntry entryApache = service.newEntry( dnApache );
        entryApache.add( "objectClass", "top", "domain", "extensibleObject" );
        entryApache.add( "dc", "Apache" );
        service.getAdminSession().add( entryApache );
    }
}
Run Code Online (Sandbox Code Playgroud)

但运行后我无法连接到服务器.什么是默认端口?或者我错过了什么?

这是解决方案: …

java apache ldap apacheds

12
推荐指数
3
解决办法
1万
查看次数

打开LDAP vs apacheDS

我正在研究可扩展的Web应用程序.我正在计划使用LDAP进行登录验证.当我搜索它时,我是LDAP的新手,我发现了两个重要的实现.1 Open LDAP and 2.Apache DS我搜索了两者之间的性能比较,但我发现来自不同人的非常混乱的基准测试结果.一些基准测试结果是性能相对相同,很少有人说openLDAP与Apache DS相比具有更高的性能.

ldap openldap apacheds

11
推荐指数
2
解决办法
1万
查看次数

我可以在Java中以编程方式生成自己的keytab吗?

我想知道是否有一种方法可以在java中生成我自己的keytab而无需转到kdc?我在ApachDS测试中发现了类似的代码:

    Keytab keytab = Keytab.getInstance(); 
    KerberosTime timeStamp = new KerberosTime(KerberosUtils.UTC_DATE_FORMAT.parse("20070217235745Z"));

    Map<EncryptionType, EncryptionKey> keys = KerberosKeyFactory
        .getKerberosKeys(principalName, userPassword);



    KeytabEntry keytabEntry = new KeytabEntry(
        principalName, 
        1L,
        timeStamp, 
        (byte) 0,
        keys.get(EncryptionType.DES_CBC_MD5));

    List<KeytabEntry> entry = Arrays.asList(keytabEntry);

    keytab.setEntries(entry);

    keytab.write(keytabFile);

    return keytabFile;
Run Code Online (Sandbox Code Playgroud)

我能够在我创建的keytab上创建一个klist:

Vno类型主要日期别名

0 des-cbc-md5 ssh/localhost@EXAMPLE.COM 2007-02-17

此外,如果这不可能,有没有办法以编程方式使用ApacheDS或任何其他Java库获取密钥表?

java kerberos apacheds

8
推荐指数
1
解决办法
3564
查看次数

不区分大小写的LDAP搜索

在'uid'属性上执行不区分大小写的匹配的语法是什么?如果属性定义很重要,那将如何改变?特别是我将ApacheDS用于我的LDAP存储.

ldap case-insensitive ldap-query apacheds

7
推荐指数
2
解决办法
2万
查看次数

尝试使用Spring LDAP进行编码

我正在尝试使用Spring LDAP进行编码

<ldap-server ldif="classpath:my-ldap-clone.ldif" />
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误

NoClassDefFoundError: org/apache/directory/server/core/DirectoryService
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java spring spring-security spring-ldap apacheds

7
推荐指数
3
解决办法
6333
查看次数

LDAP中基于角色的安全性实现

我正在研究LDAP和Java中基于角色的安全性实现.具体来说,我需要在LDAP中表示以下对象:

  • 用户
  • 企业用户组 - 人力资源,财务等
  • 权限 - DOCUMENT_READ,DOCUMENT_MODIFY等
  • 角色 - ADMIN,GUEST等

角色基本上是权限组,可以将它们分配给用户或一组用户.

我想在LDAP中表示它们如下:

  • 用户 - 具有userPassword属性的Person和uidObject类.
  • 用户组 - organizationalUnit类,用户所在的组.
  • 角色 - groupOfNames对象类.
  • 权限 - 不确定这个,也许也是groupOfNames类.

其目的是让用户或组快速访问该用户或组具有的角色列表.我知道我可以将用户和组放在角色的"成员"属性中,但是我必须扫描所有角色以找到列出此用户的角色.有没有办法在Person对象中使用类似"member"属性的东西?

通常,有没有人知道LDAP中基于角色的良好安全性实现?我找不到关于这个主题的好文档或教程.我目前正在使用ApacheDS作为LDAP服务器,但我愿意接受建议.

java ldap rbac apacheds

7
推荐指数
1
解决办法
1万
查看次数

以编程方式从Java导出和导入apached数据到LDIF

我在Apache Directory Studio中创建了一个服务器.我还创建了一个分区,并将一些条目插入到Java服务器中.现在我想以编程方式备份​​和恢复此数据和LDIF文件.我是LDAP新手.所以请告诉我一个详细的方法,使用java从我的服务器以编程方式导入和导入条目到LDIF.

当前解决方案

现在我使用这种方法进行备份:

  EntryCursor cursor = connection.search(new Dn("o=partition"), "(ObjectClass=*)", SearchScope.SUBTREE, "*", "+"); 
  Charset charset = Charset.forName("UTF-8");
  Path filePath = Paths.get("src/main/resources", "backup.ldif");
  BufferedWriter writer = Files.newBufferedWriter(filePath, charset);
  String st = ""; 

  while (cursor.next()) { 
    Entry entry = cursor.get();
    String ss = LdifUtils.convertToLdif(entry);
    st += ss + "\n";
  }
  writer.write(st);
  writer.close();
Run Code Online (Sandbox Code Playgroud)

为了恢复,我使用这个:

  InputStream is = new FileInputStream(filepath);
  LdifReader entries = new LdifReader(is);

  for (LdifEntry ldifEntry : entries) {
    Entry entry = ldifEntry.getEntry();

    AddRequest addRequest = new AddRequestImpl();
    addRequest.setEntry(entry);
    addRequest.addControl(new ManageDsaITImpl()); …
Run Code Online (Sandbox Code Playgroud)

java ldap ldif apacheds

7
推荐指数
1
解决办法
3210
查看次数

将"memberOf"属性添加到ApacheDS

我试图在Apache Directory中模拟Active Directory的memberOf属性.我已将memberOf的以下条目添加到我的LDIF文件中:

dn: m-oid=1.3.6.1.4.1.18060.0.4.3.2.1,ou=attributeTypes,cn=other,ou=schema
m-usage: USER_APPLICATIONS
m-equality: distinguishedNameMatch
objectClass: metaAttributeType
objectClass: metaTop
objectClass: top
m-name: memberOf
m-oid: 1.3.6.1.4.1.18060.0.4.3.2.1
m-obsolete: FALSE
m-noUserModification: FALSE
m-syntax: 1.3.6.1.4.1.1466.115.121.1.27
Run Code Online (Sandbox Code Playgroud)

当我启动ApacheDS时,会记录以下警告:

   WARN  [ContainerBackgroundProcessor[StandardEngine[Catalina]]] entry.ServerStringValue - Cannot normalize the value :Encountered name based id of memberOf which was not found in the OID registry
Run Code Online (Sandbox Code Playgroud)

这会导致以后出现问题,因为我的应用程序尝试将memberOf属性用作搜索过滤器.

我指定LDIF条目的方式有什么问题吗?

ldap apacheds

6
推荐指数
2
解决办法
1万
查看次数

如何使用Apache Directory Studio将用户添加到组中

我正在使用Apache Directory Studio在LDAP分区上设置初始用户.我添加了用户,并且我有一个组(管理员),我正在尝试将该用户添加到.

用户是ou =用户,组是ou = groups,从ou = system复制.用户是通过添加inetOrgPerson类条目创建的.

如何将用户添加到组?我会使用什么类的课程以及需要什么属性?

我觉得我错过了很多关于LDAP的信息.我通过ghacking(谷歌搜索和黑客 - 你可以做的效率最低的事情)得到了这一点.那么,我该去哪里告诉我该怎么做以及如何在烹饪书籍风格指南中完成它,或者至少某些关于类和模式的详细参考,这些类和模式将定义每个用于

任何帮助都非常感谢!

在此输入图像描述

ldap apacheds

6
推荐指数
2
解决办法
9588
查看次数

如何在 Junit5 中设置嵌入式 ApacheDS

在关于在 Junit 测试中嵌入 ApacheDS 服务器的 ApacheDS 文档中,他们只提到了 Junit4 使用的示例

@RunWith(FrameworkRunner.class)
Run Code Online (Sandbox Code Playgroud)

或者

@ClassRule
public static CreateLdapServerRule serverRule = new CreateLdapServerRule();
Run Code Online (Sandbox Code Playgroud)

RunWithClassRule在 Junit5 中不可用。

如何使用嵌入式 ApacheDS LdapServer 运行 Junit5 测试?

ldap apacheds junit5

6
推荐指数
1
解决办法
216
查看次数