2

ユーザーを認証するために eXist を LDAP に設定しようとしています。eXist LDAP Securityのドキュメントをチェックアウトしました。デフォルトの構成では 、( security.ldap.connection.urlLDAP サーバーの接続 URL)、security.ldap.dn.user(ユーザー リストの DN)、およびsecurity.ldap.dn.group(グループ リストの DN) の 3 つの設定のみがサポートされていることが判明しました。

LDAP サーバーは匿名クエリを有効にしないため、私の場合は機能しません。つまり、接続を確立するためにユーザー名/パスワードを提供する必要があります。

LDAPサーバーで匿名クエリを有効にする以外に、これを達成する方法について何か提案はありますか?

ありがとう、トーマス

4

1 に答える 1

0

独自のコンテキスト ファクトリを実装し、 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
于 2011-09-04T01:04:54.613 に答える