配置 eXist - LDAP 安全管理器



我正在尝试将eXist配置为LDAP以验证用户,我已经查看了eXist LDAP Security的文档。事实证明,默认配置仅支持三个设置: security.ldap.connection.url(LDAP 服务器的连接 URL)、security.ldap.dn.user(用户列表 DN)和security.ldap.dn.group(组列表 DN)。

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

除了在LDAP服务器上启用匿名查询之外,我如何实现这一目标的任何建议?

谢谢托马斯

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

上下文工厂是用于初始化与目录的连接的 java 类。您可以实现一个上下文工厂,该工厂使用即席凭据初始化连接。

这个想法是实现这样的类:

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

最新更新