【问题标题】:How do I connect to the localhost using UnboundID LDAP SDK?如何使用 UnboundID LDAP SDK 连接到 localhost?
【发布时间】:2013-07-30 17:09:18
【问题描述】:

如何使用 UnboundID LDAP SDK 连接到本地主机?我认为这很简单,但也许不是。我使用以下代码连接得很好,但我希望可以选择只使用 locahost 连接而不必进行身份验证。

通过连接,我执行了一系列添加/删除/修改,这与以下连接正常工作。

public LDAPConnection connect(LdapConnectionModel connectionModel)
{
    this.connectionModel = connectionModel;
    try
    {
        // Determine is SSL port was specified
        int port = connectionModel.isSslEnabled() ? SSL_PORT : PORT;

        // Determined bind DN
        String bindDN = connectionModel.getUsername() + "@" + connectionModel.getDomain();

        // Connect
        connection = new LDAPConnection(connectionModel.getHost(), port, bindDN, String.valueOf(connectionModel.getPassword()));

        // Clear out our password
        connectionModel.setPassword(new char[] {});
    }
    catch (LDAPException e)
    {
        LOG.warning("CONNECTION FAILED: " + e.getMessage());
        LOG.warning(e.getMessage());
    }
    return connection;
}

例如,获得这样的连接很好,但随后我收到此错误: “为了执行此操作,必须在连接上完成成功的 bing。”

// Connect
connection = new LDAPConnection("localhost",389);

【问题讨论】:

  • 使用服务器监听localhost 上的连接与LDAP 客户端是否向服务器进行身份验证有什么关系? LDAP 客户端应该向服务器进行身份验证,以获得服务器代表客户端执行 LDAP 操作所需的授权状态,无论服务器是在侦听localhost 上的连接还是其他地方。可能我不明白这个问题。
  • @TerryGardner 感谢您的回复。请以我正在寻找的示例查看我的编辑。我是 LDAP 新手,所以也许我不了解 SDK 的用法
  • 如果 LDAP 服务器在 localhost 上的端口 389 上侦听非安全客户端连接,则您在编辑中列出的内容将起作用。您是否已经在运行服务器?
  • 请阅读有关该连接的更新评论。它确实获得了该连接,但声明我必须绑定才能完成操作。是的,服务器正在运行。我使用 IP 地址和凭据很好地连接到它。但是例如,如果我的应用程序在实际服务器上运行,我不应该进行身份验证,对吧?

标签: java active-directory ldap unboundid-ldap-sdk


【解决方案1】:

目录服务器在在哪里或在哪个主机上运行没有区别。当 LDAP 客户端连接到服务器时,该连接未经身份验证。 LDAP 客户端必须使用 BIND 请求来请求服务器将连接的授权状态更改为允许 LDAP 客户端所需操作的状态。

另见

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多