配置eXist - LDAP安全管理器

时间:2011-05-11 07:08:50

标签: ldap exist-db

我正在尝试将eXist配置为LDAP以对用户进行身份验证,我已在eXist LDAP Security检出了文档。原来默认配置只支持三种设置: security.ldap.connection.url(LDAP服务器的连接URL),security.ldap.dn.user(用户列表DN)和security.ldap.dn.group(组列表DN)。

它对我的情况不起作用,因为LDAP服务器不启用匿名查询,这意味着我必须提供用户名/密码才能建立连接。

除了在LDAP服务器上启用匿名查询之外,有关如何实现此目的的任何建议吗?

谢谢, 托马斯

1 个答案:

答案 0 :(得分:0)

您似乎可以实现自己的上下文工厂,并使用 security.ldap.contextFactory 参数将其提供给存在。

context工厂是用于初始化目录连接的java类。您可以实现使用ad-hoc凭据初始化连接的上下文工厂。

想法是实现这样的类:

public class MyCustomContextFactory implements InitialContextFactory {

  public Context getInitialContext(Hashtable env) {

    // Fetch the application DN and password somehow (config file...)
    String applicationDN = ...;
    String password = ...;

    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, applicationDN);
    env.put(Context.SECURITY_CREDENTIALS, password);

    return new InitialDirContext(env);

  }
}

生成jar文件,将其添加到服务器的类路径中,并指定配置参数:

security.ldap.contextFactory = your.java.package.name.MyCustomContextFactory