【发布时间】: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